Physically Realistic Volume Rendering
The project we are planning is to render a scene based on physically accurate light scattering model of volume materials. Such material can include fire, smoke, vapor, cloud. Special effects such as rainbows can be also rendered through these models. In order to accurately model the distribution of volume materials in complex geometry, a physically based fluid calculation must be performed in an unstructured mesh. A ray tracing algorithm through unstructured mesh needs to be developed, and light reflection and scattering models from these volume materials needs to be built.
The following pictures are from www.ImageMontage.com , I believe they are taken at the Nevada fall in Yosemite. The water fall and rainbow is the type of things we want to render.
Modeling of volume material distribution
In order to model the distribution of volume materials accurately, we use commercial flow solver Fluent. In the waterfall scene, we calculate the flow of air around the waterfall, from which we calculate the density of water drops in the air. The following pictures demonstrates the geometry, mesh and the velocity field computed by Fluent. The small volume in the middle of the step is used to model the water fall, and the rest of the volume is used to model the air. An hex / tetrahedral hybrid unstructured mesh is generated in the volume, and the flow field is calculated using incompressible Navier-Stokes equation with k-e turbulence model. We will add a scalar field in the calculation that is used to model the density of water drops in air. Our rainbow image will be rendered based on the calculated density field of the water drops.
Ray tracing through unstructured mesh
There are some work done in ray tracing algorithm for volume effects, but most of them are restricted to cartesian mesh, which limits its ability to model flow effects in complex geometry. We will base our volume rendering on a ray tracing algorithm in unstructured mesh such as the mesh shown above. We expect ray tracing in unstructured mesh to be much more expensive than ray tracing in cartesian mesh, but it is potentially very rewarding. It allows us to render volume effects that is directly produced by the flow solvers.
Modeling of light scattering
We will use physical based wave-length effect to model scattering of light in volume. In the case of rainbow, light of different wave length has different refraction index and rate of total reflection in water drops, therefore the color of the light through two refraction and one total reflection inside the water drop varies as the angle varies, creating spectacular effects as the rainbow.