// This source file generates a realistic 3-D graphic image // Author: Donald W. Hyatt // Email: dhyatt@tjhsst.edu // Web: http://www.tjhsst.edu/~dhyatt/ // The following are some simple include files for predefined items #include "colors.inc" #include "shapes.inc" #include "textures.inc" // A. First Essential Feature: The CAMERA to take the picture camera { location <3, 12, -17> // Camera location: x,y,x coordinates in three-space look_at <0, 5, -2> // Direction of view in three-space } // B. Second Essential Feature: The LIGHT SOURCE light_source { <-50,50,-30> // Location is behind the viewer, high, and to the left color rgb <1.5, 1.5, 1.5> // This is a BRIGHT white light } // C. Third Essential Feature - The OBJECTS in three-space // Object #1 - A checkerboard floor or plane plane { y, 0 // along the x-z plane (y is the normal vector) pigment { checker color Black color White } // checkered pattern finish { ambient 0.2 // How much light is scattered from nearby objects diffuse 0.8 // How much light comes from the direct source } scale 2 // Enlarge the basic checker pattern by a factor of two } // Object #2 - A shiny red sphere sphere { <1.0, 6.0, 3.7>, 5 // The of the sphere and it's radius pigment { color rgbf <1, 0, 0, 0> // Red, Green, Blue and Filter (transparency) } finish { phong 0.8 // The shiny highlight reflection 0.8 // How much light bounces off the object } } // Objetct #3 - A moderatley shiny yellow box box { <-1, 0, -3> <-5, 8, -7> // Two corners of the box texture{ pigment { marble color_map { [0.0 color rgbf <1, 1, 0.2, 0.0>] [1.0 color rgbf <1, 1, 0.8, 0.0>] } turbulence 1.5 lambda 1.5 omega 0.75 octaves 8 } normal {bumps 0.2 scale 0.2} finish { phong 0.8 reflection 0.2 ambient 0.15 diffuse 0.75 } } } // Object #4 - A transparent blue torus (A torus is defined about the origin) torus {2.5, 0.8 // Major radius (basic size) and minor radius (cross section) pigment {color rgbf <0.2, 0.2, 1.0, 0.8>}// Strong blue and transparent finish { phong 1.0 // Highlight reflection 0.5 // Shiny surface refraction 1.2 // Properties of light passing through object ior 1.8 // Index of refraction } translate <-1.2, 5.5, -6.8> // Move the torus away from the origin } // Object #5 - A cone with a portion removed difference{ cone { < -9, 0, 2>, 4, // Center of base and radius <-9, 11, 2>, 0 // Center of top and radius } sphere {<-9.1, 8, 1.4>, 1.2} // This sphere is removed from the cone pigment {color rgbf <0.0, 0.6, 0.0, 0.0>} // Dark green finish { phong 1.0 reflection 0.2 } } //Object #6 - A blob blob { threshold 0.1 // Factor relating to how spheres merge component 1.0, 1.8, < 5, 5, -4> // Sphere #1 strength, radius, and location component 1.0, 1.0, <6.5, 5.5, -3> // Smaller sphere #2 component 1.0, 1.0, <6.5, 5.5, -5> // Smaller sphere #3 pigment { image_map{ // Wrap an image around object instead of color gif "azalea3.gif" // Targa file and name map_type 0 // Typr of wrapping interpolate 2 // Boundary type between colors } // turbulence 0.7 // Mess up pattern with turbulence scale 3 // Enlarge covering image rotate <8,-3,0> } finish { phong 0.2 // Give modest high light //reflection 0.1 // Minor reflective properties } }