This workspace contains subprojects for testing Metal features. Requires Xcode 11 or later.
MetalDeferred, MetalPostProcessing and MetalSceneGraph use deferred rendering based PBR frameworks. You can check framework sources codes in Common directory!
Features
- Deferred Rendering
- Light pre-pass based
- G-buffer pass : Albedo, Normal, Tangent, Shading, Depth
- Light pass : Light + Shadow Accumulation
- Shade pass : Convolution
- Tile deferred
- G-buffer pass : Albedo, Normal, Tangent, Shading, Depth
- Light culling pass
- Shade pass : Convolution
- Light pre-pass based
- Image based Lighting
- HDRI Image (Equirectangular map -> Cubemap)
- Split-sum approximation model
- Physically based Rendering
- Metalic, Roughness, Anisotropic
- Light
- Directional Light
- Point Light
- Shadow (Bilinear, PCF)
- Light Culling (Tile-based)
- Post-processing
- Screen-Space Ambient Occlusion
- Screen-Space Reflection
- Frustum Culling
- Sphere
- Scene Graph
- Scene, Node, Component
Render Pass
Showcase Videos (Click to watch)
Click to Expand!
- Texture data updating and textureLOD in shader.
- ModelIO Test
- MSAA resolve
- Shadow mapping
- Just another shadow mapping test. NOT Irregular z-buffer :=(
-
PBR (Physically based rendering) (referenced UE4 shader docs)
- Image based lighting (+ Environment mapping)
- Prefilterd Irradiance Map
- Metalic and roughness
- Instancing
- Deferred Rendering
- Instancing
- PBR Lighting and Image based Lighting
- Referenced LearnOpenGL
- HDR Images from sIBL Archive, which is licensed under CC BY-NC-SA 3.0
- Under construction!
- Shadow-mapping (PCF)
- Screen-Space Ambient Occlusion
- Screen-Space Reflection
- Frustum Culling (Sphere)
- Light Culling (Tile-based)
- Gizmos
- TODO
- Color grading (Tone mapping)
- Depth of Field
- Axis-Aligned Bounding Box
- Scene Graph (Scene, Node, Component)
- General-purpose renderer