home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / DOS / GRAFISCH / RAYTRACE / POLYRAY / DAT / TEXTURE.INC < prev   
Text File  |  1992-11-22  |  5KB  |  220 lines

  1. // Names of the various shading flags
  2. define shadow_check       1
  3. define reflect_check      2
  4. define transmit_check     4
  5. define two_sided_surface  8
  6. define cast_shadows      16
  7. define primary_rays      32
  8.  
  9. // Default shading flags during raytracing - everything gets checked.
  10. define all_shading_flags
  11.    shadow_check + reflect_check + transmit_check + cast_shadows +
  12.    two_sided_surface + primary_rays
  13.  
  14. //
  15. // Define a set of shading flags for surfaces that shouldn't have their
  16. // backsided illuminated
  17. define one_sided_surface
  18.    all_shading_flags - two_sided_surface
  19.  
  20. // Useful definitions to use with noise surfaces.  These
  21. // will come in handy below when we declare marble and
  22. // wood textures.
  23. define position_plain       0
  24. define position_objectx     1
  25. define position_worldx      2
  26. define position_cylindrical 3
  27. define position_spherical   4
  28. define position_radial      5
  29.  
  30. define lookup_plain    0
  31. define lookup_sawtooth 1
  32. define lookup_cos      2
  33. define lookup_sin      3
  34.  
  35. define plain_normal  0
  36. define bump_normal   1
  37. define ripple_normal 2
  38. define dented_normal 3
  39.  
  40. define blue_ripple
  41. texture {
  42.    noise surface {
  43.       color <0.4, 0.4, 1.0>
  44.       normal 2
  45.       frequency 100
  46.       bump_scale 2
  47.       ambient 0.3
  48.       diffuse 0.4
  49.       specular white, 0.7
  50.       reflection 0.5
  51.       microfacet Reitz 10
  52.       }
  53.    scale <10, 1, 10>
  54.    }
  55.  
  56. // The standard sort of marble texture
  57. define white_marble
  58. texture {
  59.    noise surface {
  60.       color white
  61.       position_fn position_objectx
  62.       lookup_fn lookup_sawtooth
  63.       octaves 3
  64.       turbulence 3
  65.       ambient 0.3
  66.       diffuse 0.8
  67.       specular 0.3
  68.       microfacet Reitz 5
  69.       color_map(
  70.          [0.0, 0.8, <1, 1, 1>, <0.6, 0.6, 0.6>]
  71.          [0.8, 1.0, <0.6, 0.6, 0.6>, <0.1, 0.1, 0.1>])
  72.       }
  73.    }
  74.  
  75. // Nice blue agate texture
  76. define sapphire_agate
  77. texture {
  78.    noise surface {
  79.       ambient 0.4
  80.       diffuse 0.6
  81.       specular white, 0.2
  82.       microfacet Cook 4
  83.       position_fn position_objectx
  84.       position_scale 1.1
  85.       lookup_fn lookup_sawtooth
  86.       octaves 3
  87.       turbulence 2
  88.       color_map(
  89.          [0.0, 0.3, <0, 0, 0.9>, <0, 0, 0.8>]
  90.          [0.3, 1,   <0, 0, 0.8>, <0, 0, 0.4>])
  91.       }
  92.    scale <0.5, 0.5, 0.5>
  93.    }
  94.  
  95. // Simple color map texture
  96. define whorl_texture
  97. texture {
  98.    noise surface {
  99.       color green
  100.       ambient 0.3
  101.       diffuse 0.8
  102.       lookup_fn lookup_sawtooth
  103.       octaves 2
  104.       turbulence 2
  105.       color_map(
  106.          [0.0, 0.3, green,   blue]
  107.          [0.3, 0.6, blue,    skyblue]
  108.          [0.6, 0.8, skyblue, orange]
  109.          [0.8, 1.0, orange,  red])
  110.       }
  111.    scale <0.5, 0.5, 0.5>
  112.    }
  113.  
  114. // Create a wood texture.  Concentric rings of color
  115. // are wrapped around the z-axis.  There is some turbulence
  116. // in order to keep the rings from looking too perfect.
  117. define light_wood <0.6, 0.24, 0.1>
  118. define median_wood <0.3, 0.12, 0.03>
  119. define dark_wood <0.05, 0.01, 0.005>
  120. define wooden
  121. texture {
  122.    noise surface {
  123.       position_fn position_cylindrical
  124.       position_scale 1
  125.       lookup_fn lookup_sawtooth
  126.       octaves 1
  127.       turbulence 1
  128.       ambient 0.2
  129.       diffuse 0.7
  130.       specular white, 0.5
  131.       microfacet Reitz 10
  132.       color_map(
  133.          [0.0, 0.2, light_wood, light_wood]
  134.          [0.2, 0.3, light_wood, median_wood]
  135.          [0.3, 0.4, median_wood, light_wood]
  136.          [0.4, 0.7, light_wood, light_wood]
  137.          [0.7, 0.8, light_wood, median_wood]
  138.          [0.8, 0.9, median_wood, light_wood]
  139.          [0.9, 1.0, light_wood, dark_wood])
  140.       }
  141.    }
  142.  
  143. // Define a texture using a color wheel
  144. define xz_wheel_texture
  145. texture {
  146.    special surface {
  147.       color color_wheel(x, y, z)
  148.       ambient 0.2
  149.       diffuse 0.8
  150.       specular white, 0.2
  151.       microfacet Reitz 10
  152.       }
  153.    }
  154.  
  155. // This is an example of a gradient texture.
  156. define mountain_colors
  157. texture {
  158.    noise surface {
  159.       ambient 0.2
  160.       diffuse 0.8
  161.       specular 0.2
  162.       position_fn position_objectx
  163.       color_map(
  164.          [-128,   0, blue,  blue]
  165.          [   0,  20, green, green]
  166.          [  20,  40, green, tan]
  167.          [  40,  90, tan,   tan]
  168.          [  90, 128, white, white])
  169.       }
  170.    rotate <0, 0, 90>
  171.    }
  172.  
  173. // This makes a nice texture to use on leaves
  174. define bumpy_green
  175. texture {
  176.    special surface {
  177.       normal N + dnoise(3*W)
  178.       ambient green, 0.2
  179.       diffuse green, 0.3
  180.       specular white, 0.7
  181.       microfacet Reitz 10
  182.       }
  183.    scale <0.02, 0.02, 0.02>
  184.    }
  185.  
  186. // Red dented/wrinkled appearance
  187. define dented_red
  188. texture {
  189.    noise surface {
  190.       color <1, 0.2, 0.2>
  191.       normal 1
  192.       frequency 2
  193.       bump_scale 3
  194.       ambient 0.2
  195.       diffuse 0.5
  196.       specular 0.7
  197.       microfacet Reitz 10
  198.       }
  199.    scale <0.2, 0.2, 0.2>
  200.    }
  201.  
  202. // When used on a big sphere, this makes a nice cloudy sky.  You will
  203. // probably need to scale to make it look good.
  204. define cloudy_sky
  205. texture {
  206.    noise surface {
  207.       ambient 0.9
  208.       diffuse 0
  209.       specular 0
  210.       turbulence 6.0
  211.       position_fn 2
  212.       lookup_fn 1
  213.       octaves 4
  214.       color_map(
  215.      [0.0, 0.6, <0.4, 0.4, 0.4>, <1, 1, 1>]
  216.      [0.6, 0.8, <1, 1, 1>, <0.196078, 0.6, 0.8>]
  217.      [0.8, 1.0, <0.196078, 0.6, 0.8>, <0.196078, 0.6, 0.8>])
  218.       }
  219.    }
  220.