Can I calculate normals given vertices and indices? Can't figure out the code. Any help appreciated.
Edit: Could be it as simple as?:
function calculateVertexNormal(vertices:Array<Vector3>) {
var vertNormal:Array<Vector3> = [];
for(i in 0...vertices.length){
var v0 = vertices[i];
vertNormal.push(new Vector3(v0.x, v0.y, v0.z).normalized());
}
return vertNormal;
}
Edit 2: Trying like this, with no luck
function calculateVertexNormal(vertices:Array<Vector3>) {
var i = 0;
while(i<indices.length){
var A = vertices[indices[i]];
var B = vertices[indices[i+1]];
var C = vertices[indices[i+2]];
var v1 = new Vec3().subvecs(A,B);
var v2 = new Vec3().subvecs(A,C);
var norm = new Vec3().crossvecs(v1, v2);
normals.push(norm.x);
normals.push(norm.y);
normals.push(norm.z);
i+=3;
}
}