• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Deep C++ question

plastick

Golden Member
How would one go about creating a program that sets up a vitural 3 dimensional environment in which it would be possible for 3d objects to be manipulated? I'm talking about environments such as Coral Byrce or 3D Studio Max, only relatively simpler.

I am just now learning the basics of C++, so I can not begin to fathom all of the programming that would have to go into such a program. But what I would like someone to do is explain to me the concepts and method behind creating such a program. That, I think I could possibly understand.

I ask this because I am trying to explore realistic possibilities for personal pc skill goals.
 
That has nothing to do with C++ or any other language, and everything to do with Physics. As far as tools go, use open GL or something, but if you want to simulate the real world, take some physics classes.
 
Do you know how to manipulate 3d objects and render them in pseudocode (or ANY programming language)? If not, it's not about C++. If so, you could probably ask a more specific question...

Anyway, Nehe has some excellent OpenGL tutorials (google nehe) you could look at.
 
I agree with notfred. The concepts involved would mostly deal with physics and math, as manipulating 3d graphics is all about math.

There is an endless amount of really fat books devoted to the subject of 3d graphics.

I would say in order of importance for what you are talking about creating.

1) math and physics
2) object oriented design and analysis
3) expertise in a high level language
 
Well then..Thanks for clearing that up some for me. Its slightly clearer.

What exactly does Open GL deal with?
 
This is exactly what I had to do in my graphics course in University. We designed a pseudo CAD like program.

Here are some screenshots:

Text
Text

Trust me... it wasn't easy. Those were all done with OpenGL (GLUT and GLUI)
 
Originally posted by: plastick
Hmm. That scared me. Maybe I will choose not to learn programming.

No offense plastick, but if that scares you (instead of excites you), then you probably won't enjoy programming.

 
Originally posted in some other forum

Heh, so "someone please sum up an entire computer graphics course in 2 paragraphs"...

On the high-level programming, you can use OpenGL or Direct3D (which is in DirectX) to design a 3d environment and use C++ to define how changes occur. If you want even higher levels of abstraction, look at free (especially opensource) graphics engines available, like OGRE.

If you want to know how it is done from scratch...matrices (homogenous, but you don't need to know that ) are used to translate a point in 3d space (i.e. representing your world) onto a 2d surface (i.e. your monitor) this is known as projecting. Other operations that can be performed, all in a single matrix, are positiong changes, size changes (scaling), and angle changes (rotation). The math behind it all isn't horrible but it isnt *easy* either, all depends on your background. Pick up a book on computer graphics if you want, and another very good resource is to look up class notes for existing computer graphics courses. These notes can often be very simple to go through and informative for someone at a student level.

As far as 3DStudio, I would guess that they basically take advantage of one of the 2 libraries mentioned above (opengl or dx) and just create a big interface allowing you to dynamically alter the 3d scene you are looking at. If you want to learn, just try making a scene where you can click on objects and have the objects name pop up in a dialog window...gotta walk before you can run


Now thats what I was looking for!
 
Back
Top