3D Graphics with Metal
In this course you'll get an introduction to computer graphics using Metal on the GPU. You'll render 3D models and even write a simple game using your very own game engine. By Caroline Begbie.
Who is this for?
This course is for developers interested in understanding low-level computer graphics while achieving high performance in rendering 3D scenes. You’ll need to be comfortable with Xcode and Swift and be prepared to understand some math at a conceptual level.
Covered concepts
- The Metal Pipeline
- 3D Models
- Coordinate Spaces
- Lighting
- Materials and Textures
- Making a game
Part 1: Introduction to Metal Rendering
Let's review what you'll be learning in this part of the course, and why it's important.
Learn how to initialize Metal in Swift.
Practice setting up the Metal code to initialize your app.
Learn about the graphics pipeline
Write shaders to position a triangle
Perform a challenge to render a quad using the GPU.
Set up Metal buffers to hold your data in a format the GPU can read.
Get better performance with indexed drawing.
Vertex descriptors give your data formats flexibility. Learn how to use them in this video.
Examine a 3D model train in Blender.
Import and render a 3D model train.
Add color to your 3D renders.
Let's review where you are with your Metal skills and see what's next.
Part 2: Rendering in 3D
Let's review what you'll be learning in this part of the course, and why it's important.
Learn how to use matrices to position your 3D model.
Find out what coordinate are and how you use them.
Render with perspective using a projection matrix.
Write a camera class to control viewing of your scene.
Discover what surface normals are, and why they are useful.
Light your model with diffuse lighting and global ambience.
Learn how to make your models shiny.
Learn about transform hierarchies and what a scene graph is.
Abstract your game code away from Metal code and create a game scene.
Let's review where you are with your Metal skills and see what's next.
Part 3: Materials and Textures
Let's review what you'll be learning in this part of the course, and why it's important.
Find out what materials are and how you can render your model as the artist intended.
Learn about what UV maps are and examine them in Blender.
Learn how to load texture coordinates into your vertex descriptors.
Learn about Metal textures and how to render 3D models with an image texture.
Discover how to render models that may or may not have textures.
Find out how to re-use geometry for duplicate model rendering.
Render one hundred trees with buttery smoothness.
Render one hundred trains complete with textures.
Let's review where you are with your Metal skills and see what's next.
Part 4: Make a Game
Let's review what you'll be learning in this part of the course, and why it's important.
Find out what game you'll make, and also discover model bounding boxes.
Add all your models to the game scene ready to play.
Learn how to bounce a ball with collisions.
Make your game playable with keyboard interaction.
Learn how to add sound effects and background music to your game.
Transition between game scenes when you win or lose the game.
Add a 3D model to the game over scene.
Let's review what we learned throughout the course.