设为首页 加入收藏

TOP

使用OpenGL的glBindTexture()函数需要注意
2014-11-24 07:14:57 来源: 作者: 【 】 浏览:0
Tags:使用 OpenGL glBindTexture 函数 需要 注意

由于不了解OpenGL中的glBindTexture()函数的用法,多耽误了我几个小时的宝贵时间!


glBindTexture()函数在渲染的时候调用,需要注意,一定不能放在glBegin()和glEnd()函数对中,否则函数的调用无效。下面就总结一下怎样在OpenGL中载入和显示纹理。


1、在初始化阶段,调用glGenTextures()函数产生纹理名(纹理索引),使用glBindTexture()函数绑定纹理,再用熟悉的图形加载库函数加载一个纹理,使用glTexImage2D()将数据载入至显存中;


2、在显示阶段,调用glBindTexture()函数将纹理绑定至显示上下文中,与顶点一起进入纹理贴图阶段。


下面是一段演示代码说明了怎样载入和显示纹理:


void InitGL( void )
{
glEnable( GL_TEXTURE_2D );// 启用2D纹理
glGenTextures( size, (GLuint*)&pTexture[0] );// size是大小,pTexture是纹理名指针



……
glBindTexture( GL_TEXTURE_2D, pTexture[0] );
pData = LoadImage( fileName );// 载入文件,保存至pData指针中
glTexImage2D( GL_TEXTURE_2D,// 目标
0,// 级别
internalFormat,// 纹理内部格式
width,// 纹理的宽(最好2的次方)
height,// 纹理的高(最好2的次方)
0,// 纹理的深度(最好2的次方)
0x80E1,// 纹理单元格式(GL_BGRA=0x80E1)
textureType,// 像素的数据类型
pData );// 数据指针
……
}



void RenderGL( void )
{
glBindTexture( GL_TEXTURE_2D, pTexture[0] );
glBegin( primitive );
glTexCoord( u, v );
glVertex3f( x, y, z );
……
glEnd( );
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇python paramiko模块中设置执行命.. 下一篇用Qt动画框架设计飞入-消失特效【..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·工业机器人TCP校准中 (2025-12-25 05:19:17)
·opc 通讯协议与 TCP (2025-12-25 05:19:15)
·labview中tcp/ip通信 (2025-12-25 05:19:13)
·新书介绍《Python数 (2025-12-25 04:49:47)
·怎么利用 Python 进 (2025-12-25 04:49:45)