Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions Assets/WireframeRenderer/Scripts/WireframeRenderer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -215,20 +215,21 @@ private void OnDisable()

Mesh GetProcessedMesh(Mesh mesh)
{
var maximumNumberOfVertices = 65534; //Since unity uses a 16-bit indices, not sure if this is still the case. http://answers.unity3d.com/questions/255405/vertex-limit.html
var maximumNumberOfVertices16Bit = 65534; //16-bit indices limit
var meshTriangles = mesh.triangles;
var meshVertices = mesh.vertices;
var meshNormals = mesh.normals;
var boneWeights = mesh.boneWeights;

var numberOfVerticesRequiredForTheProcessedMesh = meshTriangles.Length;
if (numberOfVerticesRequiredForTheProcessedMesh > maximumNumberOfVertices)
{
Debug.LogError("Wireframe renderer can't safely create the processed mesh it needs because the resulting number of vertices would surpass unity vertex limit!");
return null;
}

var processedMesh = new Mesh();
var processedMesh = new Mesh();

var numberOfVerticesRequiredForTheProcessedMesh = meshTriangles.Length;
if (numberOfVerticesRequiredForTheProcessedMesh > maximumNumberOfVertices16Bit)
{
// Change mesh to 32-bit index format to support more vertices
// Might not work on all platforms, for more info check: https://docs.unity3d.com/ScriptReference/Mesh-indexFormat.html
processedMesh.indexFormat = UnityEngine.Rendering.IndexFormat.UInt32;
}

var processedVertices = new Vector3[numberOfVerticesRequiredForTheProcessedMesh];
var processedUVs = new Vector2[numberOfVerticesRequiredForTheProcessedMesh];
Expand Down
Binary file modified packages/UnityWireframeRenderer.unitypackage
Binary file not shown.