Skip to content

Commit 5eef9a9

Browse files
committed
calculate normal if not present
1 parent c227b70 commit 5eef9a9

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/nbl/asset/interchange/CSTLMeshFileLoader.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -282,9 +282,13 @@ SAssetBundle CSTLMeshFileLoader::loadAsset(system::IFile* _file, const IAssetLoa
282282

283283
if (context.normals.back() == hlsl::float32_t3{})
284284
{
285-
// TODO: calculate normals
286-
assert(false);
285+
auto& p1 = *(context.vertices.rbegin() + 2);
286+
auto& p2 = *(context.vertices.rbegin() + 1);
287+
auto& p3 = *(context.vertices.rbegin() + 0);
287288

289+
auto u = p2 - p1;
290+
auto v = p3 - p1;
291+
context.normals.emplace_back(hlsl::normalize(hlsl::cross(u, v)));
288292
}
289293
} // end while (_file->getPos() < filesize)
290294

0 commit comments

Comments
 (0)