Applying ker's patch unmodified.
This commit is contained in:
@ -41,22 +41,15 @@ namespace PolyVox
|
||||
|
||||
VolumeSampler<uint8_t> volIter(volumeData);
|
||||
|
||||
//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);
|
||||
Vector3DFloat v3dGradient = computeNormal(volumeData, v3dPos, normalGenerationMethod);
|
||||
|
||||
if(lowerCornerInside && upperCornerInside) //If this test fails the vertex will be left as it was
|
||||
if(v3dGradient.lengthSquared() > 0.0001)
|
||||
{
|
||||
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)
|
||||
//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);
|
||||
}
|
||||
++iterSurfaceVertex;
|
||||
}
|
||||
}
|
||||
|
@ -29,13 +29,6 @@ namespace PolyVox
|
||||
{
|
||||
float computeSmoothedVoxel(VolumeSampler<uint8_t>& volIter)
|
||||
{
|
||||
assert(volIter.getPosX() >= 1);
|
||||
assert(volIter.getPosY() >= 1);
|
||||
assert(volIter.getPosZ() >= 1);
|
||||
assert(volIter.getPosX() <= volIter.getVolume()->getWidth() - 2);
|
||||
assert(volIter.getPosY() <= volIter.getVolume()->getHeight() - 2);
|
||||
assert(volIter.getPosZ() <= volIter.getVolume()->getDepth() - 2);
|
||||
|
||||
float sum = 0.0;
|
||||
|
||||
if(volIter.peekVoxel1nx1ny1nz() != 0) sum += 1.0f;
|
||||
|
Reference in New Issue
Block a user