Metal by Tutorials: Beginning Game Engine Development with Metal
β Scribed by raywenderlich Tutorial Team, Caroline Begbie, Marius Horga
- Publisher
- Razeware LLC
- Year
- 2019
- Tongue
- English
- Leaves
- 722
- Edition
- 2
- Category
- Library
No coin nor oath required. For personal study only.
β¦ Synopsis
Build your own low-level game engine in Metal!
This book introduces you to graphics programming in Metal β Appleβs framework for programming on the GPU. Youβll build your own game engine in Metal where you can create 3D scenes and build your own 3D games.
Who This Book Is For
This book is for intermediate Swift developers interested in learning 3D graphics or gaining a deeper understanding of how game engines work.
Topics Covered in Metal by Tutorials
- The Rendering Pipeline: Take a deep dive through the graphics pipeline.
- 3D Models: Import 3D models with Model I/O and discover what makes up a 3D model.
- Coordinate Spaces: Learn the math behind 3D rendering.
- Lighting: Make your models look more realistic with simple lighting techniques.
- Textures & Materials: Design textures and surfaces for micro detail.
- Character Animation: Bring your 3D models to life with joints and animation.
- Tessellation: Discover how to use tessellation to add a greater level of detail using fewer resources.
- Environment: Add a sky to your scenes and use the sky image for lighting.
- Instancing & Procedural Generation: Save resources with instancing, and generate scenes algorithmically.
- Multipass & Deferred Rendering: Add shadows with advanced lighting effects.
- And more!
After reading this book, youβll be prepared to take full advantage of graphics rendering with the Metal framework.
β¦ Table of Contents
About the Cover
About the Authors
About the Editors
About the Artist
What You Need
Book License
Book Source Code & Forums
Book Updates
Introduction
About this book
How did Metal come to life?
Why would you use Metal?
When should you use Metal?
Who this book is for
How to read this book
Chapter 1: Hello, Metal!
What is rendering?
What is a frame?
Your first Metal app
The view
Rendering
Challenge
Chapter 2: 3D Models
What are 3D models?
Creating models with Blender
3D file formats
Exporting to Blender
The .obj file format
The .mtl file format
Material groups
Vertex descriptors
Metal coordinate system
Submeshes
Challenge
Chapter 3: The Rendering Pipeline
The GPU and the CPU
The Metal project
The rendering pipeline
Send data to the GPU
Challenge
Chapter 4: Coordinate Spaces
Transformations
Translation
Vectors and matrices
Matrices on the GPU
Scaling
Rotation
Coordinate spaces
Upgrade the engine
Uniforms
Projection
Where to go from here?
Chapter 5: Lighting Fundamentals
The starter project
Representing color
Normals
Depth
Hemispheric lighting
Light types
Directional light
The Phong reflection model
The dot product
Point lights
Spotlights
Challenge
Where to go from here?
Chapter 6: Textures
Textures and UV maps
Texture the model
sRGB color space
GPU frame capture
Samplers
Mipmaps
The asset catalog
Texture compression
Where to go from here?
Chapter 7: Maps & Materials
Normal maps
Materials
Function specialization
Physically based rendering
Channel packing
Challenge
Where to go from here?
Chapter 8: Character Animation
The starter project
Procedural animation
Animation using physics
Keyframes
Quaternions
USD and USDZ files
Animating meshes
Blender for animating
Skeletal Animation
Loading the animation
Joint matrix palette
The inverse bind matrix
Vertex function constants
Where to go from here?
Chapter 9: The Scene Graph
Scenes
The scene graph
Grouping nodes
First-person camera
Orthographic projection
Third-person camera
Animating the player
Simple collisions
Where to go from here?
Chapter 10: Fragment Post-Processing
Getting started
Alpha testing
Depth testing
Stencil testing
Scissor testing
Alpha blending
Antialiasing
Fog
Challenge
Where to go from here?
Chapter 11: Tessellation & Terrains
Tessellation
The starter project
Kernel (compute) functions
Multiple patches
Tessellation by distance
Displacement
Shading by slope
Challenge
Where to go from here?
Chapter 12: Environment
Getting started
The skybox
Procedural skies
Reflection
Image-based lighting
Challenge
Where to go from here?
Chapter 13: Instancing & Procedural Generation
The starter project
Instancing
Morphing
Texture arrays
Procedural systems
Challenge
Where to go from here?
Chapter 14: Multipass & Deferred Rendering
Shadow maps
Multipass rendering
Deferred rendering
Where to go from here?
Chapter 15: GPU-Driven Rendering
Argument buffers
Resource heaps
Indirect Command Buffers
GPU driven rendering
Where to go from here?
Chapter 16: Particle Systems
Particle
Emitter
Compute
Threads and threadgroups
Fireworks
Particle systems
Fire
Where to go from here?
Chapter 17: Particle Behavior
Behavioral animation
Swarming behavior
The project
Velocity
Behavioral rules
Where to go from here?
Chapter 18: Rendering with Rays
Getting started
Ray casting
Ray tracing
Path tracing
Raymarching
Signed distance functions
The raymarching algorithm
Creating random noise
Marching clouds
Where to go from here?
Chapter 19: Advanced Shadows
Hard shadows
Soft shadows
Ambient occlusion
Percentage closer filtering
Where to go from here?
Chapter 20: Advanced Lighting
The rendering equation
Reflection
Getting started
Refraction
Raytraced water
Rasterized water
Challenge
Where to go from here?
Chapter 21: Metal Performance Shaders
Overview
Image processing
Matrix/vector mathematics
Ray tracing
Where to go from here?
Chapter 22: Integrating SpriteKit & SceneKit
SceneKit starter project
SceneKit shaders
Toon shading
The fwidth function
Cel shading
SpriteKit rendering in Metal
SKRenderer
Core Image
Challenge
Where to go from here?
Chapter 23: Debugging & Profiling
Debugging
Profiling
Where to go from here?
Chapter 24: Performance Optimization
CPU-GPU synchronization
Multithreading
GPU families
Memory management
Best practices
Where to go from here?
Conclusion
π SIMILAR VOLUMES
<p><strong>Build your own low-level game engine in Metal!</strong></p><p>This book introduces you to graphics programming in Metal β Appleβs framework for programming on the GPU. Youβll build your own game engine in Metal where you can create 3D scenes and build your own 3D games.</p><p><strong>Who
<p><strong>Build your own low-level game engine in Metal!</strong></p><p>This book introduces you to graphics programming in Metal β Appleβs framework for programming on the GPU. Youβll build your own game engine in Metal where you can create 3D scenes and build your own 3D games.</p><p><strong>Who
<span>Build your own low-level game engine in Metal!</span><p><span>This book introduces you to graphics programming in Metal β Appleβs framework for programming on the GPU. Youβll build your own game engine in Metal where you can create 3D scenes and build your own 3D games.</span></p><span>Who Thi
Razeware LLC, 2016. β 380 p. β ISBN: 978-1942878162.<br/> <br/><strong>Code file uploaded <a class="object-link fpm" data-file-id="1937470" href="/file/1937470/">here</a></strong><div class="bb-sep"></div><strong>Learn How to Make 3D iOS Games! Learn how to make 3D games in Swift, using Appleβs buil
Razeware LLC, 2015. β 801 p. β ISBN: 978-1942878148.<div class="bb-sep"></div>Learn How to Make 2D iOS and tvOS Games!<br/>Learn how to make iOS and tvOS games in Swift, using Appleβs built-in 2D game framework: Sprite Kit. Through a series of mini-games and challenges, you will go from beginner to