Rendering dynamic 3D scenes


#1

Dear all,
I have a 3D model which changes over time, and I want to render the model to a different view point based on my input (mouse, keyboard ,…). I am not sure how to program the render so that the I can still move freely in the 3D space while the 3D model is changing(updating) at the same time, using openGL?

I am pretty new to openGL. I apologize if I didn’t describe the problem clearly.

Thanks.
Jianwei


#2

Your question is pretty general.

What you want to do is definitely possible with OpenGL. However, you’re going to need to spend some quality time reading The OpenGL Programming Guide and various OpenGL Tutorials to get yourself up-to-speed so that you can implement this yourself.

That said, you should first consider whether there is an existing application that might fulfill your needs. Given what you’ve provided so far, I could easily see this being the case. If so, there’s no point in re-inventing the wheel except as a fun learning exercise.


#3

Thanks for your advice. I am currently using the Viz 3D viewer in OpenCV, but it does not seem to be obvious to accomplish the task. One reason is that there aren’t many documentations about Viz online. I will certainly keep up with openGL and search for the existing applications. If possible, would you mind pointing out some existing open source applications that might get the job done and what part of the OpenGL is related to “dynamic scene rendering”?

Thank you so much.
Jianwei


#4

As Dark_Photon already mentioned, your questions are a little bit too general. I can’t give you any advice which application might suit your needs because to me it is still not clear what exactly your goals are.

…what part of the OpenGL is related to “dynamic scene rendering”

The process of generating the final picture out of a certain set of data.

First thing you need to know about OpenGL is that is no graphics engine or program. It is one possible toolset graphic engines are made of. If you want to render a dynamic scene, all OpenGL does for you is giving you control over the GPU that is supposed to spit out the final image. OpenGL does not know anything about meshes or scenes. You have to program the data processing all by yourself. You have to specify how the triangles of your mesh are transformed to generate a correct looking 3d-scene depending on the camera position and how each pixel color needs to be adjusted due to nearby light sources.

To make it short, OpenGL is a low-level API. If you just want to render stuff, you should probably look for an existing engine like Ogre: https://www.ogre3d.org/about/features
Never tried it, but it is quite popular and it should have a lot of tutorials and an active community. If you’re really interested in learning graphics programming or writing your own graphics engine from scratch, well then OpenGL s what you are looking for. Start with one of the tutorials Dark_Photon posted.

Greetings