From 552864eb097f694435542dbe13bb6c62919ef40b Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Fri, 23 Nov 2018 08:59:04 -0700 Subject: [PATCH] Plug in an MDLCamera in place of hard coded transforms --- Terrain2/Renderer.swift | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Terrain2/Renderer.swift b/Terrain2/Renderer.swift index 9c6b17b..be987d7 100644 --- a/Terrain2/Renderer.swift +++ b/Terrain2/Renderer.swift @@ -48,6 +48,7 @@ class Renderer: NSObject, MTKViewDelegate { var projectionMatrix: matrix_float4x4 = matrix_float4x4() var rotation: Float = 0 + var camera = MDLCamera() var terrain: Terrain var drawLines = true { @@ -110,6 +111,11 @@ class Renderer: NSObject, MTKViewDelegate { super.init() + camera.nearVisibilityDistance = 0.1 + camera.farVisibilityDistance = 100 + camera.focalLength = 50 + camera.look(at: float3(0), from: float3(0, 2, 8)) + populateLights() populateMaterials() } @@ -211,11 +217,11 @@ class Renderer: NSObject, MTKViewDelegate { } } - geometryUniforms.pointer[0].projectionMatrix = projectionMatrix + geometryUniforms.pointer[0].projectionMatrix = camera.projectionMatrix let rotationAxis = float3(0, 1, 0) let modelMatrix = matrix4x4_rotation(radians: rotation, axis: rotationAxis) - let viewMatrix = matrix4x4_translation(0.0, -2.0, -8.0) + let viewMatrix = camera.transform!.matrix.inverse let modelViewMatrix = simd_mul(viewMatrix, modelMatrix) geometryUniforms.pointer[0].modelViewMatrix = modelViewMatrix rotation += 0.003