Gregory Igehy

Dancing at hemisphere coordinate

Notes of Substance PBR(physically based rendering) shader

(a) UV shifting with relief mapping

  • linear and binary search to calculate ray intersection with height_map

(b) 2 point light

  • Diffuse direct lighting : Lambert
  • Specular direct lighting : F(Schlick with Spherical Gaussian approximation), G(Schlick with Smith-like choise of k. [UE4]), D(GGX [UE4])

(c) 1 Image based lighting

  • Diffuse indirect lighting : Irradiance SH from EnvMap
  • Specular indirect lighting : Importance sampling of EnvMap based on GGX with QMC using Hammersley 2D samples [UE4] with "Horizon Occlusion for Normal Mapped Reflections"

(d) Emission

  • emission_texture * emission_intensity

The difference between relief mapping and Parallax Occlusion Mapping


  • Relief Mapping : linear and binary search, hard shadow
  • Parallax Occlusion Mapping : linear search with surface-ray intersection, soft shadow