|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Assuming my units of measurement 1 Povray unit, how big can I make
things before precision errors become a problem? I.e. what is the
"range" of scales that will still work?
-Mike
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
SharkD schrieb:
> Assuming my units of measurement 1 Povray unit, how big can I make
> things before precision errors become a problem? I.e. what is the
> "range" of scales that will still work?
That depends on what you actually want to do.
Any values in the order of 1.0e+17 or above are destined to get you into
utter trouble.
Distances between camera and objects, between different objects, or
between parts of an object, in the order of 1.0e+7 or above will mess up
various ray-object intersection tests.
Object sizes in the order of 1.0e+6 or above will disengage the bounding
mechanism for that object.
It is also recommended to place the scene near the coordinate origin, as
that's where computations can be done with highest precision; if the
smallest details you expect to see are X units in size, they should be
no further away from the coordinate origin than X * 1.0e+7 units,
otherwise bounding box and other mechanisms will freak out.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> Assuming my units of measurement 1 Povray unit, how big can I make things
> before precision errors become a problem? I.e. what is the "range" of
> scales that will still work?
Try a simple 1-line scene like this:
sphere{ <0,0,1> .4 scale X pigment{color rgb 10}}
And increase X until the sphere disappears, on my system X=2e7 doesn't
render.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
scott wrote:
>> Assuming my units of measurement 1 Povray unit, how big can I make
>> things before precision errors become a problem? I.e. what is the
>> "range" of scales that will still work?
>
> Try a simple 1-line scene like this:
>
> sphere{ <0,0,1> .4 scale X pigment{color rgb 10}}
>
> And increase X until the sphere disappears, on my system X=2e7 doesn't
> render.
Awesome, thanks!
-Mike
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
scott <sco### [at] scottcom> wrote:
> Try a simple 1-line scene like this:
> sphere{ <0,0,1> .4 scale X pigment{color rgb 10}}
> And increase X until the sphere disappears, on my system X=2e7 doesn't
> render.
AFAIK that's not because of precision, but because of an explicit limit
in the source code for such things.
--
- Warp
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Warp schrieb:
>> And increase X until the sphere disappears, on my system X=2e7 doesn't
>> render.
>
> AFAIK that's not because of precision, but because of an explicit limit
> in the source code for such things.
That is so indeed.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
>> And increase X until the sphere disappears, on my system X=2e7 doesn't
>> render.
>
> AFAIK that's not because of precision, but because of an explicit limit
> in the source code for such things.
Is the purpose of the explicit limit to hide precision errors becoming
visible?
Why is the limit so low, 2e7 is absolutely tiny compared to the 64-bit
floating point range of 1e300 or whatever it is (which presumably POV uses).
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
scott schrieb:
> Why is the limit so low, 2e7 is absolutely tiny compared to the 64-bit
> floating point range of 1e300 or whatever it is (which presumably POV
> uses).
Personally, I have the impression that the rationale behind most of
these limits has been lost in obscurity by now.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
>>> And increase X until the sphere disappears, on my system X=2e7 doesn't
>>> render.
>>
>> AFAIK that's not because of precision, but because of an explicit limit
>> in the source code for such things.
>
> Is the purpose of the explicit limit to hide precision errors becoming
> visible?
>
> Why is the limit so low, 2e7 is absolutely tiny compared to the 64-bit
> floating point range of 1e300 or whatever it is (which presumably POV
> uses).
>
>
If you have a value of about 1e100, then, the last digit presision would
be about 1e90 to 1e93. This is a serious loss of precision.
Alain
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Alain <aze### [at] qwertyorg> wrote:
> If you have a value of about 1e100, then, the last digit presision would
> be about 1e90 to 1e93. This is a serious loss of precision.
Note that a double-precision floating point number (which is 64 bits
in size) has only 53 bits of precision for the base. That's approximately
15 digits of precision in base 10. (In other words, if you try to store
a number with more significant decimal digits than 15 into such a floating
point value, the lower ones will just be lost.)
I assume 1e7 was chose as half of that.
--
- Warp
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |