|
|
@ -2630,7 +2630,7 @@ Mesh GenMeshKnot(float radius, float size, int radSeg, int sides) |
|
|
|
// NOTE: Vertex data is uploaded to GPU |
|
|
|
Mesh GenMeshHeightmap(Image heightmap, Vector3 size) |
|
|
|
{ |
|
|
|
#define GRAY_VALUE(c) ((c.r+c.g+c.b)/3) |
|
|
|
#define GRAY_VALUE(c) ((c.r+c.g+c.b)/3.0f) |
|
|
|
|
|
|
|
Mesh mesh = { 0 }; |
|
|
|
|
|
|
@ -2653,8 +2653,6 @@ Mesh GenMeshHeightmap(Image heightmap, Vector3 size) |
|
|
|
int tcCounter = 0; // Used to count texcoords float by float |
|
|
|
int nCounter = 0; // Used to count normals float by float |
|
|
|
|
|
|
|
int trisCounter = 0; |
|
|
|
|
|
|
|
Vector3 scaleFactor = { size.x/mapX, size.y/255.0f, size.z/mapZ }; |
|
|
|
|
|
|
|
Vector3 vA = { 0 }; |
|
|
@ -2671,15 +2669,15 @@ Mesh GenMeshHeightmap(Image heightmap, Vector3 size) |
|
|
|
|
|
|
|
// one triangle - 3 vertex |
|
|
|
mesh.vertices[vCounter] = (float)x*scaleFactor.x; |
|
|
|
mesh.vertices[vCounter + 1] = p">(float)GRAY_VALUE(pixels[x + z*mapX])*scaleFactor.y; |
|
|
|
mesh.vertices[vCounter + 1] = GRAY_VALUE(pixels[x + z*mapX])*scaleFactor.y; |
|
|
|
mesh.vertices[vCounter + 2] = (float)z*scaleFactor.z; |
|
|
|
|
|
|
|
mesh.vertices[vCounter + 3] = (float)x*scaleFactor.x; |
|
|
|
mesh.vertices[vCounter + 4] = p">(float)GRAY_VALUE(pixels[x + (z + 1)*mapX])*scaleFactor.y; |
|
|
|
mesh.vertices[vCounter + 4] = GRAY_VALUE(pixels[x + (z + 1)*mapX])*scaleFactor.y; |
|
|
|
mesh.vertices[vCounter + 5] = (float)(z + 1)*scaleFactor.z; |
|
|
|
|
|
|
|
mesh.vertices[vCounter + 6] = (float)(x + 1)*scaleFactor.x; |
|
|
|
mesh.vertices[vCounter + 7] = p">(float)GRAY_VALUE(pixels[(x + 1) + z*mapX])*scaleFactor.y; |
|
|
|
mesh.vertices[vCounter + 7] = GRAY_VALUE(pixels[(x + 1) + z*mapX])*scaleFactor.y; |
|
|
|
mesh.vertices[vCounter + 8] = (float)z*scaleFactor.z; |
|
|
|
|
|
|
|
// another triangle - 3 vertex |
|
|
@ -2692,7 +2690,7 @@ Mesh GenMeshHeightmap(Image heightmap, Vector3 size) |
|
|
|
mesh.vertices[vCounter + 14] = mesh.vertices[vCounter + 5]; |
|
|
|
|
|
|
|
mesh.vertices[vCounter + 15] = (float)(x + 1)*scaleFactor.x; |
|
|
|
mesh.vertices[vCounter + 16] = p">(float)GRAY_VALUE(pixels[(x + 1) + (z + 1)*mapX])*scaleFactor.y; |
|
|
|
mesh.vertices[vCounter + 16] = GRAY_VALUE(pixels[(x + 1) + (z + 1)*mapX])*scaleFactor.y; |
|
|
|
mesh.vertices[vCounter + 17] = (float)(z + 1)*scaleFactor.z; |
|
|
|
vCounter += 18; // 6 vertex, 18 floats |
|
|
|
|
|
|
@ -2749,7 +2747,6 @@ Mesh GenMeshHeightmap(Image heightmap, Vector3 size) |
|
|
|
} |
|
|
|
|
|
|
|
nCounter += 18; // 6 vertex, 18 floats |
|
|
|
trisCounter += 2; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|