I am rendering a skydome using an infinity projection matrix and I want to move the final image left and right by a certain amount of pixels which I already know so it appears at the max parallax.
I could render it to a slightly larger framebuffer and then move that however I was wondering if there was a way of doing this (possibly by changing the infinity projection matrix)?
Below is the code used to generate the infinity projection matrix:
buildProjectionMatrixInfinityPerspectiveFovLH(f32 aspectRatio)
{
const f64 yScale = 1.0f / tan(45.0f / 2.0f);
const T xScale = (T)(yScale / aspectRatio);
const T Epsilon = 0.000001f;
M[0] = xScale;
M[1] = 0;
M[2] = 0;
M[3] = 0;
M[4] = 0;
M[5] = (T)yScale;
M[6] = 0;
M[7] = 0;
M[8] = 0;
M[9] = 0;
M[10] = 1.0f+Epsilon;
M[11] = 1.0f;
M[12] = 0;
M[13] = 0;
M[14] = -1.0f;
M[15] = 0;
definitelyIdentityMatrix=
false;
return *this;
}
Thanks.