POV-Ray : Newsgroups : povray.bugreports : Infinite cone bug Server Time
31 Oct 2024 16:15:19 EDT (-0400)
  Infinite cone bug (Message 1 to 1 of 1)  
From: Gilles Tran
Subject: Infinite cone bug
Date: 21 Jul 1999 05:10:58
Message: <37958F5F.AF298674@inapg.inra.fr>
Infinite cone bug
---------------------------------
Description
---------------------------------
Some cones appear to be infinite objects while they should be finite
ones.

- When they appear in large numbers in a scene (when they are produced
by a macro, for instance), they tend to slow the rendering down, even in
the empty parts of the scene. They have appeared in branches of
macro-generated trees (several cones in a same branch, for instance).

- These cones have in common to have a base and a top radius very close
to each other relatively to the length of the cone (making the cone
looking like a cylinder).

- Cones with parameters very close to the "offending" ones appear as
finite cones but also slow down the rendering.

---------------------------------
Workarounds
- Manually bounding the cone by a cylinder of the same maximum radius
removes the problem at least in the empty zones of the image (and
provided that automatic bounding is turned off). Unions of cones can be
bounded too.
- Using cylinders instead of cones...

---------------------------------
Version and systems
Povray 3.1a NT4, povray 3.1g NT4 & W95, Pentium 200 64 Mo RAM or Pentium
166 48  Mo RAM

---------------------------------
Code example
camera {location  -z*1000} light_source{<1,1,-1>*1000 color 2}
background{rgb 1}
#declare slow_cone_infinite= cone{0 ,15,<8,90,8> ,14.9}
#declare slow_cone_infinite_bounded= cone{0 ,15,<8,90,8> ,14.9
bounded_by{cylinder{0,<8,90,8> ,15}}}
#declare slow_cone_finite= cone{0 ,15,<8,90,8> ,14.8}
#declare slow_cone_finite_bounded= cone{0 ,15,<8,90,8> ,14.8
bounded_by{cylinder{0,<8,90,8> ,15}}}
#declare fast_cone= cone{0 ,15,<8,90,8> ,10}
#declare fast_cone_bounded= cone{0 ,15,<8,90,8> ,10
bounded_by{cylinder{0,<8,90,8> ,15}}}

#declare testcone=object{slow_cone_infinite}
//#declare testcone=object{slow_cone_finite}
//#declare testcone=object{fast_cone}

//#declare testcone=object{slow_cone_infinite_bounded}
//#declare testcone=object{slow_cone_finite_bounded}
//#declare testcone=object{fast_cone_bounded}

// here we place 4000 cones
#declare i=-10;#while (i<10) #declare j=0;#while (j<200)
object{testcone translate <i,0,j>*35 pigment{rgb<1,0,0>}}
#declare j=j+1;#end #declare i=i+1;#end


Post a reply to this message

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