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