![](/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) |
Ron Parker <par### [at] fwi com> wrote:
: You forget that if it's not around the object, it shouldn't matter to the
: ray-intersection routine (obviously in practice it works in such a way that
: vampire objects are possible, but that's a side-effect that could easily
: disappear with better optimization.) And rest assured that finite objects
: have bounding boxes whether or not such boxes are specified in the script;
: that's how the min_extent and max_extent keywords in the superpatch work.
How does it calculate the bounding box of an object like this?
intersection
{ sphere { x*1000, 1001 }
sphere { -x*1000, 1001 }
}
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- 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) |
On 21 Sep 1999 09:22:29 -0400, Nieminen Juha wrote:
>Ron Parker <par### [at] fwi com> wrote:
>: You forget that if it's not around the object, it shouldn't matter to the
>: ray-intersection routine (obviously in practice it works in such a way that
>: vampire objects are possible, but that's a side-effect that could easily
>: disappear with better optimization.) And rest assured that finite objects
>: have bounding boxes whether or not such boxes are specified in the script;
>: that's how the min_extent and max_extent keywords in the superpatch work.
>
> How does it calculate the bounding box of an object like this?
>
>intersection
>{ sphere { x*1000, 1001 }
> sphere { -x*1000, 1001 }
>}
It calculates the intersection of the bounding boxes of the individual
spheres, so it would bound by box{<-1,-1001,-1001>,<1,1001,1001>}. I
didn't say it was always correct; in fact, I've mentioned before that
min_extent and max_extent aren't always entirely accurate for every
object. If you specify your own bounding volume, of course, it uses
that one if it's smaller than the computed one.
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) |
Ron Parker <par### [at] fwi com> wrote:
: It calculates the intersection of the bounding boxes of the individual
: spheres, so it would bound by box{<-1,-1001,-1001>,<1,1001,1001>}. I
: didn't say it was always correct; in fact, I've mentioned before that
: min_extent and max_extent aren't always entirely accurate for every
: object. If you specify your own bounding volume, of course, it uses
: that one if it's smaller than the computed one.
Thanks for the information. Every day I learn something new about povray :)
Another question:
What does "smaller" mean? I mean that how does it define "this box is
smaller than that one"?
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- 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) |
On 22 Sep 1999 06:19:40 -0400, Nieminen Juha wrote:
> What does "smaller" mean? I mean that how does it define "this box is
>smaller than that one"?
It bases it on volume. The box with the smaller volume is smaller,
regardless of its actual dimensions.
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) |
Ron Parker <par### [at] fwi com> wrote:
:> What does "smaller" mean? I mean that how does it define "this box is
:>smaller than that one"?
: It bases it on volume. The box with the smaller volume is smaller,
: regardless of its actual dimensions.
What happens when the user-defined bounding object is not a box?
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- 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) |
On 23 Sep 1999 06:30:16 -0400, Nieminen Juha wrote:
>Ron Parker <par### [at] fwi com> wrote:
>:> What does "smaller" mean? I mean that how does it define "this box is
>:>smaller than that one"?
>
>: It bases it on volume. The box with the smaller volume is smaller,
>: regardless of its actual dimensions.
>
> What happens when the user-defined bounding object is not a box?
Presumably the bounding box of the bounding object is used.
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) |
On 23 Sep 1999 06:30:16 -0400, Nieminen Juha <war### [at] cc tut fi> wrote:
> What happens when the user-defined bounding object is not a box?
If it is an infinite object, it is ignored and the default bounding
box is used instead. If it is finite, its bounding box is used for
vista and light buffer calculations (and the max() and min() in the
SUperPatch) and forray-shape intersection test the nested bounding
objects hierarchy is used (i.e. bounding box of bounding object is
checked first, then the bounding object and lastly the bounded object
itself)
Peter Popov
ICQ: 15002700
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) |