投影学习

摄像机的设置

随着摄像机的位置,姿态不同,对同一场景中拍摄的画面也不同


投影学习
 


投影学习

 

 


投影学习
 


投影学习
 


 

 

投影

根据应用程序的投影矩阵,管线中会确定一个可视区域,叫做视景体只在这个空间的物体才能看到,不在这视景体中的被截裁掉了

 

 

 

光照(定位光,传递光源位置给顶点着色器)

环境光 


投影学习
 

散射光(与 光源位置,顶点位置,顶点法向量 有关)


投影学习
 

投影学习
 
 

投影学习
 
方案:

设置求出

光源位置,顶点位置 和 顶点法向量后一并传入 顶点着色器

在顶点着色器内求出变换矩阵后的法向量并规格化,

顶点着色器内求出光源到变换矩阵后的表面的向量并规格化

然后运用上述散射光强度公式,求出要传给片元着色器的光照强度

 

 

 

镜面光(摄像机位置,光源位置,顶点位置,顶点法向量 有关

 

投影学习
 
投影学习
 
投影学习
 
 方案:

求半向量:首先将v和L规格化,然后将规格化后的v与L求和再次规格化后即求得半向量

设置求出

摄像机位置,光源位置,顶点位置 和 顶点法向量后一并传入 顶点着色器

在顶点着色器内求出变换矩阵后的法向量并规格化,顶点着色器内求出摄像机到变换矩阵后的表面的向量并规格化 Veye

顶点着色器内求出光源到变换矩阵后的表面的向量并规格化   Vp

Veye+Vp规格化后求出 半向量

设置粗糙度

然后运用上述镜面光强度公式,求出要传给片元着色器的光照强度

 

 

3种光的结合

将环境光,散射光,镜面光三者的光强度分别求得然后最后相加到一起

即将3种光结合起来

 

 

(定向光,传递光源方向给顶点着色器)

在顶点着色器直接规格化光源方向即可得出vp

(注意之前的定位光,是要将光源位置和3D物体表面来求出光方向向量,这里直接用光方向求出)

vec3 vp= normalize(lightDirection);  //规格化定向光方向向量

其他环境光,散射光,镜面光三者的光强度的求解类似之前