opengles 投影

摄像机的设置

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



 


 

 



 



 


 

 

投影

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

 

 

 

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

环境光 



 

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



 


 
 


 
方案:

设置求出

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

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

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

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

 

 

 

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

 


 

 

 
 方案:

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

设置求出

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

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

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

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

设置粗糙度

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

 

 

3种光的结合

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

即将3种光结合起来

 

 

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值