For our final project, we proposed to render the following image as realistically as possible. This image was obtained from http://www.duholkephotography.com. The title of the image is Dry Ice Fog - Blue. |
After reading several papers on modeling smoke we decided to try and use perlin noise to model the smoke. We defined 3 regions of dry ice we needed to concentrate on. First there was the smoke on the ground. Then there was the smoke from the glass that drifted to the ground, and finally there was the smoke within the glass itself. Working with these three separate regions was much more intuitive than trying to generate a model based on the entire picture particle by particle. |
To model each region, we defined volumes around them. The floor and the falloff portions had rectangluar box regions and the glass had a spherical region. Within each region, perlin noise was used to generate the particles so that the density would be varied. This effectively produced a sponge like appearance to the volumes, which is still far from what we wanted. We thought of and eperimented with different things to get the dry ice look we needed for the picture. One path we tried was to try and generate some type of heightfield for the ground in order to make it more uneven. particles closer to the top of the heightfield would have less chance of getting generated than particles further below, to simulate some type of falloff in density near the edges. But we found the method produced very unnatural looking reesults. We then tried to add in a turbulence effects within each volume and introduced some type of falloff at the edges. This was implemented by overriding the DensityRegion class with our own Perlin_Density class. We added a number of parameters to this class that allow us to precisely control the shape and look of the smoke. There are individual parameters that control the turbulence in each of X, Y and Z direction. There are parameters that control exponential falloff of density in each directory from a given point. The code can be found here. The result produced for the floor volume is shown below: |
Using our function to generate the falloff region produced the following image: |
After putting these two together and tweaking the function as well as the parameters, we ended up with this: |
We used a champagne glass model from 3dcafe.com to model our glass. It fit our needs exactly since the glass was spherical in shape. To confine the volume to within our glass, we passed in it's center and made sure that it particles outside of the sphere did not get rendered. Another problem we had was in modeling the color of the final image. Looking up properties of dry ice, we found the following graph: |
We tried various techniques to get the reflectance property of the dry ice to show correctly. In the end, we just used decided to make the particles emit the right shade blue. We also expanded the falloff region to make it look more like the picture and merge with the region from the cup. We also shined an area light on the entire scene. The result is: |
We were satisfied with the look of the dry ice regions, and just needed to model the light inside or perhaps behind the glass. We found that our regions were too thick for a light behind the glass to show through. We decided to place a point light source within our glass and obtained the following: |
To correct for the fact that our glass was much larger than the one in the picture, we decided to model our own. Since the volume region was dependent on the sphere shape, we had to scale it to match the new shape of the glass. Our final image is shown below, side by side with the reference picture: |
Other things we attempted to do were to model the left side of the falloff and the small droplets of water on the glass. Our attempts to model another region on the left of the glass came out strange since our regions did not produce the well defined lines as shown in the picture so we left it out since the final image looked better without it. The droplets of water we tried to place on the glass did not look right and were omitted as well. The final tif file can be found here. |