A Mini Glossary of 3D Terms
I have a number of different articles, posts and code in preparation and I keep writing small glossaries for each. It’s useful to define or expand on terms we’ll be using and that you will see frequently. Many of these terms are widely used and known, but it never hurts to remove ambiguity.
I expect that as I publish other articles or code I’ll be referencing this list and expanding it as necessary. Contributions are welcome!
Basic 3D Terminology
First, a screenshot:
Figure 1 shows Xcode’s Scene Editor. Other tools and software will naturally have different interfaces and arrangements, as well as many more features, but Xcode’s is a good example to give a tour of the basics.
- Scene. Most 3D software uses a scene as the primary element to contain objects. Scenes may include environment settings like ambient light and fog. Scenes include an object graph with all the data in the scene. In Figure 1, the scene information is on the left pane.
- Node. A node is a container within a scene. Nodes have position, angle, and a few other properties.
- Geometry (aka Mesh). The actual vertex data that results in a visible 3D object. These two terms are a bit tricky. Mesh in particular has been known to be bandied about recklessly. In general, though, they are interchangeable. I will use the term geometry to avoid confusion. In Figure 1, geometry properties appear in the pane on the right. Typically other geometry-related elements are close together, including materials and textures. In the screenshot we can see the materials tab for the selected geometry.
- Material. 3D models include the ability to assign materials to geometries. Materials have a varying number of properties depending on the rendering mode they support and other parameters. Depending on the platform and libraries at your disposal Materials may be limited to just colors or allow the inclusion textures and even live views.
- Texture. Typically a texture is just that: an image that will be applied as part of a material. In 3D land though, the use of a texture involves a bit more than in 2D. For example, there’s a technique called mipmapping that affects both rendering speed and expected visual results of mapping. As you can see in figure 2, the differences can be significant.
- Node Graph (aka Node Hierarchy). A scene references its objects using a directed graph, or hierarchy. Within that hierarchy some nodes are simply containers while others include geometries, lights, cameras, or other elements like particle generators.
- Model. a self-contained 3D representation of a scene, potentially including other assets, like textures, and scripts. Even when you’re importing or exporting single objects the formats dictate that a scene exist at the “root” of the node hierarchy. The entire model is visible in the middle pane in Figure 1.
VR, AR, MR
Given the hype, these terms deserve their own section!
VR: Virtual Reality. Most of what you see (and possibly hear) is computer generated. Facebook’s Oculus Rift was the first of this new generation of VR products. Others include HTC Vive and OSVR-Compatible products like the HDK2 from Razer.
AR: Augmented Reality. Most of what you see or hear is “real” with some virtual pieces. Microsoft HoloLens was the first consumer-level head mounted display to support AR.
MR: Mixed Reality. New-ish term that may take over both VR and AR.
In terms of rendering, VR and AR are conceptually very similar — the only difference is the percentage or “Virtual” or “Reality”. We could say as a rule of thumb that if what you experience is 66% or more Virtual it’s VR, 33% Virtual or less it’s AR, and everything in between is MR.
Or we could just simplify and call everything MR? Hard to say.
Hope this is useful! If you have terms you think should be added, or corrections, please don’t hesitate to leave a comment.