Quantcast
Channel: Answers by "gfoot"
Viewing all articles
Browse latest Browse all 95

Answer by gfoot

$
0
0
You can directly write to camera.projectionMatrix to get the kind of effect you want. The trick is knowing what to write, but you should probably look elsewhere for that - e.g. this StackOverflow thread: http://stackoverflow.com/questions/16723674/skewed-frustum-off-axis-projection-for-head-tracking-in-opengl Regarding setting the projection matrix in Unity, here is an example that sets an off-centre projection, though not the maths you need for your case: public void Update() { camera.projectionMatrix = PerspectiveOffCenter(left, right, bottom, top, dist, camera.nearClipPlane, camera.farClipPlane); } static Matrix4x4 PerspectiveOffCenter(float left, float right, float bottom, float top, float dist, float near, float far) { float x = 2.0f * dist / (right - left); float y = 2.0f * dist / (top - bottom); float a = (right + left) / (right - left); float b = (top + bottom) / (top - bottom); float c = -(far + near) / (far - near); float d = -(2.0f * far * near) / (far - near); float e = -1.0f; var m = new Matrix4x4(); m[0, 0] = x; m[0, 1] = 0; m[0, 2] = a; m[0, 3] = 0; m[1, 0] = 0; m[1, 1] = y; m[1, 2] = b; m[1, 3] = 0; m[2, 0] = 0; m[2, 1] = 0; m[2, 2] = c; m[2, 3] = d; m[3, 0] = 0; m[3, 1] = 0; m[3, 2] = e; m[3, 3] = 0; return m; }

Viewing all articles
Browse latest Browse all 95

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>