OpenGL ES 2.0 - 光照

时间:2021-12-08 05:00:21

光照

曲面物体的构建

球体构建的基本原理

OpenGL ES任何形状的3D物体都是用三角形拼凑而成的,因此构建曲面物体最重要的就是
找到将曲面恰当拆分成三角形的策略.最基本的策略就是首先按照一定的规则将物体按行
列两个方向进行拆分.这时就可以得到很多的小四边形.然后再将每个小四边形拆分成两个
三角形.
球面首先被按照纬度(行)和经度(列)的方向拆分成了很多的小四边形.每个小四边形又被拆分
成两个小三角形.三角形的每个顶点的坐标都可以用解析几何的公式计算:
x=R×cosα×cosβ
y=R×cosα×sinβ
z=R×sinα
公式给出的是当求的半径为R,纬度为 α ,经度为 β 处于球面上顶点坐标的计算公式.

基本光照效果

OpenGL ES 2.0采用的光照模型相对现实世界进行简化,将光照分成了3中组成元素
包括环境光,散射光以及镜面光.

环境光

指的是四面八方照射到物体上,全方位360度都均匀的光.
最大的特点:不依赖光源的位置,而且没有方向性.
OpenGL ES 2.0 - 光照
计算环境光的数学模型:

=×

散射光

从物体表面向全方位360度均匀反射的光
OpenGL ES 2.0 - 光照
散射光具体计算公式:
其中设光照入射角为 α .

=××max(cosα,0)

实际开发分两步计算
=×max(cosα,0)

=×

提示:材质的反射系数实际指的就是物体被照射处的颜色,散射光强度指的是散射光中RGB(红,绿,蓝) 3 个色彩
通道的强度.

需要加强

向量的运算与转变

光照模块需要恶补大量数学几何知识,未完待续.