Documentation / Node reference / mat nodes
mat/MeshPBR
The physically based mesh material: metal, roughness and reflections.
Mesh
Describes a surface the way the real world does, with a base colour and two dials, metallic and roughness, that between them cover most everyday materials. It is the material glTF assets import as, so a model brought in through geo/SceneGLTF arrives already wired to one of these. Every channel can be a flat value or a texture: turn the matching use toggle on and a slot appears to point at a TEX node. Reflections need an environment map, since there is nothing else in the scene for a shiny surface to reflect.
Parameters
| Name | Type | What it does |
|---|---|---|
| albedo | Color4 | The surface's base colour. On a dielectric it is the diffuse colour, and on a metal it tints the reflection instead, which is why the same param covers both. The alpha channel decides transparency while transparencyMode is AUTO: below 1 the material moves to the transparent pass. |
| emissive | Color | A colour the surface gives off by itself, added after all lighting. It brightens this surface only and lights nothing else in the scene. Black, the default, adds nothing. |
| metallic | Float | Whether the surface is metal. 0 is a dielectric, which keeps its own diffuse colour and adds a separate white highlight. 1 is metal, which has no diffuse colour at all and tints its reflection with albedo. Real materials sit at one end or the other, so use the values between only for a transition, rust, or dust over metal. |
| roughness | Float | How rough the surface is at a scale too small to model. 0 is a mirror, where reflections and highlights stay sharp, and 1 scatters them into a broad dull sheen. This is usually the param that decides whether a surface reads as new or worn. |
| ao | Float | Ambient occlusion: how much of the ambient and environment light reaches this point. 1 lets it all through, and lower values darken the creases and contact points that a light from every direction would not really reach. It does not affect direct light from the scene's lights. |
| ior | Float | Index of refraction, which sets how reflective the surface is when you look straight at it. 1.5 is the default and matches most plastics and glass; water is about 1.33 and gemstones sit higher. It only applies to dielectrics: a fully metallic surface reflects with its albedo and ignores this. |
| envMap | NodePath | An optional TEX node holding an environment map, which lights the surface from every direction and gives it something to reflect. Prefilter it with tex/EnvironmentGGX so roughness can pick the right blur level. With no map, a polished surface has nothing to mirror and reads flat. |
| envIntensity | Float | How strongly the environment map lights the surface. 0 switches the environment contribution off entirely, whatever envMap says. |
| envColor | Color | A tint on the light the environment map contributes. White leaves the map as it is; use it to warm or cool the ambient light without editing the map. |
| useBaseColorTexture | Bool | Take the base colour from a texture instead of the albedo param alone. Off uses the flat colour; on reveals the slot below and multiplies the two together. |
| baseColorTexture | NodePath | The TEX node holding the base colour map. It is read as sRGB, since it is a colour an artist picked rather than a measurement, and it multiplies the albedo param. |
| useMetallicRoughnessTexture | Bool | Take metallic and roughness from a texture, so they can vary across the surface. Off uses the two flat values; on reveals the slot below. |
| metallicRoughnessTexture | NodePath | The TEX node holding the combined metallic and roughness map, packed the way glTF packs it: roughness in green, metallic in blue. It is read as linear data, not colour, and multiplies the two params. |
| useOcclusionTexture | Bool | Take ambient occlusion from a texture, which is how baked contact shadows arrive from a modelling package. Off uses the flat ao value; on reveals the slot below. |
| occlusionTexture | NodePath | The TEX node holding the occlusion map, read from the red channel as linear data. It modulates the ao param. |
| useEmissiveTexture | Bool | Take the emissive colour from a texture, so only part of the surface glows. Off uses the flat emissive colour; on reveals the slot below. |
| emissiveTexture | NodePath | The TEX node holding the emissive map. It is read as sRGB and multiplies the emissive param, so that param has to be above black for the map to show at all. |
| useNormalTexture | Bool | Add surface detail from a normal map without adding geometry. Off shades from the geometry's own normals; on reveals the slot below. |
| normalTexture | NodePath | The TEX node holding the tangent-space normal map, read as linear data. No TANGENT attribute is needed on the geometry: the frame is derived in the shader from the surface itself. |
| normalScale | Float | How strongly the normal map bends the surface normal. 1 is the map as authored, 0 falls back to the geometry's own normal, and higher values exaggerate the detail. Negative values invert it, which is the fix when a map was baked with the opposite green-channel convention. |
| transparencyMode | UInt8 AUTO · OPAQUE · MASK · BLEND | Whether this material is drawn in the opaque pass or through order-independent transparency. AUTO decides from the material itself, which for most materials means its colour alpha below 1. OPAQUE always draws in the opaque pass and ignores alpha entirely, which is what you want for a material whose alpha is incidental. MASK draws in the opaque pass but throws away fragments below alphaCutoff, which is what hard-edged cutouts want: they still write depth, so they occlude each other correctly. BLEND always goes through transparency, which is the only way to get soft texture alpha to show, since nothing on the CPU side can inspect the texels. |
| alphaCutoff | Float | In MASK mode, the alpha below which a fragment is thrown away entirely. It applies to the shadow the object casts as well as to the object, so a cutout leaf casts a leaf-shaped shadow rather than a rectangle. Only used when transparencyMode is MASK. |
| sides | UInt8 FRONT · BACK · BOTH | Which side of each triangle is drawn. FRONT draws the outward-facing side only, which is what a closed mesh wants: its inner surface is hidden anyway, so drawing it is wasted work. BACK draws the inward-facing side, for a surface seen from the inside such as a skydome or a box the camera sits in. BOTH draws either side, which is what an open single surface needs: a cutout leaf, a sheet of cloth, or a plane the camera can walk around, all of which disappear from one side under FRONT. The shadow pass follows BOTH so an open surface still casts a shadow whichever way it faces the light, and draws FRONT otherwise. |
This page is generated from the engine, so it describes the release you can download. The same text is in the editor's Help panel next to the node itself.