Nodes/WAS Node Suite v3/Three Standard Material
ComfyUI Node Runs on cloud

Three Standard Material

The workhorse PBR surface — start here

By WASasquatch·Created 3 years ago·Updated 4 days ago· 1,844
Three Standard Material
  • map
  • normal_map
  • roughness_map
  • metalness_map
  • emissive_map
  • alpha_map
  • bump_map
  • displacement_map
  • ao_map
  • material
color#ffffff
roughness0.50
metalness0.00
emissive#000000
emissive_intensity1.00
opacity1.00
transparentfalse
wireframefalse
sidefront
normal_scale1.00
bump_scale1.00
displacement_scale0.10
displacement_bias0.00
ao_intensity1.00

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_scale sets 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 emissive color and its intensity.
  • alpha_map - greyscale opacity; only does anything once transparent is 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.

CategoryWAS Suite/Three

Inputs (23)

NameTypeDefaultDescription
colorSTRING#ffffffBase colour as hexadecimal. #ffffff is white, #d8b24a gold, #4aa3d8 sky blue.
roughnessFLOAT0.500–1How scattered reflections are. 0.0 is a mirror, 0.25 polished metal, 1.0 chalk.
metalnessFLOAT0.000–1How metallic the surface reads. 0.0 for plastic and cloth, 1.0 for bare metal.
emissiveSTRING#000000Colour the surface gives off on its own, as hexadecimal. #000000 emits nothing.
emissive_intensityFLOAT1.000–100How strongly the emissive colour shows. 1.0 matches it, 5.0 blooms under tone mapping.
opacityFLOAT1.000–1How solid the surface is, once transparent is on. 1.0 is opaque, 0.35 is glassy.
transparentBOOLEANfalse`true` honours opacity and an alpha map; `false` draws the surface fully solid.
wireframeBOOLEANfalse`true` draws the triangle edges instead of filled faces; `false` draws solid faces.
sideCOMBOfrontWhich faces are drawn. 'front' for closed shapes, 'double' for planes seen from behind.
normal_scaleFLOAT1.00-10–10How strongly the normal map bends the surface. 1.0 is as authored, 0.0 flat, -1.0 inverted.
bump_scaleFLOAT1.00-10–10How deep the bump map reads. 1.0 is as authored, 0.2 is a subtle grain.
displacement_scaleFLOAT0.10-100–100How far the displacement map moves vertices, in scene units. 0.1 is gentle relief.
displacement_biasFLOAT0.00-100–100Shifts the whole displacement. -0.05 with a scale of 0.1 centres the movement on the original surface.
ao_intensityFLOAT1.000–10How strongly the ambient occlusion map darkens. 1.0 is as authored, 0.0 off.
mapoptTHREE_TEXTUREAlbedo texture. Its colour replaces the colour swatch per pixel.
normal_mapoptTHREE_TEXTURETangent space normals, as the usual blue-violet image. Fakes surface detail without geometry.
roughness_mapoptTHREE_TEXTURERoughness per pixel, read from the green channel. Black is a mirror, white is chalk.
metalness_mapoptTHREE_TEXTUREMetalness per pixel, read from the blue channel. Black is dielectric, white is metal.
emissive_mapoptTHREE_TEXTUREWhere the surface glows. Multiplied by the emissive colour and its intensity.
alpha_mapoptTHREE_TEXTUREOpacity per pixel, read as greyscale. Needs transparent on to have any effect.
bump_mapoptTHREE_TEXTUREHeight as greyscale, faked in the shading alone. Cheaper than a normal map and softer.
displacement_mapoptTHREE_TEXTUREHeight as greyscale, moving real vertices. Needs a geometry with segments to move, such as 64 by 64.
ao_mapoptTHREE_TEXTUREBaked shadow in creases, read from the red channel. Black is fully occluded, white is open.

Outputs (1)

NameTypeDescription
materialTHREE_MATERIALThe surface, for the material socket on Three Mesh.