diff --git a/Terrain2/Renderer.swift b/Terrain2/Renderer.swift index 69294e3..9bae19d 100644 --- a/Terrain2/Renderer.swift +++ b/Terrain2/Renderer.swift @@ -279,7 +279,8 @@ class Renderer: NSObject, MTKViewDelegate { renderEncoder.setDepthStencilState(depthState) renderEncoder.setTriangleFillMode(drawLines ? .lines : .fill) - + + renderEncoder.setVertexBuffer(terrain.faceNormalsBuffer, offset: 0, index: BufferIndex.faceNormals.rawValue) renderEncoder.setVertexBuffer(dynamicUniformBuffer, offset:uniformBufferOffset, index: BufferIndex.uniforms.rawValue) renderEncoder.setFragmentBuffer(dynamicUniformBuffer, offset:uniformBufferOffset, index: BufferIndex.uniforms.rawValue) diff --git a/Terrain2/ShaderTypes.h b/Terrain2/ShaderTypes.h index d691313..4e99efa 100644 --- a/Terrain2/ShaderTypes.h +++ b/Terrain2/ShaderTypes.h @@ -26,7 +26,8 @@ typedef NS_ENUM(NSInteger, BufferIndex) BufferIndexMeshPositions = 0, BufferIndexNormals = 1, BufferIndexMeshGenerics = 2, - BufferIndexUniforms = 3, + BufferIndexFaceNormals = 3, + BufferIndexUniforms = 4, }; typedef NS_ENUM(NSInteger, VertexAttribute) diff --git a/Terrain2/Shaders/Shaders.metal b/Terrain2/Shaders/Shaders.metal index 0198505..941f154 100644 --- a/Terrain2/Shaders/Shaders.metal +++ b/Terrain2/Shaders/Shaders.metal @@ -33,6 +33,7 @@ typedef struct #pragma mark - Geometry Shaders vertex ColorInOut vertexShader(Vertex in [[stage_in]], + constant packed_float3 *faceNormals [[buffer(BufferIndexFaceNormals)]], constant Uniforms &uniforms [[buffer(BufferIndexUniforms)]]) { ColorInOut out;