|
![](/i/fill.gif) |
Hi there,
I made some tweakings to my point to plane projection algorithm, now
the normal can move and this way I had been able to clearly understand
that a projection of any point on a given plane, is, an orthogonal
projection - like what the ortho camera does in povray. Sorry if you
had got it before me, i'm still learning all this geometry stuff...
So you may ask "Well, it's nice, how can it be useful inside my
scene?" and I should say it really depends on your scene, but for
anybody that would like to stamp the vertexes of his 3D construction
onto a plane and make it part of his 3D scene, then this is for you.
Examples of what you could do: Make a 3D drawing with blobs, and stamp
it on a wall, etc...
This algorythm is very simple and can be simplified a little more, I
do not know how the trace() function of povray performs, but it should
be as efficient or better I think. The computation of the destination
vertex uses only 9 multiplications and 7 additions per vertex, making
calculations simple.
For anybody that is interested in this, I may release the C++ code
(very easy to read) that calculates the destination point from a source
point with a normal (the plane is always on the origin in my algo). Or
I may translate it into a povray macro where it should work like this:
dstPoint = ortho_projection(srcPoint, NormalVector)
If you're interested, let me know, if now, let me go on to my next
project, which is to create a super efficient algorythm for displaying
height fields in opengl (can effectively be used in povray to reduce
triangle count in mesh), using various algorythm such as dynamic LOD
(Level of Detail), etc...
Hope you like it!
Simon
Post a reply to this message
Attachments:
Download 'ortho_projection.jpg' (61 KB)
Preview of image 'ortho_projection.jpg'
![ortho_projection.jpg](/povray.binaries.images/attachment/%3C428b59e6%40news.povray.org%3E/ortho_projection.jpg?ttop=441697&toff=5250&preview=1)
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
> If you're interested, let me know, if now, let me go on to my next
> project, which is to create a super efficient algorythm for displaying
> height fields in opengl (can effectively be used in povray to reduce
> triangle count in mesh), using various algorythm such as dynamic LOD
> (Level of Detail), etc...
Google for "ROAM". Note that because 3D cards a so fast now, in some
instances it's actually faster to just give the 3D card all the triangles
rather than trying to use some clever adaptive method.
Post a reply to this message
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
I already have lots of documentation on the subject and I don't quite
agree with you. It is true that hardware is better (and getting even
better) today, but optimisation will always be necessary.
The other reason this algorythm will be necessary is that by reducing
the number of triangles used to display the same scene, i can actually
increase the quality of the scene, thus increasing the number of
triangles up to what my hardware (new or old) can support.
Simon
scott wrote:
>> If you're interested, let me know, if now, let me go on to my next
>>project, which is to create a super efficient algorythm for displaying
>>height fields in opengl (can effectively be used in povray to reduce
>>triangle count in mesh), using various algorythm such as dynamic LOD
>>(Level of Detail), etc...
>>
>>
>
>Google for "ROAM". Note that because 3D cards a so fast now, in some
>instances it's actually faster to just give the 3D card all the triangles
>rather than trying to use some clever adaptive method.
>
>
>
>
>
Post a reply to this message
|
![](/i/fill.gif) |