I made some models in blender 2.8:

enter image description here

After importing them to Unity, they look much worse:

enter image description here

Still the same material as in blender, I use the LWRP and have had nothing but issues with it, the lack of AO being one. Is there something I'm missing because it should not look this much worse in the Game Engine?


AO is an expensive effect, so of course it's not supported in LWRP.

It sounds like you aren't baking your textures. Generally it's not a good idea to import material settings directly from Blender:

  • Some settings can't be imported, so your material often will look different in Unity. Blender is primarily designed for pre-rendered graphics, while Unity is designed for real-time graphics. This means that Blender has all kinds of texture and lighting settings that have no equivalent in Unity.
  • You often end up with one mesh that uses 5 - 10 different materials, which makes the mesh more expensive to render
  • After importing enough models, your project will get filled with an overwhelming number of imported materials, making it nearly impossible to find a specific material with the search bar.

Texture baking refers to creating a UV-mapped texture from the material and lighting settings that you have configured in your 3D modeling software (Blender in this case). This is the only way you're going to be able to recreate the look of AO without an expensive post-process shader. Gradients, patterns, AO, etc can all be baked into a single albedo/diffuse texture, which is inexpensive to render. If necessary, you can also bake specular, normal maps, etc.

Texture baking is an essential skill for any 3D artist working with a game engine. If you don't know how to bake textures, you should learn this immediately: https://docs.blender.org/manual/en/latest/render/cycles/baking.html

  • \$\begingroup\$ Thanks. I do not usually import materials from blender, I have my own shader/material in Unity. But simple wanted this for this example. The problem with baking AO onto textures is that Ill have to start using 1 texture per object, which means Unity cant batch draw calls. If I do as I do now, where I have a color palette of gradients, I can use 1 texture for my entire game, which is very cheap. \$\endgroup\$ – Green_qaue Nov 22 '19 at 7:58
  • \$\begingroup\$ @Green_qaue Using a single texture for all of your meshes seems to be a common approach with low-poly art packs. It's certainly good for batching draw calls, as you indicated. If the gradient or colors look off, you might check the texture format; sometimes the default texture format (particularly 4-bit formats for mobile) will badly compress your colors and add banding to gradients. \$\endgroup\$ – user45623 Nov 22 '19 at 17:21

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.