I think my computer will explode trying to do SSS and volumes at the same time
I think my computer will explode trying to do SSS and volumes at the same time
Some more volumetric structures:
This is just a Voronoi texture set to cells being subtracted from a Musgrave... I think I set the math node to greater that on the top one though... Can't remember. It was late at night. I wish there was some way to create a mesh out of these. It would be so cool to use these as actual sets. I think they are really beautiful.
This is a so much fun Thomas. Thanks so much for this unexpected treat! Although I don't know how much I should be thanking you... I didn't get much sleep last night. ;-)
Here's a few things:
1.) Request: I would love to have control over the volumetric settings on a material by material basis. So, The sampling type, Density multiplier, Max iterations, Cell step and woodcock multiplier would all be found in the material panel in the Volume section and would override the render panel settings. I really hope that's possible. Right now I can't see how you would make really dense looking volumes in the same scene as soft clouds and even softer environment fog.
2.) I've only ever dealt with inhomogeneous volumes before. What are Homogeneous volumes and what are they used for? So far all I get is the outline of the texture on the surface and nothing actually inside the volume. Is that the expected result?
3.) it seems like the Cell Step parameter is working yet. It renders in the same time weather it's set for .5 or 50. Am I correct in understanding that this is the same parameter in other volumetric engines (including Blender) that controls the resolution of the volume? Setting lower step sizes should increase render time but make it look better while increasing the set size should should eventually show the planes of the inner volume. If I change the Cell Step, it has no effect on the render time nor the look of the scene.
4.) What are the experimental versions of Woodcock and Ray Marching?
5.) what is the "g" setting?
Thanks so much again Thomas!
Thanks for the build DingTo - I know there is lots to do, but this is awesome already - here is a quick test with 800 samples and a 87K vert model. It's not even really slower or noisier than a standard indoor scene:
@ng-material - I don't think it multiplies with SSS just add to it (if that makes sense) - this example has some SSS and it's not making the render times spiral out of control.
@Indy_Logic - where do you plugin the textures to get the hard surface volumes you posted?
Yeah, thanks to Thomas and Storm for giving a new life to this amazing feature, now we can start to work again to two years old scenes, pity that all the previous materials and settings for volumes are lost, if volumetric had received a little more love at the right time, this might have been avoided.
I want to emphasize again, that the main work sofar has been done by storm and Stuart.
Our main task atm, is to keep the functionality we have, while making the code much cleaner/smaller.
The Nodes/UI Settings are pretty much WIP, and may change a lot in the coming weeks. A file you save with this patch today, might not work in a week anymore. Keep this in mind!
I know you are excited about it, but at this stage the patch is mainly intended for developers.
Nevertheless a few short answers to your questions Indy_Logic:
1) More control will certainly be added, but again it's too early for this kind of discussion imo.
2) Homogenous volumes are faster to calculate and have a constant density throughout the object. You should not drive the "Density" socket with another node when using it.
3/4/5: I still have to check on those, Stuart and Storm can probably answer those.
Thanks again Thomas!
Blender sss and dynotopo ftw:
It would be neat though to see a direct comparison with the same mesh for some of the top players.
Really great to have also volumetric rendering!
Thanks a lot DingTo,Stuart and Storm!
Not related,but I'm thinking if it could be added a new output type for material node,"debug",where a float value can be linked and printed to screen.
If you are creating modulators(for texture,or material mixing)you have to work with greyscale values,but sometime it's really hard to know if the value is right(also because gamma correction doesn't help),so a way to print directly the value on the screen(like with drivers)could be a really useful feature(a simple float output that can be printed directly on the node view screen or maybe in the node properties).
Maybe it can be done with the script node or with open shading language,but IMO it could be better if a function like this belongs directly to the node tree view.
What do you think(maybe to take a value from the renderer is to hard)?
Last edited by renderdemon; 08-Sep-13 at 03:42.
Haha, you did it (i man separate and cleaned core volume code from my fat almost-obfuscated-patch), conglatualtions!. At this state, i barely can understand my patch parts and fear to touch code that not lookes 2 weeks, it become so unrealistically complex to maintain and fix.
You even do some one step sampling from light direction (limited bidirectional), i have no that parts, it is Stuart invention, it help to clean noise around light a lot.
About "g" parameter, it is like Phong specular power, but related to volume particles. of 0, it do uniform sphere distribution (smoke?), if 0.6-0.8, more close to human tissue like skin/blood, and at extreme cases close to 1 it go to transparent material like colored glass (not recommended, big computation overflow errors). Must note, that water vapor and small droplets in air have very complex Phase function, with many peaks, and related to wave lenght, current Henyey-Greenstein model too simple to make that, so do not expect to see rainbow. I think that "g" around 0.7-0.8 make fog looks more like real street fog.
Beware, real media scattering is multi bounced, and you need 2-3 bounces to get light that "bend" around objects, it very slow, for example this is 15 hour render on i3770K (my patch used, but sure DingTo variant can do same w/o limitation). One bounce (or 0) scenes can ve rendered on reasonable speed, ofc.
Last edited by storm_st; 08-Sep-13 at 05:44.
Unfortunatly. no, correct multi-scattering integral that hard to compute, it is principal. More hard in complex setup, that bike is "cheating", light paths are very simple. Most ppl will stick to single scatter, it work nice for many scenes. About other engines, they just show you single scattering in gallery, and usually avoid render time/hardware info. I think Luxrender can do same in compare time in bidir mode, but MLT samler (Lux default to MLT) sure will be much faster in average scene.
For example, same scene, 0 bounce (single scattering), 64 samples, 5 min
256 samples, 20 min
you can notice how important is secondary bounce in volume rendering, it have big difference, and only 1, must be 8+ but i have no patience to do it now .
Must note as well, i am still not sure about correctness of light measure in my patch, it can be some bug lurking, but pictures looks cose to what i expect to see.
Last edited by storm_st; 08-Sep-13 at 07:59.
The volumetric patch is still at quite an early stage. We have loads of cleaning and optimizing still to do before considering adding new functionality. For example I am sure the Equiangular sampler is wrong, although it gives nice looking results. The (exp) functions are just rewrites I made of the sampling algorithms. There are subtle differences but they were more for my testing.
The hair shader is on its way. Only a very basic one for now though. I sent a patch to Brecht yesterday and if its ok I will commit it.
well if single scatter is the only way to speed up renders, I guess we don't have choice (in animation)
15hours per frame render is not an option haha. I know its early and it probably shouldn't even be "tested", but from what storm has said, it seems with scatter set to 2 or above, very slow renders are unavoidable for something like volumes. ( I can't imagine its possible to bring 15hrs down to 2-3hrs)
I think the single scatter results are still good. Really i'm interested in smoke, we'll see how this gsoc goes in coming weeks