Code:
triangle_vertices = (geometry_part_triangle_blocks[g][p] * 3)
for t = 1 to triangle_vertices do
(
append vertex_order ((readShortB "#signed") + 1)
)
vo_count = vertex_order.count
if vertex_order[vo_count] == 0 do deleteItem vertex_order (vo_count)
if vertex_order[vo_count-1] == 0 do deleteItem vertex_order (vo_count-1)
for w = 1 to (vertex_order.count - 2) do
(
triangles[w] = [vertex_order[w],vertex_order[w+1],vertex_order[w+2]]
)
for r = 1 to triangles.count by 2 do
(
a = triangles[r][1]
triangles[r][1] = triangles[r][3]
triangles[r][3] = a
)
for d = triangles.count to 1 by -1 do
(
if (triangles[d][1] == triangles[d][2]) or (triangles[d][2] == triangles[d][3]) or (triangles[d][1] == triangles[d][3]) then
(
deleteItem triangles d
)
)
I'll translate that to English for you...
There are 4 for-loops, each has a purpose:
- Read the vertex order from the tag
- Create triangles from every 3 vertices
- Reverse the vertex indices
- Remove degenerate triangles
Voila, your model no longer looks like crap.

Bookmarks