Hi, everybody !
I’m beginner in OpenGl, so I’m sorry for
…I have 3D (~700x500x500) array of points (RGB, for example, 3D simulation of fire) and I need to calculate projection of
it onto the screen (better in realtime).
Is it possible and how (in principle) to make it with OpenGL ?
Hi, everybody !
What do you mean: project buffer?
You can project points. But buffers?
Try to tell it with other words.
The question is perfectly clear. This is exactly the kind of thing OpenGL does.
You can use glFrustum on the projection matrix to allow you to look at the fire, you can then use modelview manipulations to look at it and move around. The rest is just drawing the fire as some kind of point based ‘splat’.
This can be done easily and there is source code online which does ALL of this for you, all you need to do is plug in the numbers and you’d have a simple of ‘splat’ volume renderer, you may have to do your own sorting though depending on how you blend, leave that for phase II.
Anyway, you need a particle system demo. Here’s a simple example you could adapt which uses points:
YOu can easily figure out how to get it to draw your data instead of the particle simulation.
You may want to dosomething like volume rendering using texture, this is trickier but faster with the right hardware to support 3D texture.
for an outline of how this works. It’s not pure OpenGL but it’ll give you an idea. I suggest you use the splat approach first. As a beginner you’ll find the alternatives very difficult.
There is off the shelf software which already does what you need, some of it is free, some with source code. I suggest you do a web search for volume rendering, real-time or interractive volume rendering, and hardware accelerated volume rendering.
All will produce results of interest to you.