Hi all ,
I’ m trying to use ScreecSpaceReflection with camera pan, but seems that panning doesn’t affect SpaceScreenReflection
This is my panning Script that change current camera projection matrix.
public static Matrix4x4 CalcDefautPanMatrix(Camera cam, Vector2 offset, float horizontal, float vertical)
{
float left = (offset.x - horizontal) * cam.nearClipPlane;
float right = (offset.x + horizontal) * cam.nearClipPlane;
float top = (offset.y + vertical) * cam.nearClipPlane;
float bottom = (offset.y - vertical) * cam.nearClipPlane;
return PerspectiveOffCenter(left, right, bottom, top, cam.nearClipPlane, cam.farClipPlane);
}
static Matrix4x4 PerspectiveOffCenter(float left, float right, float bottom, float top, float near, float far)
{
var x = (2.0f * near) / (right - left);
var y = (2.0f * near) / (top - bottom);
var a = (right + left) / (right - left);
var b = (top + bottom) / (top - bottom);
var c = -(far + near) / (far - near);
var d = -(2.0f * far * near) / (far - near);
var e = -1.0f;
Matrix4x4 m = Matrix4x4.identity;
m[0, 0] = x;
m[0, 1] = 0.0f;
m[0, 2] = a;
m[0, 3] = 0.0f;
m[1, 0] = 0.0f;
m[1, 1] = y;
m[1, 2] = b;
m[1, 3] = 0.0f;
m[2, 0] = 0.0f;
m[2, 1] = 0.0f;
m[2, 2] = c;
m[2, 3] = d;
m[3, 0] = 0.0f;
m[3, 1] = 0.0f;
m[3, 2] = e;
m[3, 3] = 0.0f;
return m;
}
When pan is zero the Reflection is correctly applied
otherwise Reflection are wrong
Any Ideas?
Thanks