![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Janne
Subject: How to place objects randomly in the visible area of image?
Date: 22 Jul 2003 07:26:19
Message: <3f1d1f5b$1@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Hi,
How can I test if a randomly selected point is visible to my camera? I need
to place a lot of objects in my scene, but I run out of memory if I place
objects over the whole scene.
Janne
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Warp
Subject: Re: How to place objects randomly in the visible area of image?
Date: 22 Jul 2003 07:33:30
Message: <3f1d210a@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Janne <kos### [at] kolumbus fi> wrote:
> How can I test if a randomly selected point is visible to my camera? I need
> to place a lot of objects in my scene, but I run out of memory if I place
> objects over the whole scene.
This depends on whether you have reflections/refractions or not. If you
have them, then forget it.
However, if you don't have them, then you only need to test whether the
object is directly visible on camera.
Someone posted some time ago a tip for this: Using screen.inc, create
a box which completely and exactly covers the image area. For testing
whether an object is visible, you only need to call trace() from the
object location to the camera location and see if it hits the box.
There is also a mathematical way of doing it, but the tip above might
be the easiest way.
--
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - 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 Fri, 18 Jul 2003 15:32:24 +0300, "Janne" <kos### [at] kolumbus fi> wrote:
> Hi,
> How can I test if a randomly selected point is visible to my camera? I need
> to place a lot of objects in my scene, but I run out of memory if I place
> objects over the whole scene.
Here is simple method:
1. Get camera location in point L
2. Get rectangle of screen in scene coordinates - vertices at P1,P2,P3,P4
3. Declare mesh M with triangle T1=P1-P2-P3 and T2=P1-P3-P4 to mimic screen
loop:
4. Get random location in point A
5. Use trace function with ray from L to A.
6. Check if sended ray intersected mesh M.
7. If intersected then use point A to locate object.
8. If not enough founded locations then repeat loop.
9. Render
10. Show result in povray.binaries.images
ABX
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Gilles Tran
Subject: Re: How to place objects randomly in the visible area of image?
Date: 22 Jul 2003 09:51:05
Message: <3f1d4149$1@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
3f1d1f5b$1@news.povray.org...
> Hi,
> How can I test if a randomly selected point is visible to my camera? I
need
> to place a lot of objects in my scene, but I run out of memory if I place
> objects over the whole scene.
Look for the makestacks.inc file in the advanced/blocks demo scene
directory. There's a routine at the beginning that does exactly that.
G.
--
**********************
http://www.oyonale.com
**********************
- Graphic experiments
- POV-Ray and Poser computer images
- Posters
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 <3f1d210a@news.povray.org>, Warp <war### [at] tag povray org>
wrote:
> Janne <kos### [at] kolumbus fi> wrote:
> > How can I test if a randomly selected point is visible to my camera? I need
> > to place a lot of objects in my scene, but I run out of memory if I place
> > objects over the whole scene.
>
> This depends on whether you have reflections/refractions or not. If you
> have them, then forget it.
Radiosity can also make a difference. Even shadows can make an object
out of the field of view have a significant effect. And you would have
to test the corners of the bounding box for each object, not just one
point...it may be visible even if that one point is out of the field of
view.
> There is also a mathematical way of doing it, but the tip above might
> be the easiest way.
Also note that you would have to use a different method for different
camera types.
It might be possible to reduce the memory consumption of the scene some
other way...using copies of meshes, for example. This might be a better
solution than placing objects only where they are directly visible.
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray 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) |