Reverted some of ker's changes to bring back the concepts of width, height, and depth.

This commit is contained in:
David Williams
2011-03-11 22:14:51 +00:00
parent 624a192be4
commit 596dcf507e
10 changed files with 338 additions and 24 deletions

View File

@ -41,15 +41,22 @@ namespace PolyVox
VolumeSampler<uint8_t> volIter(volumeData);
Vector3DFloat v3dGradient = computeNormal(volumeData, v3dPos, normalGenerationMethod);
//Check all corners are within the volume, allowing a boundary for gradient estimation
bool lowerCornerInside = volumeData->getEnclosingRegion().containsPoint(v3dFloor,2);
bool upperCornerInside = volumeData->getEnclosingRegion().containsPoint(v3dFloor+Vector3DInt32(1,1,1),2);
if(v3dGradient.lengthSquared() > 0.0001)
if(lowerCornerInside && upperCornerInside) //If this test fails the vertex will be left as it was
{
//If we got a normal of significant length then update it.
//Otherwise leave it as it was (should be the 'simple' version)
v3dGradient.normalise();
iterSurfaceVertex->setNormal(v3dGradient);
}
Vector3DFloat v3dGradient = computeNormal(volumeData, v3dPos, normalGenerationMethod);
if(v3dGradient.lengthSquared() > 0.0001)
{
//If we got a normal of significant length then update it.
//Otherwise leave it as it was (should be the 'simple' version)
v3dGradient.normalise();
iterSurfaceVertex->setNormal(v3dGradient);
}
} //(lowerCornerInside && upperCornerInside)
++iterSurfaceVertex;
}
}