Getting Started with Godot 4 Materials
Godot 4 uses a physically-based rendering pipeline that supports high-quality texture-based materials. The primary material type for textured surfaces is StandardMaterial3D, which provides albedo, normal, roughness, metallic, and emission channels. This guide walks through importing textures and configuring materials for realistic results.
Importing Textures
Drop your PNG texture files into the res://textures/ folder in your project. Godot automatically imports them with default settings. For seamless textures, the critical setting is in the Import dock: set Repeat to “Enabled” (it defaults to “Disabled” in Godot 4, which catches many newcomers). Without repeat mode, your texture will display as a single stretched image instead of tiling.
Creating a StandardMaterial3D
Select your MeshInstance3D node, then in the Inspector, create a new StandardMaterial3D. Expand the Albedo section and load your texture into the Texture slot. For a brick wall, this is your color map. Adjust UV1 Scale to control tiling — values of (2, 2) or (4, 4) are common for wall-sized surfaces.
Adding Normal Maps
If you generated a normal map using the Normal Map tool, load it into the Normal Map → Texture slot and enable “Normal Map” in the import settings. Adjust the Normal Scale parameter (0.5–2.0) to control the perceived depth. For stone surfaces, higher values (1.5–2.0) create dramatic depth, while smooth materials like marble use subtle values (0.3–0.5).
Roughness and Metallic
Roughness controls how blurry reflections appear: 0.0 is mirror-smooth, 1.0 is completely matte. Wood flooring typically uses 0.4–0.6, raw concrete uses 0.8–0.95, and polished marble uses 0.1–0.2. Metallic is usually either 0.0 (non-metal) or 1.0 (metal). For most natural materials like wood, sand, and fabric, keep metallic at 0.
ShaderMaterial for Advanced Control
When StandardMaterial3D is not enough, use ShaderMaterial with a custom .gdshader file. This lets you implement features like triplanar mapping (for terrain without UV seams), detail textures, or distance-based tiling variation. Godot’s shader language is similar to GLSL, making it accessible for developers familiar with other engines.