mirror of
https://github.com/minetest/minetest.git
synced 2024-11-09 17:23:45 +01:00
Remove workaround for normals not matching winding order (#12460)
Co-authored-by: sfan5 <sfan5@live.de>
This commit is contained in:
parent
f090471022
commit
7b6c4bf2e0
@ -330,9 +330,6 @@ void recalculateBoundingBox(scene::IMesh *src_mesh)
|
|||||||
|
|
||||||
bool checkMeshNormals(scene::IMesh *mesh)
|
bool checkMeshNormals(scene::IMesh *mesh)
|
||||||
{
|
{
|
||||||
// Assume correct normals if this many first faces get it right.
|
|
||||||
static const u16 MAX_FACES_TO_CHECK = 9;
|
|
||||||
|
|
||||||
u32 buffer_count = mesh->getMeshBufferCount();
|
u32 buffer_count = mesh->getMeshBufferCount();
|
||||||
|
|
||||||
for (u32 i = 0; i < buffer_count; i++) {
|
for (u32 i = 0; i < buffer_count; i++) {
|
||||||
@ -346,19 +343,6 @@ bool checkMeshNormals(scene::IMesh *mesh)
|
|||||||
|
|
||||||
if (!std::isfinite(length) || length < 1e-10f)
|
if (!std::isfinite(length) || length < 1e-10f)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
const u16 count = MYMIN(MAX_FACES_TO_CHECK * 3, buffer->getIndexCount() - 3);
|
|
||||||
for (u16 i = 0; i < count; i += 3) {
|
|
||||||
|
|
||||||
core::plane3df plane(buffer->getPosition(buffer->getIndices()[i]),
|
|
||||||
buffer->getPosition(buffer->getIndices()[i+1]),
|
|
||||||
buffer->getPosition(buffer->getIndices()[i+2]));
|
|
||||||
|
|
||||||
for (u16 j = 0; j < 3; j++)
|
|
||||||
if (plane.Normal.dotProduct(buffer->getNormal(buffer->getIndices()[i+j])) <= 0)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
Reference in New Issue
Block a user