-
Build real-time neural rendering pipelines with Metal
Discover how to integrate machine learning into your real-time rendering pipeline using Metal 4. We'll explore practical adoption patterns and best practices for achieving production-quality results with MetalFX neural denoising, featuring real-world insights from Maxon's Redshift Live. Learn how to train and deploy a neural tone mapper using the ML command encoder inline with your graphics work. Finally, dive into the new tensor API to build and evaluate small, specialized neural networks directly within your shaders.
Chapters
- 0:00 - Introduction
- 2:16 - MetalFX Denoising
- 9:57 - Deploy custom ML networks with Metal 4
- 13:40 - Inline neural networks with tensorOps
- 20:55 - Next steps
Resources
- Training a neural network to render irradiance in real time
- Metal sample code library
- Download the Metal Performance Primitives (MPP) Programming Guide
- Understanding the Metal 4 core API
Related Videos
WWDC25
-
Search this video…
-
-
8:46 - Compute camera-only motion vectors
#include <metal_stdlib> using namespace metal; // Compute camera-only motion vectors float4 clipCurrent = viewProjCurrent * float4(worldPos, 1.0); float2 ndcCurrent = clipCurrent.xy / clipCurrent.w; float4 clipPrevious = viewProjPrevious * float4(worldPos, 1.0); float2 ndcPrevious = clipPrevious.xy / clipPrevious.w; float2 motion = ndcPrevious - ndcCurrent; // Get subpixel offset for current and previous frames float2 jitterCurrent = getJitter(frameIndex); float2 jitterPrevious = getJitter(frameIndexPrevious); motion -= jitterPrevious - jitterCurrent;
-
-
- 0:00 - Introduction
An overview of how machine learning is transforming real-time rendering pipelines on Apple platforms, and a preview of three levels of ML integration: MetalFX Denoising, deploying custom networks with Metal 4, and building tiny networks inline in shaders with tensorOps.
- 2:16 - MetalFX Denoising
How to integrate MetalFX Denoising into a path tracer running at one sample per pixel. Covers auxiliary inputs (albedo, depth, motion vectors), best practices for clean inputs, transparency overlays, the denoiser strength mask, and primary surface replacement for mirrors and glass — illustrated with Redshift Live from Maxon.
- 9:57 - Deploy custom ML networks with Metal 4
How to train a neural tone mapper offline (e.g., HDRNet), export it to Metal Performance Shaders Graph, and execute it inside a Metal 4 command buffer alongside your existing rendering passes to replace complex post-processing pipelines with a single network.
- 13:40 - Inline neural networks with tensorOps
How to build and run small multilayer perceptrons directly inside Metal shaders using the TensorOps API and cooperative tensors. Demonstrates an online-trained sky visibility probe that adapts to dynamic scenes each frame — enabling ML inference and training that runs alongside your existing compute and render work.
- 20:55 - Next steps
A recap of the three levels of ML integration in rendering pipelines, and guidance on where to start: download Xcode, explore Metal 4 sample code, and adopt MetalFX denoising for real-time applications first.