- Home /
How to get rid of default camera distortion effect stretching objects at edge of camera?
This is a problem I find really problematic and it makes my objects look too strange.
In software like Maya LT there is no distortion whatsoever but there is distortion in unity. This means that it is a correctable problem.
Here are screenshots of distortion in unity and no distortion in Maya LT How can I correct this ?
$$anonymous$$inda appears like your camera FOV is greater than normal.
I'm using the default FOV , I have not changed any camera settings
Are you sure $$anonymous$$aya's camera is a a perspective camera ( if you add a cube to the top corner of the view, can you see its bottom and side) ?
$$anonymous$$y knowledge of camera projection matrices isn't strong enough to argue strongly about this but I also can't imagine what kind of a perspective projection wouldn't have this problem... If it's perspective projection and has a wide FOV like in your screenshot, parts of the sphere that are closer to the camera will surely appear bigger and cause it to stretch.
Note that Unity uses vertical FOV, so the wider your view is, the more stretching will happen at the edges of the screen.
$$anonymous$$ake your FOV narrower and move the sphere closer to center on the x-axis and farther from camera, and you'll get the "same shot" with less stretching I'd say.
The wider the FOV, the closer to the cam the sphere has to be to appear a certain size. The closer the sphere has to be, the more "proportionally nearer" the "near" parts of the sphere will be to the cam. The more proportional distance differene, the more stretching...
Answer by Goldiedog123 · Mar 18, 2017 at 09:48 PM
That's perfectly normal. Most games just have a smaller field of view than what your using. Because yours is so large its giving a "fish eye effect".
(Most games have a FOV of about 80 -70)
Hope I helped
I was liking my game until i started looking around $$anonymous$$y FOV is the Default FOV. I haven't made changes to the camera at all
I'm sure that you will see the same exact thing if you replicate the scene.
As you can imagine, my characters in $$anonymous$$aya LT are designed to look one particular way ans when in Unity they are distorted the moment they are not in the center of the screen.
As a matter of fact I believe that the distortion happens at all times
I would also like to add that this is not normal. It is just an widely accepted rendering problem.
Again, this is a default scene with a sphere in it at the 14,0,0 position.
This is abnormal behavior , the human eye doesn't distort out of focus object and this is a totally correctable issue , Autodesk corrects it in their tool
You are right this isn't normal, and it's not "widely accepted" because this isn't an issue for others. Obviously something very specific is happening with either your $$anonymous$$aya exporting, or your Unity, however this is not a "common problem". I've personally never experienced this, and I use Blender for all my modeling. Have you tried adding a Unity3D sphere to your scene? Does it look the same? If not, this is directly related to your 3D model.
The sphere in the scene is a unity sphere. I say it it widely accepted because very few developers ever discuss this problem.
It you tried it you would see the same effect
I didnt export the sphere to unity , Just made a sphere in $$anonymous$$aya for the purposed of taking the screenshot for comparison.
Either way it it stretching the heck out of my scene at the corners and sides . I can see the stretching clearly because my camera is set in the cockpit of a ship.
I picked up on the stretching quickly.
Answer by flankechen · Apr 19, 2017 at 03:06 PM
I notice the same problem as well. this might not be a big problem for most games, but in my HMD(head mounted display) AR application, this would make the virtual object looks "not cool". because usually, the real camera is not distorted just like the unity camera usually. And human eye is not distored like unity camera as well.
I am looking for a way to customized the projection matrix and distortion, but not much founded. http://blog.drewmacqu.com/2015/02/projection-mapping-in-unity.html
Answer by Max_Bol · Sep 21, 2018 at 04:53 PM
In case some people are ending up here for the same reason, there's currently a fix for that problem that came with Unity 2018. It's called "Physical Camera" (it's a checkbox in the Camera's Inspector menu). In my case, the reversed FishEye effect of the default camera could be countered by using a Physical Camera with a Focal Lenght of 20 and a Sensor Size of (36,24) and Lens Shift at 0.
No, this doesn't fix the issue at all. The Physical Camera just provides a different way to specify the same parameters. The only real difference i've noticed is that when you enable Physical Camera Unity uses a horizontal fov ins$$anonymous$$d of the normal vertical fov. Since most screens are usually wider than tall it simply results in a way smaller fov angle. The "normal" camera has a 60° vertical fov. With a 16:9 monitor you get a horizontal fov of about 72°. The greater the aspect ratio the greater the horizontal fov. If you set a focal length of 20 you roughly get a horizontal fov angle of 61° On a 16:9 screen that would result in a vertical fov of about 45°
Every perspective projection has some level of distortion (no matter if we have a real world camera or a virtual camera). This is a simple fact of the projection itself
Answer by JFS265 · Aug 13, 2019 at 10:59 PM
I solved this by changing the camera field of view from 60 to 50, and then moving the camera back to compensate for the narrower field of view. This greatly reduces the distortion.
Answer by IsDon · Aug 14, 2019 at 04:45 AM
The Projections and FSAA asset on the asset store gives some good options as well. I was trying to put a wide FOV up on a curved projected wall, and found the default fisheye effect put me off. This tool lets you shift the fisheye effect to minimise edge-of-screen distortion. Might help some people.