1
\$\begingroup\$

I am importing an image from Maya into Unity but the shapes look drastically different from one another as well as the color and I am not sure what is causing this how can I fix it?

From maya

enter image description here

From Unity

enter image description here

\$\endgroup\$
2
  • 1
    \$\begingroup\$ 2 hypotheses 1) I've seen this happen with skinned meshes, where the skeleton and the vertex data get exported with mismatched scale values, making the mesh look chubbier/scrawnier as the offsets from each bone are stretched/compressed. 2) This could be a difference in camera settings. If you're using an orthographic camera in Maya, and a perspective camera with a wide FoV in Unity, it will tend to exaggerate the size of features on the near side of the sphere while shrinking features as they recede into depth - see this answer for a diagram \$\endgroup\$
    – DMGregory
    Jan 16 '17 at 21:29
  • 1
    \$\begingroup\$ May I point out that the Unity version of that penguin looks way more adorable? I want a plushie of that for my little niece! The color differences can be explained by a different rendering engine and a different light setup. \$\endgroup\$
    – Philipp
    Jan 16 '17 at 21:45
2
\$\begingroup\$

I made a quick mockup with primitives in Unity, and it looks like this could be explained with just camera settings:

Image of a penguin, rendered through an orthographic camera on the left, and a perspective camera on the right

This is the same collection of primitives, rendered with two cameras in Unity simultaneously in splitscreen.

  • On the left I've used an orthographic camera, which is able to see a whole hemisphere of the body all at once. That makes the face look quite small in comparison to the full diameter.

  • On the right I've used a camera with a very wide field of view, positioned quite close to the penguin's beak.

    Because it's so close, the face appears very large in the camera's view, while more distant content like the distance between the wingtips shrinks away. (Think of looking down a set of parallel railroad tracks - the ties are the same width all the way down, but as they get further away it looks like they get shorter and the rails seem to converge).

    This camera is too close to the body sphere to see more than a portion of it - the rest curls away from its view, like the Earth curving away over the horizon.

So, how do you fix this?

You can...

  • Use an orthographic camera in Unity if you like that pure geometric look

  • Or, using a perspective camera, pull your viewpoint back away from the character, so there's not such a drastic difference in relative depth from its front to its back (perspective distortion is sharpest near the camera, where moving a few centimeters doubles your distance from the "lens". Far from the camera, the same depth change is pocket change relative to the total depth).

    If this makes the object too small on screen, reduce your camera's field of view, which effectively zooms back in without adding shape distortion. As the camera FoV gets narrower and it pulls further away, it becomes more "orthographic-like" - this is the trick used in those dolly zoom shots in movies:

    Dolly Zoom example from the film Goodfellas.

    Here we start with a distant & tight camera, shifting to a close & wide one, making the background appear to shrink or zoom away while the foreground stays almost the same.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.