GenMeshTangents Fix (#1877)

* GenMeshTangents Fix

* GenMeshTangents Fix - Comment Update

* GenMeshTangents Fix - Comment Update final

* Code Style Changes

* Code Style Changes Final
This commit is contained in:
630Studios 2021-07-16 15:14:13 -05:00 committed by GitHub
parent 56cab4b6a9
commit 9aaf7a8057
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2652,8 +2652,17 @@ BoundingBox GetMeshBoundingBox(Mesh mesh)
// Implementation base don: https://answers.unity.com/questions/7789/calculating-tangents-vector4.html // Implementation base don: https://answers.unity.com/questions/7789/calculating-tangents-vector4.html
void GenMeshTangents(Mesh *mesh) void GenMeshTangents(Mesh *mesh)
{ {
if (mesh->tangents == NULL) mesh->tangents = (float *)RL_MALLOC(mesh->vertexCount*4*sizeof(float));
else TRACELOG(LOG_WARNING, "MESH: Tangents data already available, re-writting"); if (mesh->tangents == NULL)
{
mesh->tangents = (float*)RL_MALLOC(mesh->vertexCount*4*sizeof(float));
}
else
{
rlUnloadVertexBuffer(mesh->vboId[SHADER_LOC_VERTEX_TANGENT]);
RL_FREE(mesh->tangents);
mesh->tangents = (float*)RL_MALLOC(mesh->vertexCount*4*sizeof(float));
}
Vector3* tan1 = (Vector3*)RL_MALLOC(mesh->vertexCount*sizeof(Vector3)); Vector3* tan1 = (Vector3*)RL_MALLOC(mesh->vertexCount*sizeof(Vector3));
Vector3* tan2 = (Vector3*)RL_MALLOC(mesh->vertexCount*sizeof(Vector3)); Vector3* tan2 = (Vector3*)RL_MALLOC(mesh->vertexCount*sizeof(Vector3));
@ -2726,6 +2735,12 @@ void GenMeshTangents(Mesh *mesh)
// Load a new tangent attributes buffer // Load a new tangent attributes buffer
mesh->vboId[SHADER_LOC_VERTEX_TANGENT] = rlLoadVertexBuffer(mesh->tangents, mesh->vertexCount*4*sizeof(float), false); mesh->vboId[SHADER_LOC_VERTEX_TANGENT] = rlLoadVertexBuffer(mesh->tangents, mesh->vertexCount*4*sizeof(float), false);
rlEnableVertexArray(mesh->vaoId);
rlSetVertexAttribute(4, 4, RL_FLOAT, 0, 0, 0);
rlEnableVertexAttribute(4);
rlDisableVertexArray();
TRACELOG(LOG_INFO, "MESH: Tangents data computed for provided mesh"); TRACELOG(LOG_INFO, "MESH: Tangents data computed for provided mesh");
} }