POV-Ray : Newsgroups : povray.binaries.images : A little progress on the hand grenade : Re: A little progress on the hand grenade Server Time
31 Jul 2024 10:23:31 EDT (-0400)
  Re: A little progress on the hand grenade  
From: Dave Blandston
Date: 10 May 2010 06:35:01
Message: <web.4be7e038113fead1cba3fb0f0@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:
> I'd be interested in details, because that shouldn't happen, so maybe
> there's still some problem in certain situations.

Here's a complete but simple scene demonstrating the situation. Version 3.7 will
eventually render the scene, but when the object is used in a more complex scene
the radiosity step goes on seemingly forever. There is one more object I've come
across that causes the same phenomenon, which I can post as well if you wish.

Regards,
Dave Blandston

------------------

//Version 3.7 Beta 37a takes 24 minutes 55 seconds to render at 512 x 384 +am2
+r3.
//Version 3.62 takes 6 minutes 31 seconds to render with the same settings.

//Measured on a computer with four processors.

global_settings {
   radiosity {
      count 300
      error_bound .02
      pretrace_start .08
      pretrace_end .004
      recursion_limit 2
      normal on
   } //radiosity
} //global_settings

#include "colors.inc"

camera {
   location <0, 0, -3>
   direction <0, 0, 4/3>
   look_at <0, 0, 0>
} //camera

#local Dome = object {
   difference {
      sphere {0, 20001}
      sphere {0, 20000}
   } //difference
   texture {
      pigment {
         gradient z
         color_map {
            [0, 1 color White * 1.8 color White * .6]
         } //color_map
      } //pigment
      finish {ambient 1 diffuse 0}
      scale <1, 1, 20000>
   } //texture
   no_reflection
} //object

object {Dome}

plane {z, 4 inverse texture {pigment {color rgb <213, 250, 81> / 255 * .6}}}

#local RingDiameter = 1 + 5/32;
#local RingWireRadius = 3/64;

#local Ring = object {
   #local NDegrees = 360 + 180;
   #local DeltaTheta = 15;
   #local NPoints = NDegrees / DeltaTheta + 3;
   #local DeltaZ = RingWireRadius / (360 / DeltaTheta) * 2;
   sphere_sweep {
      b_spline
      NPoints
      #local Theta = -DeltaTheta;
      #local CurZ = -DeltaZ;
      #local I = 0;
      #while (I < NPoints)
         <RingDiameter / 2 * cos (radians (Theta)), RingDiameter / 2 * sin
(radians (Theta)), CurZ>, RingWireRadius
         #local Theta = Theta + DeltaTheta;
         #local CurZ = CurZ + DeltaZ;
         #local I = I + 1;
      #end //#while
   } //sphere_sweep
   texture {pigment {color Yellow}}
} //object

object {Ring}


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.