3
votes

This isn't a question but I was very confused about what 3D space corresponded to what. I was used to hearing Model, View, Projection space but at my job they use World, Eye, Projection. I didn't realize that World and Eye were synonyms for model and view so if anyone has any confusion on this i found the following clarification to help (hopefully it will help you).

Local Space: These are the coordinates that make up the 3D model in a rendering program like 3Ds Max or any other. It defines the space of the vertices for the 3D Model itself.

Model/World Space: Multiplying local space coordinates by the Model/World matrix will bring them into Model/World Space. Model/World Space is the 3D world as we imagine it without any perspective taken into account.

View/Eye Space: Multiplying Model/World space coordinates by the View/Eye matrix will bring them into View/Eye Space. This is where the coordinates are placed on the screen biased off of the perspective that's being used. So if your using perspective projection this will position all the coordinates to look like they have depth.

Projection Matrix: Multiplying the View/Eye space coordinates by the Projection matrix will take the 3D perspective points and map them properly to the 2D Viewport (aka the screen).

Viewport/Homogeneous Space: After multiplying by the Projection matrix, your points need to be mapped to the "real plane". This is essentially a normalization; we take each x,y,z coordinate and divide it by its w component. The coordinates are also adjusted to move the origin from the center of the screen to the top left.

Please feel free to provide constructive criticism, I'm open to any suggestions. Here is some additional information I used http://antongerdelan.net/opengl/raycasting.html

1
Besides the fact that this isn't even a question, there is so much wrong with the claims this makes. "Model" space is used synonymous to object space or "local" space, never to world space. View space does not apply any perspective, a typical projection matrix does not do 3d->2d projection, "homogeneous space" is not a stage in the transformation pipeline, but an underlying mathematical concept to all those space, and even the end of the transformation pipeline, window space, is still 3D - that's what the z buffer works on.derhass
The word Model can be confusing and depending on who you are talking to because of "3D Model". This is based on what I found and what multiple people in the field have told me, what I learned in school, and what I found in books/internet research. Homogeneous space is a stage in the pipeline according to multiple sources including the source I provided. You are the first person to disagree with this after 4 years of it being on here.Katianie
Your reference says "homogeneous clip space", where "homogeneous" is just an adjective to describe a property of the clip space (which is the actual name of that space). But the usual formulation of affine transformations used for model and view transforms relies on using a homogenous space in the first place (that's why we use 4x4 matrices for 3D transformations), albeit that is not strictly necessary.derhass
Correct, but what exactly "is so much wrong with the claims this makes"?Katianie
Well, I did explain this in the very same comment.derhass

1 Answers

1
votes

Just as an idea, but you could add a final stage "Viewport Space" (or something along those lines).

You hinted at it in the Projection Matrix stage, but it is a separate transformation applied to the vertices after the projection matrix in which the x, y and z coordinates are divided by their w component to map them to the "real plane", from homogeneous coordinates, and the coordinates are adjusted to move (0,0), the origin, from the center of the screen to the top left.