Blender Volumetrics Blender Volumetrics introduction tutorials introduction tutorials Introduction Introduction Volumetrics represent an active field of development in Computer Graphics (CG) dew to the broad field of application and the heavy calculations that require the use and research of optimal algorithms to minimize te calcule time. The usage of volumetrics range from CG special effects to scientific data representation and analisis. In 3D graphics the world are made generally out of polygons, forming essentially hollow objects whichs fake the substance of it by using superficial textures. This approach works fine for many situations in life and should be encouraged as long as possible because its relatively fast to represent, but some times the texture approach are impossible because the internal structure of the objects does matter, that's where volumetrics appear in the scene. There's many approach to volumetrics and each one has its pros and cons 1-Ray Casting 2-Texture Based (2D,3D) 3-Splatting 4-Shear Warp factorization Also the classification could be according to the construction order: 1-Object order (Texture Based,Splatting) 2-Image order (Ray Casting) Some methods could be implemented in GPU reaching realtime performance at the cost of lower flexibility. In Blender, being a general purpose 3d software running in many SO and in many hardware configurations should have the most flexible yet quality volumetric method, so the winner was Ray Casting, also for this desition the fact that the ray caster are better integrable into the ray tracer based render pippeline was taking into account. The spirit within (Making a basic procedural volumetric) a) Start a basic blender scene, a simple cube and toggles OSA off: fig 1 You didn't expect that pressing a button volumetric will be showed up, dont you? The fact that an object could have anything inside of it prevent from that. ;) First you need to tell blender that you want to actually see inside of the object, that is, make the object some degree of transparent (because volumetrics are ray traced based it should be ray transparency) so lets check Ray Transp button on Mirror Transp pannel (fig2): fig2 b) Now you need to adjust the material alpha in order to see inside: (fig 3) Alpha 1 will give you solid objects like default in Blender and alpha 0 with volumetrics on will give you full volumetric objects without surface, any value in between will give a combination of both. fig 3 c) Its time to define the inner material or sustance: go to the texture panel and select for example Clouds, set NoiseDepth to 0 (fig 4) fig 4 d) Now this is a really important stage, gradients are very important for procedurals volumetrics and also provide a great level of flexibility, they act like a clasification function. So before moving on in the Colors panel activate Colorband button and adjust the values you want the volumetric shows (fig 5): fig 5 The current implementation of volumetrics are texture controlled, so any animation of the textures will animate the volumetric also. e) Return to the material panel, under the Map input subpanel and set Object and type: Cube (fig 6) f)This is also very important, under 'Map to' set Col,Nor,Alpha on (Volumetrics sample color,normal and alpha for every sampled point in space) (fig 7) fig 6 fig 7 Now its time for the magic to happen, blender knows so far that the object are raytraced semitransparent, also knows that the inner sustance its a cloud with a gradient and finally that the reference coordinate system for the volumetric will be the object itself. This is the basic setup before activate the volumetric button, this will show up 5 new pannels tabed according to its functionality: 1-Volumetrics (the main and basic pannel) 2-Quality (contains controls for raysplit algorithm and supersampling algorithm) 3-Scattering (as the name says...) 4-VolShade (volumetric shading algorithms) 5-Models (specular and diffuse shading models) g) Focus now on the Volumetrics pannel (latter you will learn how to use the more advanced features) and set the parametters as shown bellow (fig 8): fig 8 Step: Set the sampling step along each ray, the lower the value, thebetter the quality but increase render time, so the best option are initially choose a relativelly big step: 0.1 or 0.05 and when you reach the desired configuration lower it to the quality you want . Dist: This is the second important parametter in volumetrics: the distance the ray travel inside the object sampling values, for now this is a fixed value thus some effects could not be achieved until real ray travell distance detection will be implemented, but this option will remain because its usefull in many situations and also for the window effect (single side polygons showing volumetrics behind them like an open window to the outside world) Initially set this value low, because the longer the sample ray the longer the render time (although early ray termination are implemented) kr,kg,kb,ka: Absortion factors for Red,Green,Blue,Alpha of each sample, adjust it for different transparency/color effects PreShad: Toggles the use of preshading algorithm, since now that is the only ind of shading algorithm implemented always should be set on (Post Sading algorithm will be implemented latter ) Alpha Over: This is the composite operator, Alpha Over are best suited for solid volumetrics, others are Transparent,Simple,Isosurface,Range,MIPS Well, that's all, hit F12 and render the cube, you should have something like this (fig 9): fig 9 If you only want to see the inside of the object then simply set alpha to 0.0 and deactivate the texture from the texture stack (this way superficial texture won't be rendered and only the volumetric one will be showed) (fig 10) fig 10 And the result is: Now start playing with the different parametters and texture values, even you can combine different textures to different mappings... the posibilities are endless. Here are some examples of the same file variating some texture properties: For questions and suggestions please write to me at: echelon@infomail.upr.edu.cu with subject Volumetrics+whatever-you-want ;) echelon@infomail.upr.edu.cu Farsthary Farsthary (Raul Fernandez Hernandez) (Raul Fernandez Hernandez)