3 using System.Collections.Generic;
6 private static Dictionary<string, bool>
triDict;
8 private static string key;
13 public static void Cull(Mesh mesh) {
14 triangles = mesh.triangles;
15 triDict =
new Dictionary<string, bool>();
17 culledTriangles =
new List<int>();
19 for(
int i=0; i<triangles.Length; i+=3) {
20 indices[0] = triangles[i];
21 indices[1] = triangles[i+1];
22 indices[2] = triangles[i+2];
23 System.Array.Sort(indices);
25 key = indices[0] +
"," + indices[1] +
"," + indices[2];
26 if(!triDict.ContainsKey(key)) {
27 triDict.Add(key,
true);
28 culledTriangles.Add(triangles[i]);
29 culledTriangles.Add(triangles[i+1]);
30 culledTriangles.Add(triangles[i+2]);
34 triangles = culledTriangles.ToArray();
37 Debug.Log(
"CullTriangles::Cull() > Number of triangles after culling:");
38 Debug.Log((mesh.triangles.Length / 3).ToString());
39 Debug.Log((culledTriangles.Count / 3).ToString());
static void Cull(Mesh mesh)
static List< int > culledTriangles
static Dictionary< string, bool > triDict