From 97c31c7548f8c64eefddab9f68593b7e6eb911a2 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Tue, 20 Nov 2018 11:01:46 -0700 Subject: [PATCH] Add normalMatrix uniform --- Terrain2/Renderer.swift | 6 +++++- Terrain2/ShaderTypes.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Terrain2/Renderer.swift b/Terrain2/Renderer.swift index 12ce84e..0e91215 100644 --- a/Terrain2/Renderer.swift +++ b/Terrain2/Renderer.swift @@ -206,9 +206,13 @@ class Renderer: NSObject, MTKViewDelegate { let rotationAxis = float3(0, 1, 0) let modelMatrix = matrix4x4_rotation(radians: rotation, axis: rotationAxis) let viewMatrix = matrix4x4_translation(0.0, -2.0, -8.0) - uniforms[0].modelViewMatrix = simd_mul(viewMatrix, modelMatrix) + let modelViewMatrix = simd_mul(viewMatrix, modelMatrix) + uniforms[0].modelViewMatrix = modelViewMatrix rotation += 0.003 + let rotSclModelViewMatrix = float3x3(modelViewMatrix.columns.0.xyz, modelViewMatrix.columns.1.xyz, modelViewMatrix.columns.2.xyz) + uniforms[0].normalMatrix = rotSclModelViewMatrix.inverse.transpose + uniforms[0].terrainDimensions = terrain.dimensions uniforms[0].terrainSegments = terrain.segments } diff --git a/Terrain2/ShaderTypes.h b/Terrain2/ShaderTypes.h index 0b839fe..d691313 100644 --- a/Terrain2/ShaderTypes.h +++ b/Terrain2/ShaderTypes.h @@ -58,6 +58,7 @@ typedef NS_ENUM(NSInteger, GeneratorTextureIndex) { typedef struct { matrix_float4x4 projectionMatrix; matrix_float4x4 modelViewMatrix; + matrix_float3x3 normalMatrix; packed_float2 terrainDimensions; packed_uint2 terrainSegments; } Uniforms;