GenMeshHeightmap flat shading normals (#1140)
This commit is contained in:
parent
51a8e1d692
commit
584e2d664c
1 changed files with 33 additions and 8 deletions
37
src/models.c
37
src/models.c
|
@ -1831,6 +1831,11 @@ Mesh GenMeshHeightmap(Image heightmap, Vector3 size)
|
|||
|
||||
Vector3 scaleFactor = { size.x/mapX, size.y/255.0f, size.z/mapZ };
|
||||
|
||||
Vector3 vA;
|
||||
Vector3 vB;
|
||||
Vector3 vC;
|
||||
Vector3 vN;
|
||||
|
||||
for (int z = 0; z < mapZ-1; z++)
|
||||
{
|
||||
for (int x = 0; x < mapX-1; x++)
|
||||
|
@ -1888,14 +1893,34 @@ Mesh GenMeshHeightmap(Image heightmap, Vector3 size)
|
|||
|
||||
// Fill normals array with data
|
||||
//--------------------------------------------------------------
|
||||
for (int i = 0; i < 18; i += 3)
|
||||
for (int i = 0; i < 18; i += 9)
|
||||
{
|
||||
mesh.normals[nCounter + i] = 0.0f;
|
||||
mesh.normals[nCounter + i + 1] = 1.0f;
|
||||
mesh.normals[nCounter + i + 2] = 0.0f;
|
||||
}
|
||||
vA.x = mesh.vertices[nCounter + i];
|
||||
vA.y = mesh.vertices[nCounter + i + 1];
|
||||
vA.z = mesh.vertices[nCounter + i + 2];
|
||||
|
||||
// TODO: Calculate normals in an efficient way
|
||||
vB.x = mesh.vertices[nCounter + i + 3];
|
||||
vB.y = mesh.vertices[nCounter + i + 4];
|
||||
vB.z = mesh.vertices[nCounter + i + 5];
|
||||
|
||||
vC.x = mesh.vertices[nCounter + i + 6];
|
||||
vC.y = mesh.vertices[nCounter + i + 7];
|
||||
vC.z = mesh.vertices[nCounter + i + 8];
|
||||
|
||||
vN = Vector3Normalize(Vector3CrossProduct(Vector3Subtract(vB, vA), Vector3Subtract(vC, vA)));
|
||||
|
||||
mesh.normals[nCounter + i] = vN.x;
|
||||
mesh.normals[nCounter + i + 1] = vN.y;
|
||||
mesh.normals[nCounter + i + 2] = vN.z;
|
||||
|
||||
mesh.normals[nCounter + i + 3] = vN.x;
|
||||
mesh.normals[nCounter + i + 4] = vN.y;
|
||||
mesh.normals[nCounter + i + 5] = vN.z;
|
||||
|
||||
mesh.normals[nCounter + i + 6] = vN.x;
|
||||
mesh.normals[nCounter + i + 7] = vN.y;
|
||||
mesh.normals[nCounter + i + 8] = vN.z;
|
||||
}
|
||||
|
||||
nCounter += 18; // 6 vertex, 18 floats
|
||||
trisCounter += 2;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue