![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Why does Povray use double precision? Why not single precision?
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Daniel Jungmann wrote:
>
> Why does Povray use double precision? Why not single precision?
Because it's more accurate. There are quite a lot of situations where
single precision would not suffice.
Christoph
--
Christoph Hormann <chr### [at] gmx de>
IsoWood include, radiosity tutorial, TransSkin and other
things on: http://www.schunter.etc.tu-bs.de/~chris/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Christoph Hormann <chr### [at] gmx de> wrote:
: Because it's more accurate. There are quite a lot of situations where
: single precision would not suffice.
Also, with current FPU's, using double precision numbers is as fast as
using single precision, so the extra accuracy is got for free.
--
char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););} /*- Warp -*/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Also, with current FPU's, using double precision numbers is as fast as
> using single precision, so the extra accuracy is got for free.
But single precision could be optimized. 3D!Now & SSE use single precision
and PovRay can't use this, because of double precision. I am optimizing
PovRay for SSE2 ( uses double precision ), but not everybody have a Pentium
4 but I am looking for the possibility to make PovRay faster and it would be
easier to use 3D!Now & SSE to do that.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <3a68805d$1@news.povray.org>, "Daniel Jungmann"
<DSJ### [at] gmx net> wrote:
> But single precision could be optimized. 3D!Now & SSE use single
> precision and PovRay can't use this, because of double precision. I
> am optimizing PovRay for SSE2 ( uses double precision ), but not
> everybody have a Pentium 4 but I am looking for the possibility to
> make PovRay faster and it would be easier to use 3D!Now & SSE to do
> that.
Well, you could change it to single and use the SIMD features...and just
get bad renders faster.
Raytracing *requires* double precision in a lot of areas, single
precision could lead to inaccurate surfaces or simply failing to find an
intersection at all...locating the areas where things could be done in
single precision would be a lot of work. The color calculations are done
in single-precision, but I don't know how much of an improvement you
would get by optimizing those...
--
Christopher James Huff
Personal: chr### [at] mac com, http://homepage.mac.com/chrishuff/
TAG: chr### [at] tag povray org, http://tag.povray.org/
<><
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
I had used single precision, but the problem was that PovRay don't work any
more.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Christoph Hormann wrote:
>
> Daniel Jungmann wrote:
> >
> > Why does Povray use double precision? Why not single precision?
>
> Because it's more accurate. There are quite a lot of situations where
> single precision would not suffice.
It is a part of what was done with "povpro". The result was that, while
"plain" renders were somewhat faster in some cases (but not because of
single precision), the stronger the AA settings were, the slower povpro
was compared with raw povray. In many cases I had longer times because
the poor precision added noise the AA algorithm had to correct.
Moreover, using single precision needs many implicit casts to be
performed.
The only advantage would be memory consumption.
--
__ __ __ __ _
| | / \ / / |_ / |/
\/\/ \__/ /_ /_ |__ \_ |\
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Daniel Jungmann wrote:
> Why does Povray use double precision? Why not single precision?
Because they ain't good enough.
--
David Fontaine <dav### [at] faricy net> ICQ 55354965
My raytracing gallery: http://davidf.faricy.net/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Do it anyway! :)
Pentium 4's will be prevalent someday won't they?
Grim
"Daniel Jungmann" <DSJ### [at] gmx net> wrote in message
news:3a68805d$1@news.povray.org...
> > Also, with current FPU's, using double precision numbers is as fast as
> > using single precision, so the extra accuracy is got for free.
>
> But single precision could be optimized. 3D!Now & SSE use single precision
> and PovRay can't use this, because of double precision. I am optimizing
> PovRay for SSE2 ( uses double precision ), but not everybody have a
Pentium
> 4 but I am looking for the possibility to make PovRay faster and it would
be
> easier to use 3D!Now & SSE to do that.
>
>
>
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |