Color

🧊

用乘法模拟颜色:光的颜色×物体表面颜色=可见颜色

[Unity Shader入门精要.pdf](Unity Shader入门精要.pdf)

通过Uniform将颜色传入Shader,Fragment Shader中对光、物体、贴图颜色做乘法,得到一个vec4即为最后得到的颜色。

Basic Lighting

补充:gl_Position

是GLSL的一种内建变量

GLSL有几个以**gl_**为前缀的变量,使我们有一个额外的手段来获取和写入数据。其中两个我们已经打过交道了:gl_Positiongl_FragCoord,前一个是顶点着色器的输出向量,后一个是片段着色器的变量。 来源:LearnOpenGL

gl_Position是顶点着色器裁切空间输出的位置向量。

Diffuse Color

模拟光源对物体的方向性影响

Lanbert模型开始:

入射光与法线内积,得到所见亮度

Step by step

Only Ambient

FragColor = vec4(objectColor * ambientColor, 1.0);

Untitled