home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #7 / amigamamagazinepolishissue1998.iso / varia / povray3 / povray3_fpu / pov3demo / anim / raddem / raddem.pov < prev   
Text File  |  1997-12-12  |  7KB  |  214 lines

  1. // Persistence Of Vision raytracer version 3.0 sample file.
  2. // File by Dan Farmer
  3. // Radiosity demonstration
  4.  
  5. #version 3.0
  6. global_settings { assumed_gamma 2.2 }
  7.  
  8. #include "colors.inc"
  9. #include "textures.inc"
  10.  
  11. #include "consts.inc"
  12. #declare Rad_Quality = Radiosity_Fast
  13. #include "rad_def.inc"
  14.  
  15. // Uses ray_count and error_bound as the main speed/quality tradeoffs
  16. // Other changes made to emphasize or minimize effects.
  17. global_settings {
  18. #switch(Rad_Quality)
  19.  
  20.     // Run it fast, don't try to make it look good, make sure that
  21.     // you can actually see where the radiosity boundaries are.
  22.     #case (Radiosity_Debug)
  23.     radiosity {
  24.         count 10                 // Quick, but very blotchy
  25.         error_bound 0.3          // Match to value of the quality you're debugging
  26.         gray_threshold 0         // Emphasize color bleeding drastically
  27.         distance_maximum 10      // Scene-dependent!  Leave 0 if unsure of proper value.
  28.         low_error_factor 0.8     // Match to value of the quality you're debugging
  29.         nearest_count 1          // Will tend to cause boundaries to show
  30.         minimum_reuse 0.015      // Match to value of the quality you're debugging
  31.         brightness 3.3           // Doesn't really matter.  Not used in final output.
  32.         recursion_limit 1        // 1 is quickest 
  33.     }
  34.     #debug "\nRadiosity_Debug in use"
  35.     #break
  36.  
  37.     // Make it look as good as you can, but I'm in a hurry
  38.     #case (Radiosity_Fast)
  39.     radiosity {
  40.         count 80                 // Do more calculations to calculate each sample
  41.         error_bound 0.4          // Main quality/time adjustment = sample spacing
  42.         gray_threshold 0.6       // Higher than usual to hide colour bleed errors
  43.         distance_maximum 10      // Scene-dependent!  Leave 0 if unsure of proper value.
  44.         low_error_factor 0.9     // Only slightly lower error bound during preview
  45.         nearest_count 5
  46.         minimum_reuse 0.025      // Don't do too many samples in corners
  47.         brightness 3.3           // doesn't really matter.  Not used in final output.
  48.         recursion_limit 1        // can be 1 (usual) or 2 (for patient people)
  49.     }
  50.     #debug "\nRadiosity_Fast in use"
  51.     #break
  52.  
  53.     // Typical values
  54.     #case (Radiosity_Normal)
  55.     radiosity {
  56.         count 200                // Calculate reasonable accurate samples
  57.         error_bound 0.3          // Main quality/time adjustment = sample spacing
  58.         gray_threshold 0.5       // Try 0.33-0.50. Just a matter of taste
  59.         distance_maximum 10      // Scene-dependent!  Leave 0 if unsure of proper value.
  60.         low_error_factor 0.75
  61.         nearest_count 7
  62.         minimum_reuse 0.017      // reasonable number of samples in corners
  63.         brightness 3.3           // doesn't really matter.  Not used in final output.
  64.         recursion_limit 1        // can be 1 (usual) or 2 (for patient people)
  65.     }
  66.     #debug "\nRadiosity_Normal in use"
  67.     #break
  68.  
  69.     // Typical values, but with 2 bounces.  Starts slow, but picks up steam!
  70.     #case (Radiosity_2Bounce)
  71.     radiosity {
  72.         count 200                // Calculate reasonable accurate samples
  73.         error_bound 0.3          // Main quality/time adjustment = sample spacing
  74.         gray_threshold 0.5         // Try 0.33-0.50. Just a matter of taste
  75.         distance_maximum 10      // Scene-dependent!  Leave 0 if unsure of proper value.
  76.         low_error_factor 0.75
  77.         nearest_count 7
  78.         minimum_reuse 0.017      // reasonable number of samples in corners
  79.         brightness 3.3           // doesn't really matter.  Not used in final output.
  80.         recursion_limit 2        // Slow at first, but don't give up, it gets faster
  81.     }
  82.     #debug "\nRadiosity_Normal in use"
  83.     #break
  84.  
  85.     // For patient quality freaks with fast computers about to leave on vacation
  86.     #case (Radiosity_Final)
  87.     radiosity {
  88.         count 800                // Ensure that we get good, accurate samples
  89.         error_bound 0.2          // And calculate lots of them.  (more important than count)
  90.         gray_threshold 0.5
  91.         distance_maximum 4       // Scene-dependant! 
  92.         low_error_factor 0.7     // force many extra samples to be calculated...
  93.         nearest_count 9          // so we can average them together for smoothness
  94.         minimum_reuse 0.01       // get quite tightly into corners
  95.         brightness 3.3           // doesn't really matter.  Not used in final output.
  96.         recursion_limit 1        // Try this = 2, but drop the count to maybe 300
  97.    }
  98.    #debug "\nRadiosity_Final in use"
  99.    #break
  100. #end
  101. }
  102.  
  103. /******************************************
  104. #declare Radiosity_Defaults = 0
  105. #declare Radiosity_Test = 1
  106. #declare Radiosity_Fast = 2
  107. #declare Radiosity_Final = 3
  108.  
  109. #declare Rad_Quality = Radiosity_Test
  110.  
  111. global_settings {
  112.  
  113. #switch(Rad_Quality)
  114.     #case (Radiosity_Defaults)
  115.     #break
  116.     #case (Radiosity_Test)
  117.         radiosity {
  118.             brightness 3.3
  119.             count 50
  120.             distance_maximum 6
  121.             gray_threshold 0.0
  122.             low_error_factor 0.775
  123.             nearest_count 1
  124.             recursion_limit 1
  125.  
  126.             error_bound 0.25          // Experiment with this
  127.             minimum_reuse 0.15        // Experiment with this
  128.         }
  129.     #break
  130.     #case (Radiosity_Fast)
  131.         radiosity {
  132.             brightness 3.3
  133.             count 500
  134.             distance_maximum 6
  135.             gray_threshold 0.0
  136.             low_error_factor 0.775
  137.             nearest_count 8
  138.             recursion_limit 1
  139.  
  140.             error_bound 0.75
  141.             minimum_reuse 0.15
  142.         }
  143.     #break
  144.     #case (Radiosity_Final)
  145.         radiosity {
  146.             brightness 3.3
  147.             count 1500
  148.             distance_maximum 6
  149.             gray_threshold 0.15
  150.             low_error_factor 0.015
  151.             nearest_count 12
  152.             recursion_limit 1
  153.  
  154.             error_bound 0.015
  155.             minimum_reuse 0.015
  156.         }
  157.     #break
  158. #end
  159.  
  160. }
  161. ******************************/
  162.  
  163.  
  164. camera {
  165.   location <-1.5, 2, -29.9>
  166.   direction z * 1.75
  167.   up y
  168.   right x * 1.3333
  169.   look_at <0.5, -1.0, 0.0>
  170. }
  171.  
  172. #declare Dist=15
  173. //#declare L = 0.65
  174. #declare L = 0.35
  175.  
  176. light_source { <0, 9.5, 0>
  177.   color rgb L
  178.   fade_distance Dist fade_power 2
  179.   shadowless
  180. }
  181.  
  182. light_source { <-5, 7.5, 10.>
  183.   color rgb L
  184.   fade_distance Dist fade_power 2
  185.   shadowless
  186. }
  187.  
  188.  
  189. #declare Ambient = 0.35
  190. #declare Ambient = 0.25
  191. box { -1, 1
  192.     scale <10, 10, 30>
  193.     pigment { White }
  194.     finish { ambient Ambient }
  195. }
  196.  
  197. box { -1, 1 scale <9, 8, 0.2>
  198.     pigment {
  199.         gradient z
  200.         color_map {
  201.             [0.0 color Red ]
  202.             [0.5 color Red ]
  203.             [0.5 color Blue ]
  204.             [1.0 color Blue ]
  205.         }
  206.         translate -z*0.5
  207.     }
  208.     finish { ambient Ambient }
  209.     rotate y*90
  210.     rotate y*(clock*360)
  211.     translate z*10
  212. }
  213.  
  214.