From b4448e2d63b57546e8a4bede8fada944ab85f262 Mon Sep 17 00:00:00 2001 From: Leonardo Zide Date: Sun, 27 May 2018 13:19:45 -0700 Subject: [PATCH] Fixed string braided normals. --- common/lc_synth.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/common/lc_synth.cpp b/common/lc_synth.cpp index d1583f7b..96bb8618 100644 --- a/common/lc_synth.cpp +++ b/common/lc_synth.cpp @@ -572,6 +572,8 @@ void lcSynthInfo::AddStringBraidedParts(lcMemFile& File, lcLibraryMeshData& Mesh lcVector3 Vertex = (lcMul(Vertex1, Transform1) + Offset1) * (1.0f - t) + (lcMul(Vertex2, Transform2) + Offset2) * t; VertexBuffer->Position = Vertex; + VertexBuffer->Normal = lcVector3(0.0f, 0.0f, 0.0f); + VertexBuffer->NormalWeight = 0.0f; VertexBuffer++; if (SegmentIdx != NumSegments) @@ -607,10 +609,12 @@ void lcSynthInfo::AddStringBraidedParts(lcMemFile& File, lcLibraryMeshData& Mesh { lcVector3 Vertex11 = lcVector3(t1 * 4.0f, PositionTable[(BaseX + SliceIdx) % NumSlices], PositionTable[(BaseY + SliceIdx) % NumSlices]) + lcVector3(0.0f, 1.5f, 0.0f); lcVector3 Vertex12 = lcVector3((1.0f - t1) * -4.0f, PositionTable[(BaseX + SliceIdx) % NumSlices], PositionTable[(BaseY + SliceIdx) % NumSlices]) + lcVector3(0.0f, 1.5f, 0.0f); + VertexBuffer->Position = (lcMul(Vertex11, Transform1) + Offset1) * (1.0f - t1) + (lcMul(Vertex12, Transform2) + Offset2) * t1; - lcVector3 Vertex1 = (lcMul(Vertex11, Transform1) + Offset1) * (1.0f - t1) + (lcMul(Vertex12, Transform2) + Offset2) * t1; - - VertexBuffer->Position = Vertex1; + lcVector3 Normal11 = lcVector3(0.0f, PositionTable[(BaseX + SliceIdx) % NumSlices] / 1.5f, PositionTable[(BaseY + SliceIdx) % NumSlices] / 1.5f); + lcVector3 Normal12 = lcVector3(0.0f, PositionTable[(BaseX + SliceIdx) % NumSlices] / 1.5f, PositionTable[(BaseY + SliceIdx) % NumSlices] / 1.5f); + VertexBuffer->Normal = lcMul(Normal11, Transform1) * (1.0f - t1) + lcMul(Normal12, Transform2) * t1; + VertexBuffer->NormalWeight = 1.0f; VertexBuffer++; if (SegmentIdx != NumSegments)