Sorry for the bother but can you see where I'm going wrong with this plane mesh grid creation.
The vertices and indices appear correct, however there appears to be one triangle which is wrong... Any ideas please?
extends MeshInstance
func _ready():
var arr = []
arr.resize(Mesh.ARRAY_MAX)
# PoolVectorXXArrays for mesh construction.
var verts = PoolVector3Array()
var uvs = PoolVector2Array()
var normals = PoolVector3Array()
var indices = PoolIntArray()
#######################################
## Insert code here to generate mesh ##
var N = 10 # w
var M = 10 # h
var size = 2.0
for i in range(M):
var v = 1.0 / float(M) * float(i)
for j in range(N):
var u = 1.0 / float(N) * float(j)
var x = float(j) * size
var y = float(0)
var z = float(i) * size
var vert = Vector3(x, y, z)
verts.append(vert)
normals.append(vert.normalized())
uvs.append(Vector2(u, v))
for i in range(M-1):
for j in range(N-1):
var nn = N
# tri 1
indices.append((i * nn) + j)
indices.append((i * nn) + j + 1)
indices.append(((i + 1) * nn) + j)
# tri 2
indices.append((i * nn) + j + 1)
indices.append(((i + 1) * nn) + j + 1)
indices.append(((i + 1) * nn) + j)
#######################################
# Assign arrays to mesh array.
arr[Mesh.ARRAY_VERTEX] = verts
arr[Mesh.ARRAY_TEX_UV] = uvs
arr[Mesh.ARRAY_NORMAL] = normals
arr[Mesh.ARRAY_INDEX] = indices
# Create mesh surface from mesh array.
mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arr)
Thanks