私はシェーダー プログラムをゼロから作成することを学んでおり、現在は拡散照明を使用しています。現在、方程式は
Diffuse Intensity = Intensity of light * 'k' diffuse constant of material * (dot product of surface's normal vector and light direction vector)
問題は、白い素材の場合、k 定数は 1 であり、素材が黒い場合、k は 0 であると読んだことがあります。これは、現実の世界の場合ではありません。なぜなら、私の黒いオブジェクトは、光にさらすと明るくなるからです。ソース。なぜアルゴリズムはこのようなものですか?
UnityでGLSLを書く方法を教えているこのリンクから勉強しています。Unity でシェーダーを使って実験しやすいようにシーンをセットアップできます。 http://en.wikibooks.org/wiki/GLSL_Programming/Unity/Diffuse_Reflection