Virtual reality with OpenGL and Visual C++

Hi

I would like to create a virtual environment using visual C++. I am looking for a suitable library, applied for drawing 3d objects. I would like to draw complex 3D objects. I would like to move them using the keyboard and the mouse of the computer or using any joystick input device. I would like to rotate the 3d objects too.

Therefore I would like to simulate the work of a digital camera. I would like to focus or defocus the objects placed in the working area.

The final task is to create a virtual training simulation software application.

I tried using the library direct3d but it is very difficult to draw and orient 3d objects. I understood that OpenCV is not suitable too.

Could you please suggest OpenGL or another library in combination with visual C++, suitable for my tasks? Could you send me links with similar tutorials using OpenGL?

Regards

[QUOTE=tiho_bg;1282186]I would like to create a virtual environment using visual C++. I am looking for a suitable library, applied for drawing 3d objects. I would like to draw complex 3D objects. I would like to move them using the keyboard and the mouse of the computer or using any joystick input device. I would like to rotate the 3d objects too.

Therefore I would like to simulate the work of a digital camera. I would like to focus or defocus the objects placed in the working area.

The final task is to create a virtual training simulation software application.
[/QUOTE]
Those are rather complex, high level tasks. Doing this with OpenGL(R) or Direct3D(R) is possible, but amounts to quite some work,
due to their lowlevel nature. Among other things, you would have to implement the whole mesh and scene graph management yourself
before you can do any high level work.

OpenGL(R) is not that much different (except OpenGL(R) is a not a library, but an interface standard with various implementations). Both
OpenGL(R) and Direct3D(R) are low level interfaces for rendering 3D scenes composed of triangles, possibly using a hardware rasterizer.

OpenCV is a computer vision library and something completely different. The typicall goal in computer vision is to reconstruct a high level
scene description from an image (usually from a camera) which is pretty much the exact oposite of computer graphics.

You might be better off using an existing, high level scene graph/graphics rendering engine that builds on top of
OpenGL(R) or Direct3D(R), such as:

[ul]
[li]OpenSceneGraph [/li][li]Ogre3D [/li][li]Irrlicht [/li][/ul]