Skip to main content

Introduction

Meshes define the 3D geometry of objects, while materials determine how they appear visually. Godot provides powerful tools for importing 3D models, applying materials, and creating stunning visuals using PBR (Physically Based Rendering) workflows.

MeshInstance3D

MeshInstance3D is the node used to display 3D geometry in your scene. It takes a Mesh resource and renders it in the 3D world.

Basic Usage

See doc/classes/MeshInstance3D.xml:128

Built-in Primitive Meshes

Godot includes several primitive mesh types for quick prototyping:

BoxMesh

Rectangular cuboid

SphereMesh

UV sphere

CylinderMesh

Cylinder or cone

CapsuleMesh

Capsule shape

PlaneMesh

Flat plane

PrismMesh

Triangular prism

Importing 3D Models

Godot supports multiple 3D file formats:
  • glTF 2.0 (.gltf, .glb) - Recommended format
  • FBX (.fbx) - Widely used in game development
  • Collada (.dae) - Open standard
  • Wavefront OBJ (.obj) - Simple format, no animations
glTF 2.0 is the preferred format as it’s an open standard with excellent support for modern features like PBR materials, animations, and skinning.

Import Process

1

Import the Model

Drag and drop your 3D file into the FileSystem dock. Godot will automatically import it.
2

Configure Import Settings

Select the file and adjust settings in the Import dock (meshes, materials, animations).
3

Instantiate in Scene

Drag the imported scene into your level or instantiate it via code:

Materials Overview

Materials control the visual appearance of meshes. Godot’s Material class is the base for all material types (doc/classes/Material.xml:2).

Material Types

The most common material type with PBR support. Provides a comprehensive set of properties without writing shaders.

StandardMaterial3D Properties

Albedo (Base Color)

The base color or texture of the material:
See doc/classes/BaseMaterial3D.xml:60-66

Metallic and Roughness (PBR)

These properties define the physically-based rendering characteristics:

Metallic = 0.0

Non-metallic surfaces like wood, plastic, fabric

Metallic = 1.0

Metallic surfaces like iron, gold, chrome

Roughness = 0.0

Smooth, mirror-like surfaces

Roughness = 1.0

Matte, diffuse surfaces

Normal Mapping

Add surface detail without additional geometry:

Emission

Make objects glow:

Textures and UV Mapping

UV Coordinates

UV coordinates map 2D textures onto 3D surfaces. Most 3D modeling software generates UVs automatically.

Texture Filtering

  • TEXTURE_FILTER_NEAREST: Pixelated look
  • TEXTURE_FILTER_LINEAR: Smooth interpolation
  • TEXTURE_FILTER_LINEAR_WITH_MIPMAPS: Smooth with distance optimization
  • TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC: Best quality for angled surfaces

Triplanar Mapping

Project textures from three axes (useful for terrain):

PBR Workflow

The Physically Based Rendering workflow uses real-world material properties:
1

Set Albedo

Define the base color without lighting information
2

Configure Metallic

Determine if the surface is metallic
3

Adjust Roughness

Control surface glossiness
4

Add Normal Map

Enhance surface detail
5

Apply Ambient Occlusion

Add depth to crevices

Surface Override Materials

Meshes can have multiple surfaces, each with its own material:
See doc/classes/MeshInstance3D.xml:95-101, 117-124

Advanced Material Features

Transparency

Refraction

Simulate glass and water:

Subsurface Scattering

For skin, wax, marble:

Rim Lighting

Create edge highlights:

Blend Shapes (Morph Targets)

Animate mesh deformations:
See doc/classes/MeshInstance3D.xml:76-80, 82-87, 109-115

Skeletal Animation

For animated characters:
See doc/classes/MeshInstance3D.xml:131-134, 135-137

Creating Collision Shapes

Generate physics collision from mesh geometry:
See doc/classes/MeshInstance3D.xml:32-40, 48-53, 55-59

Material Optimization Tips

Combine multiple textures into one atlas to reduce draw calls:
Only enable material features you actually use:
When you have ORM-packed textures, use ORMMaterial3D:
Use appropriate texture resolutions:
  • Small objects: 512x512 or 1024x1024
  • Medium objects: 2048x2048
  • Large objects/terrain: 4096x4096

Common Material Recipes

Shiny Metal

Rough Wood

Glowing Emissive

Transparent Glass

Debugging Meshes

See doc/classes/MeshInstance3D.xml:42-46

3D Overview

Learn 3D fundamentals

Lighting

Illuminate your 3D scenes

Physics

Add collision and physics

Shaders

Write custom shaders

Resources