The Basics
Learn 3D Graphics fundamentals then progress to more complex studies. The idea of 3D graphics has been around since 1961 and has significantly evolved over the years. I’ll walk you through the basics of 3D graphics development.
Primary Use Cases
- Video games and movies
- Planning real-world architecture
- Interactive software experiences
- Modeling reality
- Learning
My primary use case is building interactive software experiences. The following content is tailored with that in mind, but will stay abstract enough to help you learn fundamental concepts.
Modeling
3D graphic development starts with modeling your 3D objects. We must define the constraints. We must define the purpose of our 3D model.
Geometry
Geometry is the components of a 3D object.
Vertex
A Vertex is a single point in space typically represented by x,y, and z coordinates.
Vertices
The Vertices are a collection of vertex values that define a 3D object’s points.
Edge
The Edge is a line between two vertices.
Faces
The Faces are a closed set of edges.
Surface Normal
UV Point & UV Space
UV Mapping is a process of of mapping a 2D image to a 3D model.
Unwrap
Meshes
Meshes are a common way of modeling 3D objects. Meshes are typically made up of triangles so the shapes can fit into a plane.
A mesh is a collection of vertices, edges, and faces that define the shape of a 3D object.
- A vertex is a single point
- An edge is a straight line segment that connects two vertices
- A face is a flat surface enclosed by edges
Geometric Modeling
We should input little data to render a large amount of data.
Rendering
When moving to the rendering process, you’ll want to define constraints and requirements. Do you need an extremely detailed scene? Is a lower resolution required for quick rendering?
Lighting in your renders add depth to your objects. Without illumination, your objects will look flat and lifeless, and with illumination, your objects will look realistic.
Graphic Pipelines
Graphic pipelines start with vertices and end with pixels. It is a conceptual model that defines how to render a 3D scene to a 2D screen.
Learn 3D Graphics - Beyond the Basics
Videos
- CG101: General 3D Terminology - Pluralsight
- Blender Fundamentals - Pluralsight
- Your First Day in Blender - Pluralsight
- Introduction to Materials in Blender - Pluralsight
- Introduction to Modeling in Blender - Pluralsight
- Introduction to Animation in Blender - Pluralsight
Books
Articles
- The Whirlwind Introduction to Computer Graphics Page - Mike Bailey, OSU Computer Science Teacher
- Pixar in a Box - Khan Academy
Related Tools
- Blender - An open-source 3D creation suite
- Babylon.js - A nodejs module meant to simplify 3D graphics development
- Babylon.js Playground - Experiment rendering 3D scenes with the Babylon.js library
- Khronos WebGL Rendering - Debug WebGL problems
- WebGLDeveloperTools - Scripts you can use to debug in JavaScript