Add improved Model SDF generation with sampling offset and min distance accumulation

This commit is contained in:
Wojtek Figat
2024-05-24 14:52:01 +02:00
parent 9acb3a5482
commit 2c80f4402d

View File

@@ -205,8 +205,11 @@ bool ModelTool::GenerateModelSDF(Model* inputModel, ModelData* modelData, float
for (int32 sample = 0; sample < sampleCount; sample++)
{
Ray sampleRay(voxelPos, sampleDirections[sample]);
sampleRay.Position -= sampleRay.Direction * 0.0001f; // Apply small margin
if (scene.RayCast(sampleRay, hitDistance, hitNormal, hitTriangle))
{
if (hitDistance < minDistance)
minDistance = hitDistance;
hitCount++;
const bool backHit = Float3::Dot(sampleRay.Direction, hitTriangle.GetNormal()) > 0;
if (backHit)