光照

2020-04-17  本文已影响0人  tp夕阳武士
1.光照基础

OpenGL 提供了基本的光照情况():

image.png

如上图所示:

2.材质属性
3.光照计算
3.1环境光

公式:环境光 = 光源的环境光颜色 * 物体的材质颜色

3.2发射光计算

公式:发射颜色 = 物体的反射材质颜色

光照的比较

image.png
3.3. 漫反射光的计算
图4-1.png 图4-2.png 图4-3.png

如上图4-3所示,有效的光照方向与物体表面的法线夹角应该是0°-90°之间的,

法线: 表示垂直于物体表面的一个垂直线,初中数学概念;

公式:
漫反射颜色 = 光源的漫反射颜色 * 物体的漫反射材质颜色 * DiffuseFactor

DiffuseFactor 表示漫反射因子;
DiffuseFactor = max(0,dot(N,L));
N: 法向量
L:入射光向量;

漫反射因子 = 取最大值(0,点乘(光源向量 * 物体表面法向量));

点乘的计算如果忘记,可以查阅:OpenGL-向量 & 矩阵;

图4-4.png
3.4镜面光的计算
image.png

镜面光计算公式:

镜面反射颜色 = 光源的镜面光颜色 * 物体的镜面材质颜色 * SpecularFactor;

SpecularFactor = power(max(0,dot(N,H)),shininess);

H: 视线向量E与光线向量L的半向量;
dot(N,H):H,N的点积几何意义,平方线与法线夹角的cos值
shininess : 高光的反射强度度; 由开发者指定;

光照计算公式:
光照颜色 = (环境颜色 + 漫反射颜色 + 镜面颜色) * 衰减因子;

衰减因子的计算:


衰减因子的计算.png
3.5 聚光灯因子
image.png image.png image.png

平行光
所有光线来源都是平行的
点光源
由一个发光点发出的光

上一篇 下一篇

猜你喜欢

热点阅读