POV-Ray : Newsgroups : povray.binaries.images : Ringworld re-re-revisited : Re: Ringworld re-re-revisited Server Time
29 Apr 2024 16:59:17 EDT (-0400)
  Re: Ringworld re-re-revisited  
From: Mike Williams
Date: 29 Oct 2005 12:41:57
Message: <l8WFxDAEZ6YDFwxR@econym.demon.co.uk>
Wasn't it Alain who wrote:
>Mike Williams nous apporta ses lumieres en ce 2005-10-29 09:56:
>> Wasn't it Thomas de Groot who wrote:
>> 
>>>Would more scaling down help? My model has currently a radius of 95,000 pov
>>>units, but also translated 95,000 units to keep the camera near the origin.
>>>It is possible to scale everything down more of course, without changing the
>>>aspect of the scene...
>> 
>> 
>> That was the first thing I tried when Bill posted the example scene.
>> It's easy to do, just reduce all those numbers by a factor of 1000 or
>> 100000. But the result stays exactly the same in this case.
>> 
>> It look's like it's not the absolute size of the values that causes the
>> effect in this particular case, but the loss of precision.
>> 
>You need 128 bit FPU! Now, they are 64 bits. In this case, double precision is 
>just not enough, you 
>need quadruple precision (or more!). It can be emulated, but it will take a LOT 
>more time to do the 
>maths, leading to proebitive render time.
>

However, the code that calculates the intersection of a ray with a box
is first order, rather than second order, so it can be performed
accurately with less precision.

It's possible to patch the hole in the cylinder with a box that's a
million miles square. I reckon that the difference between where the box
is and where the cylinder should be, is less than the precision errors
incurred in tracing the cylinder.

#include "colors.inc"
camera { location <0, 0.0001, 0>
         up <0, 1, 0>
         right <4/3, 0, 0>
         //direction <0, 0, FoV_75>
         look_at <-1000, 0, 0> }

#declare Ring = union {
  light_source { <0, 0, 0> color White }
  union {
     cylinder { <0, 0, -500000>, <0, 0, 500000>, 90000000 open hollow }
     box{<-500000,-90000001,-500000><500000,-90000000,500000>}
             pigment { color SkyBlue }
             finish { ambient 0.5 } } }

object { Ring translate <0, 90000000, 0> }

-- 
Mike Williams
Gentleman of Leisure


Post a reply to this message

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