Home Unity

3ds Max vs Unity Camera Perspective

polycounter lvl 8
Offline / Send Message
Shadow2Matrix polycounter lvl 8
Hey everyone,
I tried to look up the issue I am having but the closest I get is field of view or aspect ratio solutions but none help solve my problem. I hope that the problem is not deeper than that but I feel like it might be. Basically I have a scene block out set up in 3ds max with a camera to "Ideally" match what the player would see in Unity's camera. The problem that I am having is, I have an asset which we can call the "Reactor" in the background and "buttons" in the foreground. The buttons match the camera view from max as planned, however, the reactor does not. I was hoping the arms created would pass the camera view. They do in 3ds max but they do not in Unity. I will provide the images but the differences are vastly different. I was wondering where my mistake or overlook is at. I tried matching aspect ratios, messing with the FOV but the variations in differences it makes messing with these values is minute and almost negligible. So what am I overlooking?

If I move the reactor closer to the camera, then of course I achieve the look in scale I would hope for as far as screenspace. The problem is that moving the reactor closer interferes with the rest of the planned level designs for this scene. I was hoping someone here could give me some insight because I finally got to a point where I am 100% stuck. Rescaling or moving the reactor would interfere with all other planned surrounding assets. Images A, B, C, D will display the issues in that order.
A is the Max cam, B is the unity cam, C is the scene setup as far as distances between assets in max. D is the same in Unity, and E is the desired look in game view (Unity) but undesired distance in scene.
Thank you.

Replies

  • Axi5
    Offline / Send Message
    Axi5 interpolator
    Yeah it's a much lower FOV in Max compared to Unity there.

    Higher the FOV, the greater the perspective distortion. Try turning it down to 15 or so.
  • kio
    Offline / Send Message
    kio polycounter lvl 16
    you can actually match the cameras 1:1 - main issue is getting the FOV right, can't remember exactly, but I think you had to switch the FOV mode in max .. and or do something like 90°-value. I did this for a project a year or two ago - wasnt too much of a problem.
  • Shadow2Matrix
    Offline / Send Message
    Shadow2Matrix polycounter lvl 8
    Huh, okay then that means I will mess with it further and give updates if I can. I am not entirely sure how to do this. It would be awesome if I can change it in Unity but it seems like I have to do it in max. Doing it in unity use zooms everything in and out.
    I found a thread that talks about it but no one seemed to reach a concrete solution. Here it is.
    Thanks Axi5 and kio
    https://forum.unity.com/threads/how-to-get-the-same-fov-in-3dsmax-and-unity.128708/
  • Shadow2Matrix
    Offline / Send Message
    Shadow2Matrix polycounter lvl 8
    Hey everyone so I managed to get the unity scene close to what I wanted. It turned out to be the FOV. Thank you so much. All I had to do was mess with the values and move the camera around. I would have not wanted to tweak in man because then this large asset would look tiny in Unity and then that would make it be gigantic compared to everything else. Ill be sure to mess with FOV every new project now though. My new question is, do you guys think its okay to mess with Unity FOV for this or should I really be tweaking it in max and making changes?
  • Axi5
    Offline / Send Message
    Axi5 interpolator
    It depends, if your game is making extensive use of these perspective tricks then you want to lock the FOV. You could even script FOV changes if this puzzle is a small piece of a larger thing.

    Typically FOV should be a user setting, except in cases like yours where changing it would break an illusion.

    IMO leave it as it is in Unity. It's not like it's going to have any adverse effects and if it needs to change, just do as I say above and script it.
  • monster
    Offline / Send Message
    monster polycounter
    Select you camera in Unity and note the FOV. Unity uses a vertical FOV.

    In 3ds Max select your camera. Next to the FOV setting is a little icon that drops down. By default it’s horizontal. Change it to vertical then type in the FOV value from Unity.

    They should match now. 
  • Shadow2Matrix
    Offline / Send Message
    Shadow2Matrix polycounter lvl 8
    @Axi5 I will make a note of that and leave it as is, thanks alot! My only fear is that it will affect different screen resolutions but I suppose I will worry about that later and correct it through scripts.

    @monster Thanks for the suggestion. I am using Max2018 and tried to find the dropdown somewhere in the menus but could not locate it. Perhaps you may be aware of something I am not. I will provide a screenshot. My Max2016 license expired so unfortunately, I can no longer try your suggestion on a previous iteration of max.

  • monster
    Offline / Send Message
    monster polycounter
    Sorry I guess it’s not on Physical Camera. Make a regular Camera instead.
  • Shadow2Matrix
    Offline / Send Message
    Shadow2Matrix polycounter lvl 8
    @monster
    Just wanted to give you and everyone else a quick update. I managed to match Unity about 98% on a 1:1 in camera views. So while the physical camera did not allow me to shift to vertical, the Free Camera did. So kudos to you Monster. I even managed to match the position values from max and unity and the camera placement appears to be on a 1:1 as far as world space coordinates. I have circled the parts that need to be addressed. Hopefully this helps others in the future as it did me. I will keep the original setup I had with the FOV set to low in max because of the illusion I am trying to create but I at least now know how to match the max viewport to unity and vice versa so I will still be using what we learned all the same.

    So
    (Besides properly doing your unit setup) Mine is set to Metric -> Meters and then System Setup 1 Unit -> Centimeters for 1:1 World positions.
    1.Free Camera
    2.Set the FOV to Unity's, by default its 60.
    3. Click arrow to the left which drops down and choose vertical.
    4. Under render setup, try and match the Image aspect -> Unity aspect ratio. I still dont know how this works. I just searched for a 3:1 resolution and set that. In my case 3k x 2k (3000 W 2000 H) and then set the FOV to 60 again because it changes it for you automatically.
    5. Match the world positions. Unity (x , y, z) = Max (x, z, y) in that order. So basically switch your y and z values.
    6. Rejoice!

    Thank you all for your immensely valuable feed back.

Sign In or Register to comment.