Skip to Content
DocumentationFeaturesSpecular Highlights

Specular Highlights

Genesis decouples specular from the PBR roughness pipeline so you can tune the highlight independently of the rest of the lighting model. Pick from GGX, Blinn-Phong, anisotropic, or a hard toon shape, and tint each one without affecting albedo.

When to use it

  • Metals — GGX with low roughness; intensity follows energy conservation.
  • Hair and brushed metal — anisotropic, stretched along the tangent.
  • Toon characters — hard toon spec that reads as a single ink shape.
  • SFX — disable specular entirely on dissolves, holograms, and wireframes.

Modes

  • GGX — the physically grounded default; pairs with metallic/smoothness inputs and the URP standard BRDF.
  • Stylized / Toon — a smoothstep against NdotH produces a hard shape. Pairs with Cel Shading for the canonical toon look.
  • Anisotropic — stretches the lobe along the tangent or bitangent for hair, brushed metal, and silk.
Screenshot

Three identical spheres under the same light, one per specular model — a soft GGX lobe, a hard-edged Stylized toon shape, and a stretched Anisotropic streak — each labelled with its model name.

features/specular/specular-models.png

A soft, energy-conserving lobe scaled by roughness.

A hard-edged ink shape with a single threshold and ink-toned tint.

GGX (PBR)
Toon · Stepped

The same light and roughness; only the specular model changes. Drag to compare.

Properties

Inspector labelShader propertyTypeDefaultDescription
Specular Model_SpecularModelEnumGGXGGX, BlinnPhong, Stylized, or Anisotropic.
Specular Color_SpecularColorColorRGB(1,1,1)Highlight tint.
Power_SpecularPowerFloat (1–256)32Hardness for Blinn-Phong and Stylized.
Smoothness_SpecularSmoothnessFloat (0–1)0.5Roughness for GGX. 0 = mirror, 1 = matte.
Intensity_SpecularIntensityFloat (0–8)1.0Overall lobe strength.
Anisotropy_AnisotropyAmountFloat (-1–1)0.0Negative stretches along the bitangent.
Step Threshold_SpecularStepThresholdFloat (0–1)0.5Stylized mode: where the hard edge sits.
Step Smoothness_SpecularStepSmoothnessFloat (0–1)0.02Anti-alias width of the toon edge.

Usage

  1. Pick the Specular Model that matches the surface — GGX for most things, Stylized for toon.
  2. Set Specular Color to the light tint (white for sunlight, warm for fire, cool for moon).
  3. Tune Power or Smoothness until the shape reads right.
  4. For hair, enable Anisotropic and verify the mesh tangents are aligned along the strand.
material.SetFloat("_SpecularModel", 2); // Stylized material.SetFloat("_SpecularStepThreshold", 0.7f); material.SetColor("_SpecularColor", new Color(1f, 0.95f, 0.85f));

Tips & gotchas

  • Anisotropic requires mesh tangents; Unity will not generate them for procedural meshes, so recalculate or import with tangents enabled.
  • Stylized spec ignores Smoothness — use the Step Threshold instead.
  • GGX is the only model that obeys energy conservation; the others can over-brighten if pushed.
  • GGX is fine on mobile, but anisotropic adds 2–3 ALU per pixel, so budget accordingly.
  • Cel Shading — pair with stylized spec for the toon stack.
  • Rim Lighting — fresnel edge layered on top of spec.
  • Iridescence — view-angle color shift on the highlight.
  • MatCap — fake spec without a light source.
Last updated on