home *** CD-ROM | disk | FTP | other *** search
- // Persistence of Vision Raytracer
- // Height field sample
- // by Douglas Muir
- // Note: Original used 640 X 480 height field.
- // This version is scaled down for distribution.
-
-
- #include "shapes.dat"
- #include "colors.dat"
- #include "textures.dat"
-
- view_point
- location <0.0 80.0 -300.0>
- direction <0.0 0.0 1.0>
- up <0.0 1.0 0.0>
- right <1.333333 0.0 0.0>
- look_at <0.0 30.0 200.0>
- end_view_point
-
- object
- height_field gif "fract003.gif"
- water_level 101.0
- end_height_field
-
- texture
- imagemap <1.0 0.0 -1.0> gif "fract003.gif" end_map
- scale <320.0 1.0 200.0>
- translate <0.0 0.0 -1.0>
- end_texture
-
- scale <2.0 0.5 2.0>
- translate <-160.0 -63.5 -100.0>
- rotate <0.0 10.0 0.0>
- translate <-80.0 0.0 -30.0>
-
- colour White
- end_object
-
- // Define the ocean surface
- object
- plane <0.0 1.0 0.0> -10.0 end_plane
-
- texture
- colour Aquamarine
- waves 0.06
- frequency 5000.0
- ambient 0.1
- diffuse 0.1
- reflection 0.8
- scale <1000.0 1000.0 1000.0>
- end_texture
- colour red 1.0 green 0.3
- end_object
-
- // Put a floor underneath to catch any errant waves from the ripples
- object
- plane <0.0 1.0 0.0> -11.0 end_plane
- texture
- 0.05
- colour red 1.0 green 0.6
- ambient 0.8
- diffuse 0.0
- end_texture
- colour red 1.0 green 0.6
- end_object
-
- // Now draw the sky
- object
- sphere <0.0 0.0 0.0> 3000.0 end_sphere
- texture
- onion
- colour_map [0.0 0.6 colour red 1.0 green 0.6 blue 0.0
- colour red 0.3 green 0.6 blue 0.6]
- [0.6 1.0 colour red 0.3 green 0.6 blue 0.6
- colour red 0.1 green 0.4 blue 0.6]
- end_colour_map
- scale <6000.0 1700.0 4000.0>
- translate <-1200.0 220.0 2500.0>
- ambient 0.8
- diffuse 0.0 { we don't want clouds casting shadows on the sky }
- end_texture
- colour red 0.7 green 0.7 blue 1.0
- end_object
-
- // Put in a few clouds
- object
- plane <0.0 1.0 0.0> 300.0 end_plane
-
- texture
- bozo
- turbulence 0.5
- colour_map
- [0.0 0.6 colour red 1.0 green 1.0 blue 1.0 alpha 1.0
- colour red 1.0 green 1.0 blue 1.0 alpha 1.0]
- [0.6 0.8 colour red 1.0 green 1.0 blue 1.0 alpha 1.0
- colour red 1.0 green 0.8 blue 0.1]
- [0.8 1.001 colour red 1.0 green 0.8 blue 0.1
- colour red 0.8 green 0.4 blue 0.2]
- end_colour_map
- scale <1000.0 200.0 800.0>
- ambient 0.7
- diffuse 0.0
- end_texture
- translate <-500.0 0.0 0.0>
- rotate <6.0 0.0 0.0>
- colour red 0.7 green 0.7 blue 1.0
- end_object
-
- // Now to cast some light on the subject
- object
- sphere <0.0 0.0 0.0> 40.0 end_sphere
- translate <-150.0 250.0 -400.0>
- texture
- colour MediumGoldenrod
- ambient 1.0
- diffuse 0.0
- end_texture
- light_source
- colour MediumGoldenrod
- end_object
-
- // Now to cast some more light on the subject
- object
- sphere <0.0 0.0 0.0> 190.0 end_sphere
- translate <-1300.0 380.0 2500.0>
- texture
- colour red 1.0 green 0.6
- ambient 1.0
- diffuse 0.0
- end_texture
- light_source
- colour red 1.0 green 0.7
- end_object
-