Qt OpenGL 使用纹理

Qt OpenGL 使用纹理



一、加载纹理



Qt使用QImage类来加载计算上面的纹理文件:
头文件:#include<QImage>

/*
* 1.Qt加载本地纹理;
* 2.转换为OpenGL格式纹理;
*/
QImage texture, buffer;
buffer.load( "./data/tex.png" );
texture = QGLWidget::convertToGLFormat( buf );//转换为OpenGL支持的格式

二、OpenGL设置纹理

/*
*	1.创建纹理数量;
*	2.绑定纹理到目标纹理上;
*	3.创建纹理;
*	4.设置纹理过滤,放大缩小;
*/
	glGenTextures( 1, &texture[0] );//创建纹理数量 :一个  。(.h) GLuint texture[1];

	glBindTexture( GL_TEXTURE_2D, texture[0] );//将纹理绑定到目标纹理上
	glTexImage2D( GL_TEXTURE_2D, 0, 3, tex.width(), tex.height(), 0,
		GL_RGBA, GL_UNSIGNED_BYTE, tex.bits() );
	glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );//滤波
	glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );

三、OpenGL初始化环境中启用纹理

glEnable( GL_TEXTURE_2D );

四、绘制纹理到图片上

glBegin( GL_QUADS );
	glTexCoord2f( 0.0, 0.0 ); glVertex3f( -1.0, -1.0,  1.0 );
	glTexCoord2f( 1.0, 0.0 ); glVertex3f(  1.0, -1.0,  1.0 );
	glTexCoord2f( 1.0, 1.0 ); glVertex3f(  1.0,  1.0,  1.0 );
	glTexCoord2f( 0.0, 1.0 ); glVertex3f( -1.0,  1.0,  1.0 );
glEnd();












评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值