Last Little Volume.

Ray marching in real-time volume rendering


Before getting too deep into the technicalities of what this means I first wanted to have a look at what Ray marching really is. Ray marching is an incredibly efficient and accurate way to self-shadow alpha base materials such as smoke and clouds. Often this is done through a normal map for a lot lower cost but the results are not exactly as volumetric as Roma arching. The response from lighting different directions can also be channel packed into texture and this can give nice results from static positions and will also respond to The Subtle changes in lighting of viewing Direction allowing level designers to more quickly and efficiently create dynamic scenes without having to speak to the Artists every single time they want to change the lighting. There are two incredibly important parts to volume very marching that being the opacity (the light absorption) and the colour (the illuminations scattering).

If we try and generate the opacity for a volume we need to think about the density and thickness each possible point. If the volume is constant on density and colour all that is needed would be a total lump but this is not the case for clouds smoke and other realistically shaped volumes. To render convincingly lit volumes we need to first think about the behaviour of light as it transports through the volume. In addition to this, we need to think of how rays pass through a volume given that certain amounts of the light rays will be absorbed and a certain amount will be scattered into the colour of the rest of the volume. Absorption refers to the amount of light that is lost by hitting diffuse voxels within the volume. The ratio of absorption to scattering determines the diffuse brightness of all of the pseudo particles. 

What do my research on this I found that there are many many different ways to go through at about do this kind of Physics calculation but not all of the words to real-time rendering as they can be quite costly on standard GPUs. To get around this, I've had to take a few sidetracks that have hindered the overall quality but have still allowed it to be running in real-time fast and efficiently and with many many instances of this mathematics on the screen at any given time.

As this part of the project has been incredibly mathematical and only a stepping stone to the visuals that have been shown in the past couple of videos there will be no images put into this blog post and rather, all of the information can be found within the text. This further illustrates the point that visuals within technical development are not always as simple as putting images on a screen but rather are about the immense technical development that has to come from behind the scenes.

Comments

Popular posts from this blog

Testing Volumes

Shaders: Confusing or Pretty?