POV-Ray : Newsgroups : povray.general : Small is NOT BEAUTIFUL Server Time
5 Nov 2024 18:26:35 EST (-0500)
  Small is NOT BEAUTIFUL (Message 1 to 6 of 6)  
From: Frank 'Sputnik' Rothfuß
Subject: Small is NOT BEAUTIFUL
Date: 11 Feb 2003 00:26:51
Message: <3E48899F.44352FFE@computermuseum.fh-kiel.de>
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] computermuseumfh-kielde
-------------------------------------


Post a reply to this message

From: ABX
Subject: Re: Small is NOT BEAUTIFUL
Date: 11 Feb 2003 04:55:16
Message: <msgh4v4k7pojl1ms872t2a7kubkjb85bsi@4ax.com>
On Tue, 11 Feb 2003 06:26:55 +0100, Frank 'Sputnik' Rothfuß
<fr### [at] computermuseumfh-kielde> wrote:
> 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.

That's not a bug, imo, but mentioned floating point accuracy. You can
reproduce the same floating point accuracy error only making the same
calculations over the same values with the same type of FPU. Every changed
line where operations on floats are performed changes floating point accuracy.
Maintaining the same lines in sources only to reproduce the same floating
point accuracy simple leads to not changing sources at all so why release 3.5
at all? The problem in your example is that while screen and objects are
smaller, direction of camera ray has always length 1. The same for normals
after intersection. Performing calculations over values with very different
mantysa (correct word?) always increase floating point accuracy. You should be
happy that you still not found floating point accuracy problem like this:
http://news.povray.org/povray.beta-test.binaries/18705/

ABX


Post a reply to this message

From: Thorsten Froehlich
Subject: Re: Small is NOT BEAUTIFUL
Date: 11 Feb 2003 14:36:08
Message: <3e4950a8@news.povray.org>
In article <3E48899F.44352FFE@computermuseum.fh-kiel.de> , Frank 'Sputnik'


> 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.

I am not sure what is causing these effects, but I agree that there are no
changes that should be as visible in 3.5 compared to 3.1.  For completeness,
could you give exact version information for the two versions used, please?

    Thorsten

____________________________________________________
Thorsten Froehlich
e-mail: mac### [at] povrayorg

I am a member of the POV-Ray Team.
Visit POV-Ray on the web: http://mac.povray.org


Post a reply to this message

From: Frank 'Sputnik' Rothfuß
Subject: Re: Small is NOT BEAUTIFUL
Date: 16 Feb 2003 09:38:21
Message: <3E4FA25D.4D13FDBC@computermuseum.fh-kiel.de>
Hi Thorsten,

the pictures I've postet were rendered on a P2, 233 MHz, 32 MByte,
running Windows 95. The POV_Ray-Versions were (according to the
help menu):
 - official 3.1g.watcom.win32
 - official 3.5 icl.win32

If new features of 3.5 should require such a high 'epsilon',
I suggest to multiply internally all coordinate values by at least
100. Currently screen-filling objects of unit size are unusable
due to visible artefacts (esp. when they are transparent).

   Sputnik

-- 

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

e-mail: fr### [at] computermuseumfh-kielde
-------------------------------------


Post a reply to this message

From: Retsam
Subject: Re: Small is NOT BEAUTIFUL
Date: 12 Mar 2003 12:50:05
Message: <web.3e6f6fbcf83a23f92a3ff2e70@news.povray.org>
I ran into a similar problem with some blobs I made.  I was trying to make a
generic flower (daisy), which meant squishing sphere components to make the
petals.  I ended up having to make the flower about 100 units across in
order to eliminate MOST (unfortunately not all) of the visual artifacts.  I
also ended up making the petals thicker, because thinner petals had huge
artifacts even at very large scales.  At a scale of even 5 units across,
large portions of the tips of the petals got cut off, etc.

For example, instead of scaling a sphere component by <32, 1.5, 10> to make
a thin petal, I had to scale by <32, 4, 12> to get a useable petal.

Frank wrote:
>Hi Thorsten,
>
>the pictures I've postet were rendered on a P2, 233 MHz, 32 MByte,
>running Windows 95. The POV_Ray-Versions were (according to the
>help menu):
> - official 3.1g.watcom.win32
> - official 3.5 icl.win32
>
>If new features of 3.5 should require such a high 'epsilon',
>I suggest to multiply internally all coordinate values by at least
>100. Currently screen-filling objects of unit size are unusable
>due to visible artefacts (esp. when they are transparent).
>
>   Sputnik
>
>--
>-------------------------------------

>e-mail: fr### [at] computermuseumfh-kielde
>-------------------------------------
>


Post a reply to this message

From: Thorsten Froehlich
Subject: Re: Small is NOT BEAUTIFUL
Date: 12 Mar 2003 13:02:43
Message: <3e6f7643$1@news.povray.org>
In article <web.3e6f6fbcf83a23f92a3ff2e70@news.povray.org> , "Retsam" 
<nomail@nomail> wrote:

> I ran into a similar problem with some blobs I made.  I was trying to make a
> generic flower (daisy), which meant squishing sphere components to make the
> petals.  I ended up having to make the flower about 100 units across in
> order to eliminate MOST (unfortunately not all) of the visual artifacts.  I
> also ended up making the petals thicker, because thinner petals had huge
> artifacts even at very large scales.  At a scale of even 5 units across,
> large portions of the tips of the petals got cut off, etc.
>
> For example, instead of scaling a sphere component by <32, 1.5, 10> to make
> a thin petal, I had to scale by <32, 4, 12> to get a useable petal.

This sounds much more like you didn't specify "sturm"...

    Thorsten

____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trfde

Visit POV-Ray on the web: http://mac.povray.org


Post a reply to this message

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