TITLE: flowing NAME: Bernd Sieker COUNTRY: Germany EMAIL: bsieker@techfak.uni-bielefeld.de WEBPAGE: -- TOPIC: water COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT. JPGFILE: flowing.jpg ZIPFILE: flowing.zip RENDERER USED: Blue Moon Rendering Tools 2.3.6 TOOLS USED: mops (http://www.informatik.uni-rostock.de/~rschultz/mops.html, The Gimp (http://www.gimp.org/) RENDER TIME: 1 day 22 hours 39 minutes 1 second (User CPU time) (For full statistics output of the renderer see the file "flowing.out" in the zip file.) HARDWARE USED: AMD 5x86-133, 80MB RAM, NetBSD-1.3.2 IMAGE DESCRIPTION: There is nothing really exiting to say about the scene as such, it shows a simple bathroom with a sink, a tap and a board with a glass and a tube of toothpaste. What's special about this is that it shows some of the features of BMRT, i. e. global illumination (using energy balancing to calculate diffuse interreflection, also known as "radiosity") and a volumetric fog. most other features are straightforward raytracing. DESCRIPTION OF HOW THIS IMAGE WAS CREATED: --- Beware! This text is very long! --- While alpha-testing the new modeller "mops" by Randolf Schultz (see above) I thought I'd try what it can do so far and make an entry for this round's IRTC. mops only outputs a Renderman Interface Bytestream (RIB) as its only format. It saves scenes in a proprietary ".mop" format. GEOMETRY ~~~~~~~~ The room consists of simple boxes, nothing exiting there. For the sink I made several circular spline curves and distorted them and then used "build from curves" to make them into a complex spline mesh. For the drain I revolved two spline curves. For the glass and the thoothpaste tube cap I also used the "revolve" function. The tube itself was also built from individual curves, as well as the little piece of toothpace squirting out of the tube. The tap's main part consists of a spline mesh that was also built from cross-sections and some cylinders and paraboloids. The two handles are also spline meshes built from cross-sections with a CSG shpere for the coloured dot. The water pipe was made using the "sweep" function and the jet is also built from cross-sections. SHADERS ~~~~~~~ Unlike most other renderers RenderMan tm does not simply use "materials", i. e. define certain parameters to a fixed shading model, but allows the artist to execute arbitrary algorithms for points hit on a surface or to shade the interior of an object. In fact writing a small program is the _only_ way to create a material, in this case called a "shader". Shaders are written in the "Renderman Shading Language", whose syntax is very similar to C. Similar to surface color and opacity calculated in "surface" shaders, there are "displacement" shaders to create bump or displacement mappings, volume shaders to create smoke or fog and similar effects and "light" shaders to define the behavior of light sources. The Renderman Shading Language is very complex and I do not as yet really master it but I can produce most of the effects I need. For this image I used some of the shaders that are included with the Blue Moon Rendering Tools or found elsewhere on the Internet. Shader names starting with "BS" ("Bernd Sieker") in the zip file were created or modified by me. Standard shaders were: arealight (light) for the two lightsourced BMGlass (surface) for the glass, BMShiny (surface) for the sink and the board BMStucco (displacement) for the walls, DPBlueMarble (surface) for the window sill (out of shot), LGDented (displacement) for the water jet, LGParquetPlank (surface) for the floor, matte (surface) for the walls, noisysmoke (volume) for the fog, plastic (surface) for the tube cap. Some more words about my own shaders: - BSBathTile(Bump) For the tiles I created a surface shader and a displacement shader, that use a repeating pattern to make tiles and grooves with different reflectivity and color. The noisy pattern on the tiles themselves however does not repeat over the tiles but is (pseudo) random over the entire wall. I also wrote an accompanying displacement shader to raise the tiles a little bit above the ground and perturb the surface of the tiles a bit to make a distorted reflection. - BSShinyRustyMetal This is based mainly on Larry Gritz' RustyMetal, but adds raytraced reflections. It makes a shiny metal with little spots of rust on it. - BSThreads Makes the threads of the toothpaste tube. In the scale the final image was rendered they are hardly visible. - BSToothPasteStripes make the striped toothpaste squirting out of the tube - BSpaintedplastic A simple plastic like surface, that uses in fact the only texture map of the whole scene. In the final shot the texture is hardly visible, but I included the TIFF file anyway. RENDERING ~~~~~~~~~ If you have a RenderMan tm compliant renderer (Pixar's PhotoRealistic Renderman or Larry Gritz' BMRT) you should be able to render my scene almost directly. You only need to compile the shaders and put them in a place where the renderer will find them. All rendering parameters are included in the RIB file itself (which is plain ASCII so you can take a look at it as well). The image was rendered with full radiosity (which, unlike POV-Ray's pseudo-radiosity really does an energy-balancing and surface subdivision. In this case the energy balancing was complete to more than 99.5%. After the radiosity-precalculations the image was rendered using distributed raytracing to create soft shadows and volumetric effects. I used two light sources, one at some distance to create the light patches on the wall and sink and simulate direct sunlight, and one at the window to the right to provide some global illumination. I have included the statistics output of the renderer in the zipfile (flowing.out)