[Bf-committers] True Volumetrics for Blender

Joe Eagar joeedh at gmail.com
Thu Apr 3 20:42:39 CEST 2008

Yay! I'm the developor who's doing Deep Shadow Maps, and I've really, 
really been wanting a volumetrics engine to test it on :)  Deep shadow 
maps is currently in it's own branch, I'm planning to merge it to trunk 
after the release.

Some coding suggestions:
* The ray caster needs to be flexible enough to work with shadow maps as 
well as simply rendering from the camera.
    I know, only deep shadow maps really deal with volumetrics 
correctly, but even naive support for the others
   would be nice. 
* The matrices in the renderer are slightly weird.  The render data is 
transformed to camera space before rendering
   starts.  The projection matrix is then applied on-the-fly during 
zbuffering.  It can be a little confusing handling how
   the data is pre-transformed, since you sometimes have to apply an 
inverted camera view matrix to coordinates
   (here view matrix is defined as camera matrix without the perspective 
projection part).
* In addition to brecht's suggestion, I'd also recommend looking at how 
ztransp (the transparent zbuffer) integrates
   with the rest of the render pipeline; I imagine volumetrics should 
work in much the same way.

Relavent files to look at are source/blender/render/intern/source 
rendercore.c zbuffer.c pipeline.c shadeinput.c shadeoutput.c.  Feel free 
to email us any questions.  Also you can ask questions in 
irc://irc.freenode.net/blendercoders , though it sounds like IRC isn't 
really practical for you.


echelon at infomail.upr.edu.cu wrote:
> (sorry for my english, is not my native language :()
> :) Hello all:
>    I am currently developing a Volumetric Rendering Raycaster  for
> Blender.The raycaster already works at 50%, I'll posts picures
> somewhere soon, I dont know of other developers doing something similar
> for blender rigth now. But this is a feature that i long ago have
> waiting , and decide to implement it myself.
> (Next year will be my graduation thesis of informatic engeeniering, and if
> the proyect have a good aceptance I would like to propose it as my thesis,
> and then i would have much more time for it
>  I'ts now official:
>   This proyect has being aproved as my graduation thesis in the University
> "Hnos Zais", so accepted or not from the devs community (I would like
> the first one :)) i will go on with the proyect : "Volumetrics Rendering
> for Blender"
>    The proyect, in orther to be accepted as my thesis, had to have a
> "scientific" side other than purely artistic contribution to blender,
> so the comunity could gain a side effect feature of the completion of
> the proyect: Scientific data visualization inside of Blender (ej:
> Hypervolume visualization from datasets,nD data visualization,
> (allthough the main artistic contributuion will came from the 3D
> volumetric rendering ))
>  I design the renderer as modular as i can, so anyone that want to extend
> it with others algorithms or shading or proyection/mapping techniques
> could do it easily.
> I'm primary focused on artistic freedom == more user control.
> I have not an active conection to internet , so my work is 80 % offline,
> when i make a stable version of the renderer I'll upload the files
> somewhere. (Hope this change soon)
>  I'm also want to develop more 3D procedurals textures.
>    Currently working:
> 1-the Raycaster itself (principal algotithm, with early ray termination)
> 1.1-Some testing Hypervolume Visualization (4D domains).But this will be
> the final step of integrating into render pipeline.
> 2-some naives shading algorithms (need more work on this)
> 3-a Pre-Shading algorithm (a texture control the shading itself, more
> artistic freedom)
> 4-volumetric integration with the procedural stack of textures works at 70%
> 5-volumetric integration with the shader nodes works at 70%
> 6-the objects inner volumetrics depend on surface alpha, full opaque
> object will not do any volumetric calculation, full transparent object
> with volumetric flag on , will do a full volumetric calculation
>  TODO:
>    1-volumetrics from file (not only from procedurals functions, also from
> imput data) (Need more research on this,filletring methods etc)
>    2-volumetrics from particles
>    3-volumetric from simulations??? (will need more dev time and extra
> help) (non critical functionality)
>   4-Full and robust shading
>   5-Shadow casting (as Ztransp do)
>   6-interception with other objects/volumetrics (hot issue!!)
>   7-GUI
>   8-Help docs and tutorials.
> ----------------------------------
> I need research and help on where are the best place to plug the Raycater
> to the render pipeline of blender (I choose a raycaster over other 
> algorithms as splatters,shear warp factorizations, etc because the natural
> integration of ray cast methods with ray trace and because of quality)
> I'll preciate any feedback , feature request or help the comunity give me.
> I know this is an ambitious proyect, because off the scope, the many
> different approach to volumetrics, and the rendering code in Blender.
> but I have some time (from now to  june 2009), its official in my carrer
> so there's no way back (or I implement it or I'm dead :), it's good to be
> forced on something you like)and I have the will. Im profficient in
> C/C++/Python and with the help of the community i think i could make it.
> True volumetrics allow endless creativity posiblities, from guided data
> visualization/scientific interpretation of data to simple beatifull
> exploration. This is something I owed to Blender.
> Mentoring are more than welcome, and in the case of complete the proyect
> and be integrated in bf-Blender theres no mention the big plus
> for the thesis to be implemented in a real-life
> software/open-source/worldwide.(I repeat: this is not a MUST, if the final
> user don't like it simply drop it)
>                                                                      Thank
> you
> in
> advance
>   :)
>   PD: the things I already implemeted had to be done tweaking the UI
> (because I'm currently not proficient in this area and because I will
> make it once the inner engine work relatively well)
>  I will need to make the entire thesis proyect papers to:
>    Use Cases, Diagrams,software engeeniering...
>    so comunity opinions will be usefull for this papers.
> PD2: This year I finally make Blender the main educational soft for
> Computer graphics in my University (Previously they were using 3Ds Max)
> It's now official in the study plan.
> ----------------------------------------------------------------------
> This was an informative report, expect soon implementation questions
>  and progress reports to.
> ----------------------------------------------------------------------
>                                        Farsthary (Raul Fernandez)
>                                 echelon at infomail.upr.edu.cu
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers

More information about the Bf-committers mailing list