🎨 物理ベースライティング(PBR)

Lambert反射(拡散反射)
光が当たった面の明るさを計算。
diffuse = max(dot(normal, lightDir), 0.0)
Specular反射(鏡面反射)
光沢のあるハイライトを計算。
specular = pow(max(dot(normal, halfDir), 0.0), shininess)
環境光(Ambient)
全体の明るさ。影の部分も見えるようにする。
ambient = 0.5
最終合成
すべての光を合成して最終的な色を計算。
result = ambient + diffuse + specular