计算机图形学

Shading 着色

最常见的着色算法

Flat shading 平面着色

根据每个三角形法线计算着色效果

Gouraud shading 逐顶点着色

针对每个顶点计算颜色,再进行线性插值得到片元颜色

Lambert Shading 光照着色

与Gouraud shading非常相似的模型,
同样使用逐顶点计算光照,再进行片元差值的方法

Phong shading 逐片元着色

针对三角形每个片元进行着色计算

PBR Shading 物理渲染

Physically Based Rendering

threejs中的Shading算法

threejs中不同的材质使用的光照模型可能有所不同:

  • MeshPhongMaterial使用的是Phong Shading
    • 可以通过开启flatShading属性,使用平面渲染
  • MeshStandardMaterial
    • 使用PBR模型(Cook-Torrance反射模型)
      • Physically Based Rendering 基于物理渲染
      • 更真实模拟现实中光照和材质的相互作用
      • 考虑了光的漫反射、镜面反射、金属度等物理属性
  • MeshLambertMaterial 使用的是 Lambert Shading
几种材质的比较
几种材质的比较