Review
祝贺你走了这么远!我不确定你是否注意到了,但是在所有的照明章节中,除了一些次要的内容,比如访问统一数组,我们没有学到任何关于OpenGL本身的新知识。到目前为止,所有的照明章节都是关于操作着色器使用技术和方程来实现真实的照明效果。这再次向你展示了着色器的力量。着色器是非常灵活的,你亲眼目睹了第一手的,只有几个3D矢量和一些可配置的变量,我们能够创造惊人的图形!
最后几章你学习了颜色,Phong照明模型(包括环境,漫反射和高光照明),物体材质,可配置的光属性,漫反射和高光贴图,不同类型的灯,以及如何结合所有的知识到一个单一的完全照明的场景。一定要尝试使用不同的灯光、材质颜色、光线属性,并尝试用一点创意来创建你自己的环境。
在接下来的章节中,我们将添加更多的高级几何形状到我们的场景中,看起来真的很好,照明模型我们已经讨论过。
Glossary
Color vector
:颜色矢量:通过红、绿、蓝组件的组合来描绘现实世界中大多数颜色的矢量(缩写为RGB)。物体的颜色是物体没有吸收的反射颜色成分。Phong lighting model
:Phong照明模型:通过计算环境、漫射和镜面组件来模拟真实世界的照明模型。- 环境照明
Ambient lighting
:通过给每个物体一个小的亮度来近似全局照明,这样物体如果不直接照明就不会完全黑暗。 - 漫反射阴影
Diffuse shading
:顶点/片段与光源对齐的越多,光线就越强。利用法向量计算角度。 - 法向量:
Normal vector
:垂直于曲面的单位向量。 - 正规矩阵
Normal matrix
::一个3x3的矩阵,它是不带平移的模型(或模型视图)矩阵。当应用非均匀缩放时,它还会以这样一种方式进行修改(反向转置),使法向量面向正确的方向。否则,当使用非均匀缩放时,法向量会被扭曲。 - 高光照明
Specular lighting
::设置高光高光,当观察者观察到一个表面上的光源的反射时,设置高光高光。基于观察者的方向,光线的方向和设置高光散射量的亮度值。 - Phong阴影
Phong shading
: :Phong照明模型应用在片段着色器。 - 高洛德阴影:
Gouraud shading
: t应用于顶点着色器的Phong光照模型。使用少量顶点时产生明显的工件。获得效率的损失视觉质量。 GLSL struct
:一个类似于c的结构体,充当着色器变量的容器。主要用于组织输入、输出和制服。- 材质
Material
: :物体反射的环境色、漫反射色和高光色。这些设置对象具有的颜色。 - 光(属性)
Light (properties)
:光的环境强度、漫射强度和镜面强度。这些可以采取任何颜色值和定义在什么颜色/强度的光源照射每个特定的Phong组件。 - 漫反射贴图
Diffuse map
:为每个片段设置漫反射颜色的纹理图像。 - 高光贴图
Specular map
:设置每个片段高光强度/颜色的纹理贴图。允许高光只在一个对象的特定区域。 - 方向光
Directional light
:只有一个方向的光源。它被建模为在一个无限的距离,有这样的效果,它所有的光线看起来是平行的,因此它的方向矢量在整个场景中保持不变。 - 点光源
Point light
:场景中一个位置的光源,其光线在距离上渐隐。 - 衰减
Attenuation
:光在距离上减弱强度的过程,用于点光和聚光灯。 - 聚光灯
Spotlight
:在一个特定方向上由一个圆锥定义的光源。 - 手电筒
Flashlight
:从观众的角度放置的聚光灯。 - 统一数组
GLSL uniform array
::由统一值组成的数组。工作原理与c数组一样,只是它们不能动态分配。