POLYMASON

Guides

These guides cover what goes wrong when a low poly model goes into a game engine, and how to fix it. Each of the four is an overview with more detailed articles under it. The examples use the builder's exports, but everything applies to any model.

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 settings do, the three places you can fix it, and how to keep the colors flat as well. Three articles underneath go into the detail.

  • Unity's smoothing angle and Model tab normalsWhat the Smoothing Angle in Unity's model importer does, how the Normals, Normals Mode and Weld Vertices settings affect 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 (Built-in, URP)How to shade any mesh flat from the shader alone by using screen-space derivatives to get the face normal. Includes a working Built-in shader, a URP version, the Shader Graph node, and the caveats.
  • Materials for low poly models in UnityThe three ways a low poly model can carry color and 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 choice for a forest.

The OBJ file format, explained for game engines

What's in an OBJ file and its MTL, what it leaves out (units, axes, colors), how it compares with FBX, GLB and STL, and how to import one into Unity, Godot and Unreal so the model doesn't arrive tiny, sideways or gray.

  • OBJ vs FBX vs GLB vs STL: which format, and whenThe four formats a game or a printer will ask for, what each one can and can't carry, how Unity, Godot and Unreal read each, and which to ask a pack for. There's one table, then a section on each format.
  • Import an OBJ into Unity: size, color, shadingThe steps for 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.
  • Import an OBJ into Godot 4 as a mesh or a sceneThe steps for 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.
  • Import an OBJ into Unreal at the right scaleThe steps for importing an OBJ as a Static Mesh in Unreal Engine 5, the Import Uniform Scale of 100 that a file in meters 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, buildings and characters, how to make the levels so the swap doesn't pop, billboards and impostors for the far distance, and the LOD setup in Unity, Godot and Unreal.

  • Unity's LOD Group 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 work with batching and instancing.
  • Billboard trees in Unity for the far distanceWhat 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.
  • Godot 4 LODs: mesh LODs and visibility rangesGodot 4 has two LOD systems, the automatic mesh LODs the importer generates and the visibility ranges you set on nodes. This covers how to control each, fading between levels, and how they work with MultiMesh for a forest.
  • Tree colliders in Unity: a capsule on the trunkWhy a tree's collider should be a capsule around the trunk with nothing around the canopy, how to set it up on a placed tree and on a terrain tree, what Generate Colliders on the importer gets wrong, and the same setup 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 license allows, and which formats to prefer. It also covers importing an OBJ or GLB with its colors and flat shading intact, adding a collider, and scattering a forest.

  • Free low poly asset packs comparedThe free sources of low poly 3D models compared on license, formats, style and size, with what each one is best for. The paid packs are included for context, along with 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. It covers populating it from code with varied transforms and colors, giving the far trees levels of detail, and where the scatter add-ons take over.

How to make low poly trees for games

The method behind a low poly tree that looks like its species: the silhouette that identifies it, the trunk, where the boughs leave and how the trunk divides, foliage as a few closed meshes, two greens, triangle budgets, and the export a game engine wants. The same steps work in the builder and by hand in Blender.

  • SpeedTree alternatives for low poly treesWhat SpeedTree is, what it costs since Unity bought it, how Unity and Unreal import its trees, and when a low poly game doesn't need it. Then the free and cheaper tools that make low poly trees, what each exports, and what each is missing.
  • Tree generators compared for game developersEvery tree generator a game developer is likely to find, side by side: what it runs on, what it costs, what it exports, whether it makes low poly trees, and whether it handles levels of detail and wind. SpeedTree, PolyMason, Tree It, Sapling, EZ-Tree, The Grove, and the browser demos that come up in search.