本篇是复习篇,将光照部分的关键概念做一个整理
祝贺你能坚持到这里,如果你能从第一篇文章开始看到这一篇,那么我要郑重的说一句:同志,你辛苦了,不仅是学习OpenGL的不易,还有就是忍受笔者粗糙的表述。同时,感谢你一直以来的关注,你的关注对我而言就是最大的鼓励。
言归正传,进入光照章节后我们并没有将什么关于OpenGL的知识,唯一的一点新内容也是怎么设置uniform数组元素(汗~)。所有的章节都是围绕如何使用着色器来获得逼真的光照效果,通过这些章节,我们看到了着色器确实是一个非常强大的东西。你见证了用几个3D向量和一些可配置的变量创造出惊人图形效果的过程!
之前的几章中,我们学习了颜色、冯氏光照模型(包括环境光、漫反射和镜面高光),物体材质,光源属性,漫反射和镜面高光贴图,不同的光源模型,以及如何将所有的这些东西融合到一个应用中。尝试不同的光照,材质颜色和光源属性,你会看到不一样的场景。
摘要
- 颜色向量:通过红、绿、蓝三个分量表示自然界中的绝大多数颜色效果。物体的颜色本质上是其反射不同颜色光多少的属性。
- 冯氏着色模型:通过一个环境光、漫反射光和镜面高光来模拟真实世界中的光照的方法。
- 环境光:场景中不管怎样都会存在的一种微弱的光。
- 漫反射光:漫反射光会随着片元靠近光源而变量。需要法线来计算角度值。
- 法向量:垂直于表面的一个单位向量
- 法向量矩阵:随着模型变换而进行变换的矩阵,用于保持与原顶点的垂直。
- 镜面高光:类似于镜面反射的效果,物体上有一圈非常亮,做镜面反射的部分。
- 材质:物体反射环境光、漫反射光和镜面高光的程度。
- 光源:带有环境光、漫反射光和镜面高光强度的一个结构。
- 漫反射贴图:一张纹理图,用于设置每个片元的漫反射属性。
- 镜面高光贴图:一张纹理图,用于设置每个片元的镜面高光属性。
- 方向光:只有方向的光源。用于模拟类似阳光等从非常远的距离上过来的光。
- 点光源:类似点灯,有一个位置,光照强度会随着距离增大而减小。
- 聚光灯:有位置有方向的一个光源,光照限制在一定的范围内,并且强度会随着距离的增大而减小,像是手电筒。
参考资料
www.learnopengl.com(非常好的网站,建议学习)