|
![](/i/fill.gif) |
Hi,
In the thread 'Maximum possible extents for POV-Ray scene coordinates?',
started 8 Jan 2003, the practical limits for coordinates were told to
be 1e-6 .. 1e+6. This doesn't apply to SIZES of objects: As a rule of
thumb,
a POV-unit should not cover more than one screen.
To show this, I've prepared a simple scene: a sphere with a diameter of
1 POV-unit, a 1x1x2 box, and a cylinder. The scenes below were rendered
with the official windows POV-Ray versions 3.1g and 3.5. Four images,
named MinSize_##_%%%%.jpg (##=POV-Ray version, %%%%=scale factor(s)),
are posted to povray.binaries.images with the same header. They show
visible geometric distortions at 1E-5, even if the 1-unit-diameter
sphere doesn't fill the whole screen. POV-Ray 3.5 has *GREAT* problems
with shadows even at a scale of 0.1 -- especially look at edges of the
box, intersections of box and cylinder, the area where the sphere touches
the box, and their shadows. Of course floating point calculations can't
be perfect, but why is 3.1g THREE ORDERS OF MAGNITUDE better than 3.5.?
I think this is a bug that should be corrected.
Sputnik
//=== Start of 'Small is NOT BEAUTIFUL' demo scene 1 =====
================
//+SP8 +EP8 +D +A0.1 +AM2 +R3 +FN +OMinSize_35_1_to_1E-11 +W1024 +H768
#macro Scene ( Row, Col, Size )
union {
box { -0.5, <1.5, 0.5, 0.5> }
cylinder { -y, y, 0.1 }
sphere { <0.7, 1, 0.2>, 0.5 }
texture {
pigment { color rgbt <1,1,1,0.4> }
finish { ambient .3 }
}
rotate <-40, 20, -5>
translate <Col*4-10.5, 6.9-Row*3.5, 220>
scale Size
}
#local SizeExp = floor(log(Size)/log(10)+1E-6);
#local SizeMant = Size/pow(10,SizeExp);
text {
ttf "timrom.ttf"
concat ( "Size=", str(SizeMant,3,1), "E", str(SizeExp,0,0) )
0.01, 0
texture { pigment { color rgb 1 } finish { ambient 1 } }
scale 0.55
translate <Col*4-11.5, 5.5-Row*3.5, 220>
}
#end//macro Scene
text {
ttf "timrom.ttf"
concat ( "POV-Ray", str(version,4,1) )
0.01, 0
texture { pigment { color rgb 1 } finish { ambient 1 } }
scale <0.6, 0.6, 1>
translate <-1.5, 5.2, 220>
}
Scene ( 1, 1, 1 )
Scene ( 1, 2, 0.1 )
Scene ( 1, 3, 0.01 )
Scene ( 1, 4, 0.001)
Scene ( 2, 1, 1E-4 )
Scene ( 2, 2, 1E-5 )
Scene ( 2, 3, 1E-6 )
Scene ( 2, 4, 1E-7 )
Scene ( 3, 1, 1E-8 )
Scene ( 3, 2, 1E-9 )
Scene ( 3, 3, 1E-10)
Scene ( 3, 4, 1E-11)
light_source { <-3,6,-1>*10000 rgb 1 }
camera { location 0 look_at z angle 4 }
global_settings { max_trace_level 10 }
//=== End of 'Small is NOT BEAUTIFUL' demo scene 1 ======
=================
//=== Start of 'Small is NOT BEAUTIFUL' demo scene 2 =====
================
//+SP8 +EP8 +D +A0.1 +AM2 +R3 +FN +OMinSize_35_1E-1 +W1024 +H768
union {
box { -0.5, <1.5, 0.5, 0.5> }
cylinder { -y, y, 0.1 }
sphere { <0.7, 1, 0.2>, 0.5 }
texture {
pigment { color rgbt <1,1,1,0.4> }
finish { ambient .3 diffuse .7 }
}
rotate <-40, 20, -5>
translate <-0.5, -0.3, 5>
scale 0.1 // only small artefacts: 0.1 (POV 3.5); 0.0001 (POV 3.1)
}
light_source { <-3,6,-1>*10000 rgb 1 }
camera { location 0 look_at z angle 40 }
global_settings { max_trace_level 10 }
//=== End of 'Small is NOT BEAUTIFUL' demo scene 2 ======
=================
--
-------------------------------------
e-mail: fr### [at] computermuseum fh-kiel de
-------------------------------------
Post a reply to this message
|
![](/i/fill.gif) |