- for m := 0 to FNumMeshes - 1 do
- begin
- if FMesh[m].FNumIndices > 0 then
- begin
- SetLength(FMesh[m].FVnormal, FMesh[m].FNumVertex);
- SetLength(FMesh[m].FNormalIndices, FMesh[m].FNumIndices);
- f := 0;
- while f < FMesh[m].FNumIndices - 3 do // go through all vertexes and
- begin
- vertexn := CalcNormalVector(FMesh[m].FVertex[FMesh[m].FIndices[f]],
- FMesh[m].FVertex[FMesh[m].FIndices[f + 1]], FMesh[m].FVertex[FMesh[m].FIndices[f + 2]]);
- FMesh[m].FNormalIndices[f] := FMesh[m].FIndices[f];
- FMesh[m].FNormalIndices[f + 1] := FMesh[m].FIndices[f + 1];
- FMesh[m].FNormalIndices[f + 2] := FMesh[m].FIndices[f + 2];
- FMesh[m].FVnormal[FMesh[m].FIndices[f]] := vertexn;
- FMesh[m].FVnormal[FMesh[m].FIndices[f + 1]] := vertexn;
- FMesh[m].FVnormal[FMesh[m].FIndices[f + 2]] := vertexn;
- f := f + 3;
- end;
- end;
- end;