【openGL2021版】创建UI纹理类

【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是很有必要的,最后我们看看效果

 好啦今天就到这里

点赞,关注!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: QML是一种用户界面定义语言,用于快速和轻松地创建跨平台的应用程序界面。与传统的图形对话框编程不同,QML通过使用声明性语法和元素组件来描述应用程序的图形界面。这使得界面的设计变得更加直观和易于理解。 OpenGL是一个用于开发图形应用程序的跨平台编程接口。它提供了一套功能强大的图形函数,可用于绘制2D和3D图形。OpenGL可以用于各种用途,如游戏开发、虚拟现实、数据可视化等。 在QML中使用OpenGL可以实现更高级的视觉效果和图形渲染。QML提供了一个OpenGL组件,可以轻松地将OpenGL内容嵌入到QML界面中。在QML中使用OpenGL,可以利用OpenGL的强大功能来实现复杂的图形效果和互动。 为了学习QML和OpenGL的结合使用,可以参考一些教程和文档。Qt官方网站提供了丰富的教程和示例,包括了使用QML和OpenGL的示例代码和文档。此外,还有一些第三方资源提供了有关QML和OpenGL的教程和示例代码。 学习QML和OpenGL的结合使用需要对QML和OpenGL的基础知识有一定的了解。首先,需要学习QML的语法和基本概念,如元素、属性和信号。然后,可以学习OpenGL的基本概念和函数,并了解如何在QML中使用OpenGL。 总之,QML和OpenGL的结合使用可以帮助我们创建更强大、更复杂的图形界面和视觉效果。通过学习相关教程和文档,我们可以掌握如何在QML中使用OpenGL,并利用其强大的功能来实现各种图形效果。 ### 回答2: QMl是一种用于创建用户界面的声明性语言,而OpenGL是一种用于实现3D图形渲染的开放图形库。结合起来,QML+OpenGL可以用于创建具有高效的3D图形渲染和动画效果的用户界面。 QML可以通过声明式的方式创建用户界面元素,并且具有良好的可视化能力和易于理解的语法。它支持丰富的UI控件和交互方式,同时还能轻松集成JavaScript代码来实现复杂的逻辑运算。在使用QML创建界面时,可以使用Qt Quick Controls提供的控件库或者自定义控件来满足特定需求。 而OpenGL是一种底层的图形库,用于实现高性能的3D图形渲染。通过OpenGL,可以直接进行硬件加速的图形操作,同时还可以利用图形硬件的强大计算能力,实现复杂的图形效果和计算。OpenGL提供了多种绘制图形的函数和接口,可以绘制点、线、多边形等不同型的图形,并且可以进行纹理贴图、光照、阴影等高级渲染效果的实现。 QML+OpenGL的结合可以实现更为灵活且高效的用户界面设计。通过QML可以创建用户友好的界面元素,而OpenGL则可以在这些界面上实现更为复杂的3D图形渲染效果。在QML中,可以通过OpenGL的接口进行绘制和渲染操作,同时还可以将OpenGL渲染的结果嵌入到QML中,与其他界面元素进行交互。因此,通过学习QML+OpenGL教程,可以掌握如何使用QML和OpenGL结合起来创建出更为丰富和具有吸引力的用户界面。 ### 回答3: QML和OpenGL是两个不同的技术,但可以结合使用来创建各种交互式和图形密集型应用程序。下面是关于QML和OpenGL的简要介绍: QML是一种声明式的用户界面语言,用于创建功能丰富、跨平台的应用程序。它使用一种似于JSON的语法来描述用户界面,可以通过编写更少的代码实现复杂的交互效果。QML具有良好的可扩展性和可重用性,并且易于理解和学习。它是Qt框架的一部分,因此可以与C++和其他Qt模块(如QtQuick)进行混合编程。 OpenGL是一种跨平台的图形库,用于渲染3D图形和执行其他图形操作。它提供了一套功能强大的API,可以绘制复杂的图形和执行高性能的计算。OpenGL可用于在各种设备上实现流畅的图形渲染,包括计算机、移动设备和嵌入式系统等。它支持多种图形效果,如阴影、反射、纹理映射和动画等。 QML和OpenGL可以结合使用来创建更具吸引力和交互性的用户界面。通过将QML和OpenGL结合起来,可以在QML界面中嵌入OpenGL渲染区域,并通过QML的声明式语法控制OpenGL渲染的效果和交互行为。这种混合编程的方法将QML的易用性和OpenGL的功能强大结合在一起,可以实现更高级的图形效果和用户交互。 总结而言,QML和OpenGL都是强大的技术,分别用于创建用户界面和图形渲染。结合使用它们可以实现各种复杂的应用程序,并为用户提供更好的视觉体验和交互性。如果您对QML和OpenGL有兴趣,可以参考官方文档和教程,以了解更多详细信息和开始使用它们。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Lampard杰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值