From f2b6a33fdf84a06b958f9cb9d667a2eff3063d8b Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Wed, 24 Jul 2019 23:50:40 -0400 Subject: [PATCH] Camera global inverse. --- BoundaryRep.java | 54 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 45 insertions(+), 9 deletions(-) diff --git a/BoundaryRep.java b/BoundaryRep.java index 3583aa0..36f7b5d 100644 --- a/BoundaryRep.java +++ b/BoundaryRep.java @@ -1997,7 +1997,8 @@ if (v.vertexlinks == null) continue; - if (v.weights != null && v.weights[j] < 0.001 * v.totalweight) // == 0) + // Warning: faster but dangerous + if (v.weights != null && v.weights[j] == 0) // < 0.001 * v.totalweight) { //testweight += v.weights[j-1]; continue; @@ -3857,6 +3858,28 @@ Trim(true/*wastrim*/,true,crease,wasstrip,false); } + void GenerateNormalsMesh() + { + if (stripified) + { + Unstripify(); + } + + if (trimmed) + { + normals = null; + } + else + { + for (int i=VertexCount(); --i>=0;) + { + Vertex v = GetVertex(i); + + v.norm = null; + } + } + } + void GenNormalsJME() { assert(false); @@ -3979,7 +4002,7 @@ NormalGenerator ng; if (crease) - ng = new NormalGenerator(Math.PI/6); // default is 44 degrees (or Math.PI/3); // /4); + ng = new NormalGenerator(Math.PI/4); // default is 44 degrees (or Math.PI/3); // /4); else ng = new NormalGenerator(Math.PI); // (Math.PI / 3); // /4); @@ -4013,8 +4036,9 @@ triangles[i] = i; } - Untrim(); - MergeNormals(); +// Untrim(); + if (!trimmed) + MergeNormals(); } } @@ -4076,8 +4100,9 @@ triangles[0] = 3; } - Untrim(); - MergeNormals(); + //Untrim(); + if (!trimmed) + MergeNormals(); } /* @@ -4131,6 +4156,8 @@ void MergeNormals() { + assert(!trimmed); + boolean smooth = Grafreed.smoothmode; boolean link = Grafreed.linkUV; Grafreed.smoothmode = true; @@ -4942,9 +4969,18 @@ v./*pos.*/y = positions[i3 + 1]; v./*pos.*/z = positions[i3 + 2]; - v.norm.x = normals[i3]; - v.norm.y = normals[i3 + 1]; - v.norm.z = normals[i3 + 2]; + if (normals == null) + { + v.norm.x = 0; + v.norm.y = 0; + v.norm.z = 0; + } + else + { + v.norm.x = normals[i3]; + v.norm.y = normals[i3 + 1]; + v.norm.z = normals[i3 + 2]; + } v.s = uvmap[i2]; v.t = uvmap[i2 + 1]; -- Gitblit v1.6.2