位置: 编程技术 - 正文
推荐整理分享glGenTextures(GLsizei n, GLuint *textures)函数说明,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
glGenTextures(GLsizei n, GLuint *textures)函数说明 n:用来生成纹理名字的数量textures:存储纹理名称数组的第一个元素指针
备注说明:glGenTextures函数根据纹理参数返回n个纹理名称。纹理名称集合不必是一个连续的整数集合。因此,可能在先前调用的glGenTextures的时候没有名称集合被返回。产生纹理函数假定目标纹理的面积是由glBindTexture函数限制的。先前调用glGenTextures产生的纹理名称集不会由后面调用的glGenTextures得到,除非他们首先被glDeleteTextures删除。你不可以在显示列表中包含glGenTextures。
使用时注意:
void glGenTextures(GLsizein, GLuint *texture);
该函数用来产生纹理名称。这里纹理名称GLuint *texture是整型的,因此也可以理解为这个函数为这n个纹理指定了n个不同的ID。
在用GL渲染的时候,纹理是很常见的东西。使用纹理之前,必须执行这句命令为你的texture分配一个ID,然后绑定这个纹理,加载纹理图像,这之后,这个纹理才可以使用。加载纹理的代码如下:
BOOL LoadTextures(IplImage *pImage, GLuint *pTexture){ int Status=FALSE; if(pImage != NULL) { Status=TRUE;
glGenTextures(1, &pTexture[0]); //注意这里 glBindTexture(GL_TEXTURE_2D, pTexture[0]); glTexImage2D(GL_TEXTURE_2D, 0, 3, pImage->width, pImage->height, 0, GL_BGR, GL_UNSIGNED_BYTE, (unsigned char *)pImage->imageData); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); } return Status;}
使用上面这个函数时需要小心,这个函数只能放在循环外面使用!如果你想在循环中重复利用这个texture[0],给它加载不同的纹理(比如,你想在窗口中显示序列图像),而把这个函数放在循环内部调用的话,那么当程序循环足够多次之后,你的电脑将变得巨慢无比,甚至导致死机。原因就是反复地调用glGenTextures(1, &pTexture[0])。
OpenGL学习之glBindTexture函数 在此记录一下glBindTexture函数的作用:glBindTexture函数实现了将调用glGenTextures函数生成的纹理的名字绑定到对应的目标纹理上。该函数的声明如下所示:vo
OpenGL中创建聚光灯的效果 OpenGL中创建聚光灯的效果现在,我们使用如下的数组来指定一个光源的位置://指定光源位置的数组GLfloatlightPos[]={0.0f,0.0f,.0f,1.0f};//设置光源0的位置glLi
VTK安装详细步骤 以前安装VTK很顺,这次VTK安装很不顺。同样都是安装vtk-5..1.tar.gz版本,难道因为我这个杂牌的组装电脑配置问题?无论如何,最终还是让我折腾出来了
标签: glGenTextures(GLsizei n, GLuint *textures)函数说明
本文链接地址:https://www.jiuchutong.com/biancheng/373263.html 转载请保留说明!上一篇:Unsolved bug in fltk-1.1.10/src/filename_list.cxx for scandir --已解决!
友情链接: 武汉网站建设