Ogre的Ocean例子理解

今天把Ogre的Ocean的Shader部分代码全部看完了,总结如下:

1.在VS中通过叠加两个正弦函数计算每个顶点处的高度。

2.既然构建了顶点的位置,那么它的切空间也是不一样的,因此在VS中通过偏微分的方法计算其法线、副法线、切线构成切线空间。

3.在PS中计算发射向量,采样立方体发射贴图。

4.PS中视线方向和法线点积值决定水面颜色在深浅。

5.菲涅尔系数决定水面颜色和反射颜色比例,决定最终颜色。

 

Gerstner波和以上算法的区别是顶点的X、Y方向也在做波动。

 

posted @ 2017-01-12 17:52  LHZ593  阅读(233)  评论(0编辑  收藏  举报