3Delight/Blender

I am playing around with adding a brick shader to a plane. Now as a Blender user I am used to putting the plane in edit mode and scaling it up to the size I need. This keeps the plane’s scale set to 1.0. But I find the 3Delight brick shader makes my bricks very tiny when I do that. I can’t find a way to scale the shader using the built in shader parameters. So I reverse my workflow and just scale the object up to the size I need. This creates a render error because of eyesplitting. So I am stuck with an eyesplit error or a scale error.

Does anyone have any advice on how to resolve this dilemma?

I guess I posted too soon.
The solution is to unwrap the plane, project from Home view. Then the scale of the UV coordinates allows scale and offset of the procedural shader upon the surface. Keeping the object scale at 1.0 seems to solve the eyesplit error.

i tried this on “Windows 8 Developer Preview 64Bit” and it keeps crashing when i bring up the material panel. one of the 3delight exe keeps crashing…

Download Windows 8 Developer preview 64bit or 32bit from here if you want…
make sure you have all your stuff backed up, and that you have reinstall disks of your current OS be it, Win7 or Linux

Of another note this a pre-beta and should NOT be used in a production environment

http://msdn.microsoft.com/en-us/windows/apps/br229516

and yes you can disable the metro interface… http://www.askvg.com/how-to-enable-good-old-windows-vista-and-7-style-start-menu-in-windows-8-developer-preview/ just rename a file.(thats the best way so you get to keep the ribbon in win explorer… its nice that way)

Do a searcf for shsxs.dll i actually found 2 of those files on my machine… just rename both to shsxs.dll.bak… and reboot.

Holyenigma, the issue could be with 3delight, windows8, blender or Matt’s exporter in combination not working right.

Try and narrow it down.
can you render rib files with 3delight from the command line?

If you don’t know how there’s a read me that comes with 3delight and a whole folder of example ribs.

If you can then the issue is on blender’s side. check the install instructions for Matt’s exporter to rule out user error.

If you can’t render from the commandline the problem is with 3delight and windows8 not working together.
So then try the 3delight forums to contact the developers and/or report a bug in windows8 beta program.

Broken, I’ve been testing the subdivision crease stuff and it seems to not be working quite right.

rendering just the base cage as a subd surface looks very different to adding the subdiv modifier and rendering at level3…

I’ve done other tests on simple geometry like cubes and monkey heads and I suspect that the crease and actual surface is fine, just that the normals are not being defined correctly somehow…

Here’s how I intend it to look (blender subdiv3 set to render in 3delight:

http://www.cowtoolsmedia.co.uk/assets/sub1.jpg

And here is what it looks like exporting just the base cage and creases:
As you can see the normals are very different, but in silhouette the creases are there…
http://www.cowtoolsmedia.co.uk/assets/sub2.jpg

It’s definately a normal issue!

As a test I made the following displacement shader:


//fixnormals test

displacement
fixnormals( )
{
    N = calculatenormal( P );
}


and the render is now what I’d expect (a little sharper even!) Looks like I need to ease back on those crease values!

Here is the basecage with the above displacement shader applied.

http://www.cowtoolsmedia.co.uk/assets/sub3.jpg

Michael W, it crashes from the command line… so… possibly a windows 8 issue.

@michael: Can you send me a test file? Or also, can you try turning off ‘export smooth normals’ ?

@broken: I had a chance to compile your glass shader and have some results.
/uploads/default/original/3X/e/5/e58c52b055252f11f06b4415a423520aa95c4c98.jpgd=1316265074
The reflection that appears inside the cube seems grainy to me. Is there some shader or 3Delight setting to make the reflection more “crsip”? I am using a TDL file for the sky that was generated by 3Delight using the -skymap command.


Aha, it is the Shading Rate field under Sampling inside the Render context. Here is the scene rendered with a shading rate of 0.25. Essentially 4X sampling.
/uploads/default/original/4X/5/7/b/57b386c980836c91a51f0f027cce475312cde879.jpgd=1316265920
This has some interesting possibilities. What if you are rendering an animation and you know you are hitting a part of the scene that is heavy motion blur. You could animate this value to a higher setting to request less detail in the reflections. Then as the camera moves to a new location and settles on a “Hero” shot you could lower this value for better detail.

The alternative is to trace more rays inside the shader - it’s a bit of a tradeoff. Increasing the shading rate will also slow down other parts of shading, while doing doing more ray samples gets more complicated, especially when you want to consider multiple bounces.

Also, you probably want to turn of exporting smooth normals on those cubes :wink:

Re. shading rate in motion blur or DoF, there’s a parameter specifically for that, in object properties - Motion Approximation and Focus Approximation. It’s built into 3Delight and does exactly what you mention above, but specific to only what’s moving/out of focus, as it should be. To be clear though, it’s not extra sampling, it’s extra shading, because more, smaller micropolygons get generated. Sampling happens afterwards and is independent of shading.

Ok, it works fine with “export smooth normals” turned off. It looks like that option can only lead to bad things with subdivision surfaces, so maybe could be off automatically (or just ignored) when rendering them?

No big deal once you know the situation though. It’d just be a nicety in general (unless there’s a use case I’m not thinking
of)

Would it be possible to “render to rib” for animation sequences?

I see that you can do that for archives, but it’d be handy to output to a renderfarm if you could have numbered ribs (with the framenumber appended to the scene name)…

not much of a use case so far as most of us only have the “free” 2core 3delight rendernode, but with Aqsis getting point based methods around the corner or if I can find an online render service that supports 3delight I’m sure it’d be a useful feature in production.

Sorry to keep bombarding you with the feature requests, but I guess it’s a sign of your success :wink:

You guys are really starting to make me consider learning renderman, dam you all to hell! :slight_smile:

If i were to start learning, what would be the best book to start with for someone who’s never scripted a thing in his life?

Hi broken,
I have always this in the Blender traceback console about the Blender3Delight preview display:
DDS: trying to read beyond end of stream (corrupt file?)

DDS: trying to read beyond end of stream (corrupt file?)
end of stream (corrupt file?)Unknown fileformat
When I want to read this preview file in the OS context, I can’t but the material preview is ok in Blender? Weird!
Thanks in advance pour your reply.

The render picture is unreadable (renderman temp folder)?
When I load the scene.rib with 3Delight, the picture is black! But I havn’t a message console in debug mode. how can I have this feature, please?

Edit: OK! I have re-installed my 3Delight and now that’s run!But I have always the same message in the Blender console…

https://dl-web.dropbox.com/get/Public/3Delight_testsimpledielectric.png?w=cfc1bd92

I have too some fireflieslights, why?

Hi broken,

I made a small patch to fix some errors I had
with Procedural DSOs and blender’s trunk.

http://www.pasteall.org/25006/python

Thank you!

I had a chance to play around with the point cloud stuff and it works well. There is a “sweet” spot when you crank up intensity, turn up falloff as well.

Attachments


I’ve been doing more tests :wink:

using a simple “emissive” shader to act as a “mesh light”.


surface
emissive(
        float emission = 1;

{

    Oi = Os;
    Ci = Cs * emission;

    Ci *= Oi;
}

then using default settings for point based lighting and cranking the emission to 100 on some polygons (think of it like a percentage) you get some nice area light behaviour that renders fast…

http://www.cowtoolsmedia.co.uk/assets/emmisive.jpghttp://cowtoolsmedia.co.uk/cowtoolsmedia_uk/assets/emissive.jpg
http://www.cowtoolsmedia.co.uk/assets/emissive.jpg

As a word of warning, cranking the emmisive value high like this can potentially kill your antialiasing when sampling around the edges!

Broken, I notice that if i use any raytracing with pointbased GI at all then I get horrendous rendertimes. Is this a limitation of the technique? or is it how the materials are stored in the pointcloud? Would I potentially be able to work around this by having non raytraced materials for the point cloud generation phase for example?

I also notice that if I hide an object from the camera it’s also hidden from the point cloud… Could be nice to have an object hidden from camera in the main pass but visible to the pointcloud…

I’ve also been testing Frigge’s renderman exporter (not getting as far as I have with the 3delight one). It has great flexibility with objects and passes but at the cost that every object, light and shader type has to be explicitly linked to each pass.

PS, I notice that point lights don’t generate shadowmaps. (One day I may offer a patch, but still getting to grips with your code!)

Looks nice. I was wondering how to add the Emit property to my Blender material emulator.

I tried out your shader and it does work, but in my scene it looks like crap. In my scene I have no lights at all, only a plane (off camera) with your emission shader applied to it.

Also you mention…

point based lighting
What is that? Did you mean to say Point Cloud lighting?

Also, I have set the color of the emission mesh to Blue. The floor is a grey matte shader and picks up on that color. The cube has a matte shader as well and it is Red. Shouldn’t the blue light mix with the red cube equal some kind of purple result?

Attachments


@broken: Is there any way to pass the current frame # to an image map name inside a shader?

On the 3Delight forum, a member mentions that the Maya exporter can do this with some wild card characters placed in the name like so. Which will create a four digit value for the current frame that is being rendered.

texture_%04d.tdl

I am looking for a way to render an image sequence in 3Delight.

Hi all, sorry for late replies, spare time is dwindling…

@Michael W: Good find, I think I’ll just disable smooth normals by default anyway.

@fahr: The books mentioned a page or so back are quite good (advanced renderman, renderman shading language guide)

@Atom: I’ve noticed that bug before - it’s interestingthe putting in all those checks works around it, maybe I might do it for the time being. But the real question is why is a NULL/None context being sent to the draw methods in the first place - that’s the real bug in blender, it should never happen. I don’t know what you’re doing in your addons, but if you have a simple/repeatable test case that can cause the null context problems, it would be a very good idea to send it to the bf-python list, to try and get it looked at.

@Spirou4D: I’m not sure what the exact problem is that you’re having… If you render the generated .rib file with renderdl on the command line, does it produce an image? Can you post an example of the fireflies?

@Est777: Thanks! I’ll check it out tomorrow when I have some free time

@Michael W: Hard to say exactly what’s going on there with raytracing, maybe if you’re doing lots of raytrace samples/bounces and it’s reading the point cloud every hit? There’s also issues like it being pointless to read diffuse indirect lighting on a purely reflective surface like a mirror for example. Its possible to handle that case, and also others (for example possible reducing pc lookup quality on secondary ray bounces), by using a more advanced shading setup, which I keep alluding to… :slight_smile:

btw, an option for pointcloud visibility is dead simple, was going to implement it at the same time, but looks like i forgot - it’s on the todo now.

@Atom: re. colours, it depends. Without testing ot see if this is your specific problem, in a general sense, it’s not a spectral render so these sorts of weird things can happen if you use pure red, green or blue (without any other values in the other colour components). These pure values don’t happen in real life, it’s all about energy distributions over a portion of the visible light spectrum. Anyway, if you tint the colours slightly with other colours (eg. 1.0, 0.05, 0.1 for red), you might get more natural results.

As for animated sequences, in the texture settings there’s a button ‘Animated sequence’. If you enable this, it will replace hashes in the filename with the frame number. This is consistent with what you can normally type into the render filename path in blender. Maybe there’s an exception to this though - I can’t remember but it may be currently hardcoded to padding it to 4 hashes/digits, (eg. myfile.####.jpg -> myfile.0025.tdl) If so, making this more flexible to accept a variable number of hashes cold be a fun exercise :wink: There are also controls for start and end frame of the sequence, and in the future it would also be nice to have other options for looping, holding, etc when going past the bounds of the sequence.

cheers

@broken: Thanks for the tip on animated sequences. I had never even clicked on the + icon next to the map name. But I am seeing a failure to fetch the correct file on Windows XP64 NTFS. If you look in the screen cap, below, the green field shows the correct path being displayed in the panel. But when it comes to render time, the red field shows that the slash is reversed and fails to load the image.

The panels shows red_cell\red_cell_0013.tif.
The console shows red_cell/red_cell_0001.tif.

Maybe it is just the extension is wrong? My sequence is a TDL sequence, not a TIF sequence.

Attachments