【openGL2021版】创建地板图层
大家好,我是Lampard猿奋~
欢迎来到船新的openGL基础系列的博客,今天主要实现的是创建地板图层
(1)上周demo回顾
上周已经实现了封装2d的纹理类,给demo加了一个小Logo。接下来要给这个项目加一个地板并实现倒影的效果
(2)创建地板图层
同样创建一个类来定义这个地板图层,这个地板类中有Init方法,其主要内容是初始化显示列表,然后有一个draw方法,在实际渲染的时候取进行调用
(1)Init方法
首先需要申明一个显示列表,然后把我们的地板的实现写在里面。其实现逻辑也很简单,就是在X方向和Z方向去创建一个个正方形,然后为了地板快容易区分,我们采用了黑白相间的方式
(2)draw方法
为了确保绘制的图形在天空盒之前,所以draw函数首先需要关闭深度缓冲
(3)在main中创建ground对象并绘制
(3)创建地板倒影
创建镜面倒影的效果其实也很简单,我本来响再创建一个模型的,但是木有必要,只要就是把创造出来的模型沿着Z轴旋转180度,然后位置调下一点后再绘制另一边就好了
这样出来的图象有点问题,我发现地板把倒影给遮住了,而且倒影按道理不应该那么亮才对,所以应该在绘制之前把深度缓冲关闭,然后再想2d的UI纹理那样打开混合模式Blend,设置其透明度,最后看看结果