Three Standard Material
The workhorse PBR surface — start here
- map
- normal_map
- roughness_map
- metalness_map
- emissive_map
- alpha_map
- bump_map
- displacement_map
- ao_map
- material
If you only learn one material node in the WAS Node Suite Three family, make it this one. WASThreeStandardMaterial is the everyday PBR surface - plastic, cloth, metal, wood, chalk - and it's what you'll put on 90% of your meshes. Its sibling Three Physical Material exists for glass, paint and soap bubbles, but until you need those, this node plus a light is how a scene stops looking like a wireframe and starts looking like an object.
How it works
The core model is three sliders: color (hex, the base tint), roughness (0.0 is a mirror, 0.25 polished metal, 1.0 chalk), and metalness (0.0 for plastic and cloth, 1.0 for bare metal). That trio alone gets you shockingly far - a low-roughness high-metalness surface reads as polished steel, a high-roughness low-metalness one reads as matte plastic. Everything else on the node is detail on top of that model.
The textures that matter
The map inputs accept THREE_TEXTURE values straight off the pack's texture nodes, and each one knows which channel it reads:
- map - albedo, replacing the color swatch per pixel.
- normal_map - the usual blue-violet tangent-space image that fakes surface detail.
normal_scalesets how hard it pushes (1.0 as authored, 0.0 flat). - roughness_map - reads the green channel (black mirror, white chalk).
- metalness_map - reads the blue channel (black dielectric, white metal).
- emissive_map - where the surface glows, multiplied by the
emissivecolor and its intensity. - alpha_map - greyscale opacity; only does anything once
transparentis on. - bump_map - greyscale height faked in shading. Cheaper and softer than a normal map.
- displacement_map - greyscale height that moves real vertices. Needs a geometry with segments to move - a 1×1 plane has nowhere to go.
- ao_map - baked crease shadow in the red channel.
The channel rules are the kind of detail that bites beginners, so it's worth internalizing: roughness in green, metalness in blue, AO in red. If a surface looks wrong, check you've loaded each map into the right socket and set the texture's color space to linear for the data maps (see Three Texture From Image).
The inputs people miss
wireframe draws the triangle edges instead of filled faces - fun for an exploded-view aesthetic, and a fast way to check a geometry's topology. side set to "double" is what keeps a plane visible from behind. And transparent plus opacity are the simple version of see-through: turn transparent on, drop opacity to 0.35, and you've got glassy - without the refraction that Three Physical Material's transmission gives you.
Where it fits
Standard Material → Three Mesh, alongside a light. It's also a first-class input to Three Material Mix, so you can stack it as the base or top of a blended surface.
Install
WASThreeStandardMaterial ships with WAS Node Suite v3. Install via ComfyUI Manager (search WAS Node Suite v3) or:
cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui.git
Restart after. Requires ComfyUI 0.14.0+ and Python 3.10+. If the node's missing, set features.threejs: true in <ComfyUI user dir>/was-node-suite/config.yaml and restart - that key gates the whole Three family.
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| color | STRING | #ffffff | Base colour as hexadecimal. #ffffff is white, #d8b24a gold, #4aa3d8 sky blue. |
| roughness | FLOAT | 0.500–1 | How scattered reflections are. 0.0 is a mirror, 0.25 polished metal, 1.0 chalk. |
| metalness | FLOAT | 0.000–1 | How metallic the surface reads. 0.0 for plastic and cloth, 1.0 for bare metal. |
| emissive | STRING | #000000 | Colour the surface gives off on its own, as hexadecimal. #000000 emits nothing. |
| emissive_intensity | FLOAT | 1.000–100 | How strongly the emissive colour shows. 1.0 matches it, 5.0 blooms under tone mapping. |
| opacity | FLOAT | 1.000–1 | How solid the surface is, once transparent is on. 1.0 is opaque, 0.35 is glassy. |
| transparent | BOOLEAN | false | `true` honours opacity and an alpha map; `false` draws the surface fully solid. |
| wireframe | BOOLEAN | false | `true` draws the triangle edges instead of filled faces; `false` draws solid faces. |
| side | COMBO | front | Which faces are drawn. 'front' for closed shapes, 'double' for planes seen from behind. |
| normal_scale | FLOAT | 1.00-10–10 | How strongly the normal map bends the surface. 1.0 is as authored, 0.0 flat, -1.0 inverted. |
| bump_scale | FLOAT | 1.00-10–10 | How deep the bump map reads. 1.0 is as authored, 0.2 is a subtle grain. |
| displacement_scale | FLOAT | 0.10-100–100 | How far the displacement map moves vertices, in scene units. 0.1 is gentle relief. |
| displacement_bias | FLOAT | 0.00-100–100 | Shifts the whole displacement. -0.05 with a scale of 0.1 centres the movement on the original surface. |
| ao_intensity | FLOAT | 1.000–10 | How strongly the ambient occlusion map darkens. 1.0 is as authored, 0.0 off. |
| mapopt | THREE_TEXTURE | Albedo texture. Its colour replaces the colour swatch per pixel. | |
| normal_mapopt | THREE_TEXTURE | Tangent space normals, as the usual blue-violet image. Fakes surface detail without geometry. | |
| roughness_mapopt | THREE_TEXTURE | Roughness per pixel, read from the green channel. Black is a mirror, white is chalk. | |
| metalness_mapopt | THREE_TEXTURE | Metalness per pixel, read from the blue channel. Black is dielectric, white is metal. | |
| emissive_mapopt | THREE_TEXTURE | Where the surface glows. Multiplied by the emissive colour and its intensity. | |
| alpha_mapopt | THREE_TEXTURE | Opacity per pixel, read as greyscale. Needs transparent on to have any effect. | |
| bump_mapopt | THREE_TEXTURE | Height as greyscale, faked in the shading alone. Cheaper than a normal map and softer. | |
| displacement_mapopt | THREE_TEXTURE | Height as greyscale, moving real vertices. Needs a geometry with segments to move, such as 64 by 64. | |
| ao_mapopt | THREE_TEXTURE | Baked shadow in creases, read from the red channel. Black is fully occluded, white is open. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| material | THREE_MATERIAL | The surface, for the material socket on Three Mesh. |