From the study to an actual game asset
How this works in production × Mesh → seams → UV coordinates → texture images → material → rendered character. The mesh provides the shape. The UV map tells the renderer where to look in a texture. A material tells it how to interpret those pixels.
1. Make the shape first A production head is a polygon surface with topology shaped around the eyes, mouth, ears and nose. It is not six box sides. A smooth-shaded mesh can still be made of triangles. This study uses an egg-like polygon surface with a small geometric nose bump; its cartoon eyes and mouth are only paint. A close-up, animatable face needs considerably more geometry and separate modeling decisions.
2. Choose UV cuts, not holes in the character A seam lets the same 3D edge have different UV coordinates on either side. It does not rip a physical gap in the final model. A back-of-head cut is one common strategy; face/scalp boundaries and extra ear islands are other possibilities. Put continuity where it matters, then balance distortion against the number of separate islands. A seam across the visible face is not forbidden, but it makes continuity more demanding. [1,2]
3. Unwrap, relax, check, pack Unwrapping software computes a 2D arrangement for the polygon corners. Curved surfaces such as a head generally cannot flatten without distortion. Test with a checker image: squeezed squares reveal directional stretch, and unequal cell sizes reveal differences in texture density. Adjust seams, relax UVs, and allocate enough image area to important regions. Pack the islands with space between them. [1,3,4]
In this lab, Shaped , Face + back and Raw sphere grid are hand-designed comparisons. The shaped map is not a solver result and is not promised to have less distortion everywhere. Compare the checkers. The unfolding animation interpolates 3D vertices toward a UV plane purely to explain the correspondence; an actual unwrap operation leaves the mesh in place.
4. Paint a face in either space You can export a UV template, paint eyes, freckles, skin color and lips over the correct islands in a 2D editor, and load the image back onto the material. Or paint directly on the 3D head: a texture painter uses the surface UVs to write into the 2D image. Both workflows edit texture pixels. A flat portrait is not automatically a complete head texture; it has no back-of-head information and will distort on the sides unless mapped, projected or repainted appropriately. [2,5]
A production 3D projection brush can paint across neighboring faces and UV seams. This lesson deliberately uses a simpler texel-space brush and clips each stroke to its island. Painting close to a pole can appear stretched. Paint layers here are independent for each head layout.
5. Treat clothing as a surface, not a color change A close-fitting design can sometimes be painted on an existing body. A loose sleeve, collar, hem thickness or a new silhouette needs garment geometry. Front/back torso panels and unrolled sleeve tubes are useful UV groupings. UV seams may follow sewing seams, but UV islands are not automatically physically sewable patterns . This shirt has an illustrative torso surface and intersecting sleeve pieces, not a production sewn or simulated garment.
Large folds can be modeled. A normal map can suggest smaller folds or weave by changing the lighting normal, but ordinary normal mapping does not change the silhouette. Roughness controls the surface's reflection response. Fabric and skin are non-metallic here. [6]
6. Swap artwork without breaking its addresses A texture replacement must put corresponding features at the UV addresses the mesh already uses. An image being 1024 × 1024 does not make its face, collar or sleeve artwork compatible. After changing a UV layout, repaint or reproject the texture to the new coordinates. Changing a shirt's image will not change its fit or turn it into a loose coat. [2]
A practical Blender exercise Export the ZIP from this lab. Extract it before opening the OBJ. The package includes an OBJ, an MTL, and base-color, normal and roughness PNGs. Import the OBJ, choose the head or garment object, and inspect its UVs in the UV Editing workspace. The imported OBJ already contains UV coordinates. On a working copy, enter Edit Mode, choose edge seams, and use Mark Seam . Select the intended faces and use an Unwrap operator. Exact labels vary by version. Try Angle Based or a minimum-stretch method where available. [1,3] Use a UV Grid test image, adjust the layout, then export a UV guide or use Texture Paint on a base-color image. Save the painted image explicitly. [4,5] Connect base color as color data; use non-color data for normal and roughness images. Connect the normal image through the appropriate normal-map node. OBJ/MTL does not reliably carry a complete modern PBR setup, so verify those nodes manually. [6,7] For a game, verify export scale, normals, UVs, materials, texture filtering, island padding and the target engine's normal-map convention. This static study has no skeleton or skinning. What's actually in this app Generated polygon surfaces, real triangle hit-testing, real UV texture lookup, WebGL lighting with a software rasterizer fallback, paired triangle selection, editable image layers, and an uncompressed ZIP writer. No external libraries or network assets. Everything runs locally. Material lighting is a teaching approximation, not an engine-matched renderer.
Read technical sources ↗ Back to the lab