【openGL2021版】创建UI纹理类

本文介绍了如何使用OpenGL创建2D UI纹理类。内容包括回顾上周实现的FPS摄像机控制和天空盒背景,详细讲解了UI纹理类的创建过程,包括设置纹理对象、设置显示大小及绘制方法。在绘制时,关闭灯光,开启混合模式以适应带有透明通道的图片。最终展示了实现的效果。
摘要由CSDN通过智能技术生成

【openGL2021版】创建UI纹理类

      大家好,我是Lampard猿奋~

      欢迎来到船新的openGL基础系列的博客,今天主要实现的是创建2D的UI纹理类

  

 (1)上周demo回顾

      上周我们已经实现了FPS式的摄像机控制,键盘的“WSAD”可以控制摄像头的前后左右移动,鼠标右键可以控制摄像头旋转,并且给demo加了天空盒背景

      整个demo看起来就有点像样了,可是一款游戏肯定是有许多UI控件的,以前开发的时候利用引擎封装好的类就很容易创建出一个UI图片,今天尝试利用openGL固定管线的接口封装一个UI的纹理类

 (2)创建UI纹理类

      其实创建一个图片我们之前是尝试过的,主要就是通过glBegin(GL_QUADS)来绘制一个矩形,在绘制之前绑定好要绘制的纹理ID即可。而我们现在需要做的仅仅是将这些步骤做成通用的。纹理类的成员有一下这些

       首先有一个纹理对象记录绑定的纹理,然后提供两个接口分别是SetTexture来设置我们的纹理对象,以及设置我们这个纹理对象展示出来的大小,最后是一个绘制的方法draw

       设置纹理对象的接口就不说了,设置展示的纹理大小,主要是通过四个参数纹理的x,y坐标以及展示的宽高来进行换算,把矩形四个点绘制的x,y给计算出来,留待draw时候进行调用

      绘制函数中,首先是关闭了灯光以及开启了混合模式GL_BLEND,这样操作的原因是UI控件一般不受光线影响,其次是我们选择的图片有可能有alpha的通道,那么如果不选用混合模式就会把多余的边框显示出来

      然后就是把自身的纹理ID绑定到openGL中取,绘制一个矩形。在绘制之前PushMatrix是很有必要的,最后我们看看效果

 好啦今天就到这里

点赞,关注!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lampard杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值