6
$\begingroup$

I am looking for a explanation about volume rendering in simple words, a step by step kind of, like ray tracing:

for every pixel in the screen plane, trace a ray starting from the eye point to the screen pixel location, a compute the nearest objet intersection in the scene, calculate the pixel color, and so on.

something like that

$\endgroup$
6
$\begingroup$

Volume rendering is not like ray-tracing, it is like "scene rendering". i.e. there exists several algorithms to render volumes.

One close to ray-tracing is ray-marching, and has may variants. The simplest: for every pixel in the screen plane, trace a ray starting from the eye point to the screen pixel location, and advance along the ray by constant steps. At each voxel calculate the pixel color and transparency, blend it to the pixel value, and so on.

Blend =

  • $C_{pix} += T_{pix}*C_{vox}*(1-T_{vox})$

  • $T_{pix} *= T_{vox}$

with $C_{vox},T_{vox}$ the color and transparency of the current voxel, and $C_{pix},T_{pix}$ the cumulated color and transparency of the pixel.

$\endgroup$
  • $\begingroup$ how the objects in the scene are defined? In ray tracing you calculate intersections using the implicit function, ie, sphere, plane, cone, etc, how is it in ray marching? also can you expaling the meaining of the variables that you wrote in your post? $\endgroup$ – arcollector Feb 21 '16 at 4:21
  • $\begingroup$ I mimicked your very definition, which did not defined meshes :-). For volume rendering, the scene is made of density stored in each voxel, i.e. each cell of the 3D grid. $\endgroup$ – Fabrice NEYRET Feb 21 '16 at 9:39
  • $\begingroup$ I modified the equation and completed the definition. Now for such basic definitions, you should rather google or open a book. ;-) en.wikipedia.org/wiki/Volume_rendering $\endgroup$ – Fabrice NEYRET Feb 21 '16 at 9:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.