

Did you notice the details on objects and various surfaces? Some may be shiny, some may be corse, some might look dull or fuzzy and others may have been transparent. In just a moment, stop reading this and take a look around your environment quickly by panning your eyes around the room. In 3D modeling today there are many methods to making a believable (realistic) render. Relatively speaking, I am a complete newbie to this form of art and the technical aspects associated with it. (3D modeling) Much of this content is simply my opinion. The topic I picked was related to one of my favorite hobbies to date. ( Aside: the global position is then multiplied by the camera's transformation matrix and the camera's perspective transform to get screen position.I recently delivered a 3 minute presentation for a group of colleagues and the purpose was to learn to present some technical information effectively while using some kind of analogy. offset, scale, and shear) in one convenient matrix. This formula is applied recursively until you get to the global coordinate system.įor 3D graphics the most convenient option is to use a 4x4 transformation matrix, and extend the vector to (x,y,z,1) - 4x4 transformation matrices allow you to represent the entire coordinate system (i.e. The position of the of the object in the parent's space is Tp (using matrix multiplication).

its parent's) space is a vector p = (x,y,z), and its coordinate system is represented by a transformation matrix T. Objects with no parent reside in the global coordinate system.Īll of this can be precisely expressed as a mathematical formula.Ī object's position in local (i.e.An object's children are positioned in its local coordinate system.(Edges and faces are defined entirely in terms of vertices.) An object's mesh vertices are positioned in the object's local coordinate system.(It's local position is always 0,0,0 - its local origin its global position is based on where it is in its parent's coordinate system and so on.) An object's coordinate system includes its scale and rotation.Usually referred to as its "local" coordinate system. Every object has its own coordinate system and is positioned in its parent's coordinate system.Rotation likewise.ģ) Two objects can have the same locations (relative to their parents) but their parents may be in different places, so again they'll end up being in different spots. Likewise the x position of an object's components. So if the parent is scaled by 2.0, 1.0, 1.0 then the object's x-position will be doubled. And, if it's not in the global coordinate system, so can its parent. coincident pivot locations) and appear in different places because their pieces are in different places).Ģ) An object's coordinate system can be scaled and rotated. So an two objects can have the same "location" (i.e. It's actual parts (vertices, edges, and faces) are positioned inside that coordinate system and can be anywhere. This is all pretty simple, but there are complicating factors:ġ) An object's origin only shows where its "origin" is. So if an object is at (0,0,0) its at parent's origin.

Entering coordinates is useless when they don't relate to anything else.Īn object's position is the offset of its "pivot" (it's own origin) from the origin of its parent (if it has no parent, that means the global origin). With every object using its own coordinate system that I don't understand, it is virtually impossible for me to scale or position objects in a predictable way. There must be a way to use the same coordinate system for all objects.

Other times, I have to set its scale to some other value, like 30 or 50. Sometimes if I want an object to cover a distance of 3 units, I set its scale to 3. Each object seems to be using its own coordinate system for scale. That's going to take some getting used to. Which means I have to re-position each child so it's relative to the parent rather than the world every time I create a group. So if I group objects that are not at the origin, then set the group's coordinates to the origin, the children remain where they were when they were grouped. I also noticed that when a group is created, it maintains the relative position offsets of its children. How do I get all objects to use the same coordinate system? And it's not a matter of global versus local coordinates, as the non-group, single object should always be using global coordinates. I've re-centered the origin on all parent and child objects. The third object with the same coordinates showing, not a group, appears to be at 0.75, 0, 0. Two objects are groups with three children each and appear where they should based on the coordinates of their parents, 0, 0, 0. I have three objects, all at the same coordinates (0, 0, 0), but one is at a completely different location. I don't understand the coordinate system.
