What is the best method for projecting 3D graphics?

Click For Summary
SUMMARY

The discussion centers on the best methods for projecting 3D graphics, specifically comparing two approaches: rotating the surface (video buffer) while keeping the 3D object fixed, versus rotating the object while keeping the surface fixed. It is established that both methods require transforming vectors, but the first method simplifies the process by reducing the number of transformations needed. The conversation also highlights the importance of understanding the coordinate systems involved, including Model Space, World Space, View (Camera) Space, Projection Space, and Screen Space, with World Space serving as the global coordinate system for all objects.

PREREQUISITES
  • Understanding of 3D graphics concepts
  • Familiarity with OpenGL for rendering
  • Knowledge of matrix transformations in graphics programming
  • Basic principles of camera manipulation in 3D environments
NEXT STEPS
  • Research matrix composition techniques in 3D graphics
  • Learn about OpenGL transformations and camera controls
  • Explore the differences between Model Space and World Space
  • Study the implementation of 3D object rotation versus camera rotation
USEFUL FOR

3D graphics developers, game developers, and anyone interested in understanding the mechanics of 3D rendering and object manipulation in graphics programming.

Jaynte
Messages
79
Reaction score
0
When it comes to graphics (what I have learned) is that what you see on the screen is data placed in a memory (video buffer) and then the data or pixel is then plotted onto the screen. So when you manipulate the data in the video buffer you will also manipulate the pixels on the screen.

Then it crosses my mind that when you want to plot 3D images on the screen, you can see the video buffer as a 2D plane which you can project 3D object onto.

I guess this is how it's done, but I wonder which of these two is the most common or the best way to implement this method when you want to turn and rotate an object in space?

1)
Having the 3D object fixed in space and rotate the surface which will become the video buffer.

2)
Having the surface (video buffer) fixed and rotate the object.


What I am guessing is if you use method 1) you don't need to transform as many vectors but then you cannot use more than one object which you can in method 2).
 
Technology news on Phys.org
I did an OpenGL course last semester, but I'm no pro.

When you require a rotation, you can either rotate the object OR rotate the "camera" around the object. Both methods only require you to transform the vectors for the "thing" you are rotating (be it a modeled sphere, or the "camera"). When I say camera, I mean the viewpoint of the user, but I think the analogy is natural.

The video buffer does indeed contain a 2d projection of the 3d scene, but you don't rotate it per se, it just contains the flattened 2d image of all of your rotations and transforms, lighting, etc as seen via the "camera".

Personally, I found it easier (conceptually) to rotate things in my scene, controlling the camera was quite a bit harder, although sometimes you need to do both.
 
Last edited:
Ok thanx. Yes that sounds reasoneble. If you want to move the whole sceene you should move the camera.
 
It's usually broken up like this:
Model Space -> World Space -> View (Camera) Space -> Projection Space -> Screen Space
 
What does world space means? Is it just an empy space or could is also contain fixed stuff such as llandscape etc? And why does the camera need its own space? Couldnt it be chared with world space?
 
Jaynte said:
What does world space means? Is it just an empy space or could is also contain fixed stuff such as llandscape etc? And why does the camera need its own space? Couldnt it be chared with world space?

World space is when all the objects go from their own local space to the global coordinate system.

Say if you were doing a model of the solar system. The world space is a coordinate system with the sun at the origin. Each planet is centered at some point and has its own rotation properties.

Let's assume that the orbits around the sun are circular (and not elliptic like they really are). You combine translation and rotation matrices in a composition with the world matrix to get all of the coordinates in terms of the world matrix.

Basically the whole process is just a composition of matrices. The order depends on what you are trying to calculate, but like the above poster said you start by calculating local transformations and then compose these results with higher level transformations (world, camera, and so on).
 
Thanx, now i get it.
 

Similar threads

  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 5 ·
Replies
5
Views
6K
  • · Replies 19 ·
Replies
19
Views
990
Replies
48
Views
5K
  • · Replies 4 ·
Replies
4
Views
2K
Replies
3
Views
2K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 4 ·
Replies
4
Views
2K