forked from Mirrorlandia_minetest/minetest
Reduce shadow jitter (#11668)
This commit is contained in:
parent
bc71622d21
commit
b4b9bee5f2
@ -65,24 +65,7 @@ void DirectionalLight::createSplitMatrices(const Camera *cam)
|
|||||||
// boundVec.getLength();
|
// boundVec.getLength();
|
||||||
float vvolume = radius * 2.0f;
|
float vvolume = radius * 2.0f;
|
||||||
|
|
||||||
float texelsPerUnit = getMapResolution() / vvolume;
|
|
||||||
m4f mTexelScaling;
|
|
||||||
mTexelScaling.setScale(texelsPerUnit);
|
|
||||||
|
|
||||||
m4f mLookAt, mLookAtInv;
|
|
||||||
|
|
||||||
mLookAt.buildCameraLookAtMatrixLH(v3f(0.0f, 0.0f, 0.0f), -direction, v3f(0.0f, 1.0f, 0.0f));
|
|
||||||
|
|
||||||
mLookAt *= mTexelScaling;
|
|
||||||
mLookAtInv = mLookAt;
|
|
||||||
mLookAtInv.makeInverse();
|
|
||||||
|
|
||||||
v3f frustumCenter = newCenter;
|
v3f frustumCenter = newCenter;
|
||||||
mLookAt.transformVect(frustumCenter);
|
|
||||||
frustumCenter.X = floorf(frustumCenter.X); // clamp to texel increment
|
|
||||||
frustumCenter.Y = floorf(frustumCenter.Y); // clamp to texel increment
|
|
||||||
frustumCenter.Z = floorf(frustumCenter.Z);
|
|
||||||
mLookAtInv.transformVect(frustumCenter);
|
|
||||||
// probar radius multipliacdor en funcion del I, a menor I mas multiplicador
|
// probar radius multipliacdor en funcion del I, a menor I mas multiplicador
|
||||||
v3f eye_displacement = direction * vvolume;
|
v3f eye_displacement = direction * vvolume;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user