- Home /
How to make an Off-axis / Off-center camera ?
Hello all,
I work on an app which is using a projector, which is used to be represent as a camera in Unity. However as I use a perspective camera (and I want a perspective camera), I'd like to have the same position in Unity and IRL. To a better understanding, you can see on the scheme in black what a unity camera sees, and in red, what my projector sees and what I want to achieve in Unity. My problem is that I want my camera Off-axis/off-center but I don't know how to do it.
I think there's some things to adjust with the "Camera.projectionMatrix" ( http://docs.unity3d.com/ScriptReference/Camera-projectionMatrix.html ), but I don't understand how the script works, and I don't understand what happens when I change the floats (right, left, bottom, top).
If someone could help me, I'll appreciate.
Thank you :)
Answer by mikelortega · Jul 09, 2015 at 07:22 AM
Hi,
You have to change the camera's projection matrix and you already found the script, you've made the most difficult part! :) In the script you have to set the parameters for the near plane. For instance, Top means the distance from the center to the top of the camera, I hope this picture helps. Same explanation for right and left parameters.
Take into account that there is a bug with shadows that makes Off-axis projection useless in the newest versions of Unity. I hope it's fixed soon, in the meantime, you can just upvote the issue so they prioritize.
Answer by Torigas · Jul 09, 2015 at 09:23 AM
https://github.com/Emerix/AsymFrustum I actually have a little example implementation in my github. Enjoy!
Your answer
Follow this Question
Related Questions
changing camera view 3 Answers
how to change progection matrix for some objects 0 Answers
How do projection matrices work in Unity? 1 Answer
Reproduce WorldToViewportPoint function 2 Answers
Projectors Projecting both directions... 2 Answers