- Home /
Question by
Sloppy-shorts · Jan 24, 2020 at 06:38 AM ·
shaderrenderingrendertexturecamera viewport
Offset the result of camera scissor rect
Hi. Looking for help to offset the render result of second camera scissor rect. So need to take circle area from second camera and render it on top of main, but with possibility to position this piece. I use this code for changing projection matrix and simple circle/distance discard post effect shader to get the area i want from second camera.
public static void SetScissorRect(Camera cam, Rect r)
{
if (r.x < 0)
{
r.width += r.x;
r.x = 0;
}
if (r.y < 0)
{
r.height += r.y;
r.y = 0;
}
r.width = Mathf.Min(1 - r.x, r.width);
r.height = Mathf.Min(1 - r.y, r.height);
cam.rect = new Rect(0, 0, 1, 1);
cam.ResetProjectionMatrix();
Matrix4x4 m = cam.projectionMatrix;
cam.rect = r;
Matrix4x4 m2 = Matrix4x4.TRS(new Vector3((1 / r.width - 1), (1 / r.height - 1), 0), Quaternion.identity, new Vector3(1 / r.width, 1 / r.height, 1));
Matrix4x4 m3 = Matrix4x4.TRS(new Vector3(-r.x * 2 / r.width, -r.y * 2 / r.height, 0), Quaternion.identity, Vector3.one);
cam.projectionMatrix = m3 * m2 * m;
}
Th question is what i need to do to move the position of this area when render it on top of main camera? Cause now it renders on position it was taken from second camera. (1 and 2 on picture is cameras)
camera.png
(10.0 kB)
Comment