Guides
What goes wrong between a low poly model and a game engine, and how to fix it. Four guides, each a hub with the detail underneath. Written around what the builder exports, but true of any file.
Flat shading in Unity for low poly models
Why a low poly model goes smooth when it lands in Unity, what the importer's normals and smoothing angle do, the three places to fix it, and how to keep the colours flat too. The complete guide, with the detail in three articles underneath.
- Unity's smoothing angle, and every other normals setting on the Model tabWhat the Smoothing Angle in Unity's model importer does, what the Normals, Normals Mode and Weld Vertices settings do around it, which values give flat shading, and how to set them once for a whole folder with an importer preset.
- A flat shading shader for Unity, in Built-in and URPHow to shade any mesh flat from a shader alone, using screen-space derivatives to get the face normal, with a working Built-in shader, a URP version, the Shader Graph node, and the caveats.
- Materials for low poly models in Unity: palette textures, vertex colours, or one material per colourThe three ways a low poly model carries colour, what each costs in draw calls and setup, how to set up a palette texture material in Built-in and URP with the right filtering, and how batching and instancing change the answer for a forest.
The OBJ file format, explained for game engines
Everything in an OBJ file and its MTL, everything it leaves out (units, axes, colours), how it compares with FBX, GLB and STL, and how Unity, Godot and Unreal each import one without the model arriving tiny, sideways or grey.
- OBJ vs FBX vs GLB vs STL: which 3D file format to use, and whenThe four formats a game or a printer will ask for, what each can and cannot carry, how Unity, Godot and Unreal read each one, file sizes, and which to ask a pack for. One table, then the reasons.
- How to import an OBJ into Unity, at the right size, in colour, shaded flatStep by step: getting an OBJ and its materials into Unity, the Scale Factor and Convert Units settings that make a model the right size, what to do when a model arrives a hundred times too big, the Materials tab, normals for flat shading, and colliders.
- How to import an OBJ into Godot 4, as a mesh or a sceneStep by step: putting an OBJ and its MTL into a Godot 4 project, the difference between importing it as a mesh and as a scene, scale, materials, reimporting after a change, generating LODs, and adding collision.
- How to import an OBJ into Unreal Engine, at the right scaleStep by step: importing an OBJ as a Static Mesh in Unreal Engine 5, the Import Uniform Scale of 100 that a file in metres needs, Convert Scene for the up axis, Normal Import Method for flat shading, what happens to the MTL's materials, collision, LODs and Nanite.
LODs and billboards for low poly models
How levels of detail work, what triangle counts are reasonable for low poly trees, rocks and buildings, how to make the levels so the swap does not pop, billboards and impostors for the far distance, and the LOD setup in Unity, Godot and Unreal.
- Unity's LOD Group, set up from separate model filesHow to build a LOD Group in Unity from three separate model files, what the screen-height thresholds mean, the naming convention that makes the importer build the group for you, fade modes, LOD Bias, and how LOD Groups get on with batching and instancing.
- Billboard trees in Unity: the far level of detailWhat a tree billboard is, how to make the picture, the two ways to show one in Unity, a quad with a cutout material or a Billboard Renderer, how terrain trees do it for you, and the settings that keep it from looking flat.
- Levels of detail in Godot 4: automatic mesh LODs and visibility rangesThe two LOD systems in Godot 4, the automatic mesh LODs the importer generates and the visibility ranges you set on nodes, how to control each, fading between levels, and how they work with MultiMesh for a forest.
- Tree colliders in Unity: a capsule on the trunk, not a mesh on the canopyWhy a tree's collider should be a capsule round the trunk and nothing round the canopy, how to set it up on a placed tree and on a terrain tree, what Generate Colliders on the importer does wrong, and the same in Godot and Unreal.
Free low poly assets for Godot
Where to get free low poly models that work in Godot 4, what each source's licence allows, which formats to prefer, how to import an OBJ or GLB with its colours and flat shading intact, how to add a collider, and how to scatter a forest. The complete guide.
- Free low poly asset packs compared: Kenney, Quaternius, KayKit, Poly Pizza and the restThe free sources of low poly 3D models compared on licence, formats, style, size and what each is best for, with the paid ones for context, and where a builder fits beside them.
- A forest in Godot 4 with MultiMeshInstance3DHow to put thousands of low poly trees in a Godot 4 scene in one draw call with MultiMeshInstance3D, populating it from code with varied transforms and colours, giving the far ones levels of detail, and where the scatter add-ons take over.