参考教程
学习记录
这篇文章种我们介绍云的实现,本篇代码基于上一篇,新增 SkyPlaneClass 和 SkyPlaneShaderClass 。
我们实现云效果的原理则是一个弧面模型,然后使用云的贴图即可,在 SkyPlaneClass 种我们负责弧面模型的创建等,其声明如下:
1 | //////////////////////////////////////////////////////////////////////////////// |
比起其他模型类其实差不多,我们使用 m_translationSpeed 等数据控制云的移动,在 skyplane.ps 中实现:
1 | //////////////////////////////////////////////////////////////////////////////// |
而 SkyPlaneShaderClass 则是和其他 shader 类相同负责 skyplane 着色器的编译等,其声明如下:
1 | //////////////////////////////////////////////////////////////////////////////// |
最后我们在 ShaderManagerClass 中创建 SkyPlaneShaderClass 的对象以及添加对应的渲染方法,在 Zone 中负责 SkyPlane 对象的初始化等等,最后在 Render 里渲染。需要开启透明和关闭背面剔除,因为我们在弧面的内侧。
最终效果如下:
