Qt openGL 使用QImage 生成二维纹理

在Qt OpenGL项目中,为了绘制三维有限元网格图的坐标轴X Y Z字符,作者遇到平面字符无法旋转的问题。通过将字符图片转化为QImage对象并生成纹理,实现了在OpenGL中贴图显示字符。文章详细介绍了如何加载纹理、创建纹理对象以及绘制纹理的方法,以解决坐标轴字符的3D显示需求。
摘要由CSDN通过智能技术生成

实验室软件项目中需要绘制三维有限元网格图,需要使用openGL,使用OpenGL可以很方便的绘制三维模型,但在绘制坐标系轴的X Y Z字符时,我遇到了一些问题。

首先我想到了使用 Qt openGL 中自带的函数renderText():
glColor3f(1,0,0);
renderText(0,0,0,QString(“hello”));
但是这样产生的character都是“平面的”,不能随着空间坐标系进行旋转。不适合绘制坐标系轴的X Y Z字符。

于是通过网上查阅相关的资料,发现了另一中方法。就是将字符的图片导入Qt的QImage类的一个对象中,当然也可以通过QPaint直接绘制到一QImage对象中。然后在OpenGL中将QImage的对象转化为一texture,通过OpenGL中贴纹理的方式,将包含该字符的图片显示在OpenGL中。

1.在OpenGL的头文件中建立一整型的数组来存储texture。(具体怎样的机制不清楚)。这里数组长度为3,表示X Y Z 三个texture。GLuint 表示openGL 中的整型。
GLuint texture[3];

2.载入texture。 这里建立一函数来载入texture。 (OpenGL中相关的具体函数不清楚机制)。
void opengl::loadGLTextures()
{
QImage tex1,tex2,tex3,buf1,buf2,buf3;
buf1.load(“:/opengl_axis/resource/X.jpg”);
buf2.load(“:/opengl_axis/resource/Y.jpg”);
buf3.load(“:/opengl_axis/resource/Z.jpg”);

tex1=QGLWidget::convertToGLFormat(buf1);
tex2=QG

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值