一.glGenTexture函数简介

glGenTextures(GLsizei n, GLuint *textures)函数说明
 
n:用来生成纹理的数量
 
textures:存储纹理索引的

 
glGenTextures函数根据纹理参数返回n个纹理索引。纹理名称集合不必是一个连续的整数集合。
 
(glGenTextures就是用来产生你要操作的纹理对象的索引的,比如你告诉OpenGL,我需要5个纹理对象,它会从没有用到的整数里返回5个给你)
 
glBindTexture实际上是改变了OpenGL的这个状态,它告诉OpenGL下面对纹理的任何操作都是对它所绑定的纹理对象的,比如glBindTexture(GL_TEXTURE_2D,1)告诉OpenGL下面代码中对2D纹理的任何设置都是针对索引为1的纹理的。
 
产生纹理函数假定目标纹理的面积是由glBindTexture函数限制的。先前调用glGenTextures产生的纹理索引集不会由后面调用的glGenTextures得到,除非他们首先被glDeleteTextures删除。你不可以在显示列表中包含glGenTextures。
void glGenTextures(GLsizei n, GLuint *texture);

该函数用来产生纹理名称。这里纹理名称GLuint *texture是整型的,因此也可以理解为这个函数为这n个纹理指定了n个不同的ID。

二.OpenGL渲染时时使用纹理的一般步骤

在用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;
}

本文转载自:http://blog.sina.com.cn/s/blog_9f4bc8e301014gza.html

OpenGL纹理操作--glGenTextures相关推荐

  1. android openGl纹理的使用

    今天,简单讲讲android关于纹理的知识. 一.纹理的概念 纹理(texture) 在游戏制作里面指贴图,计算机图形学中的纹理既包括通常意义上物体表面的纹理即使物体表面呈现凹凸不平的沟纹,同时也包括 ...

  2. GL和DX中关于纹理操作(包括多重纹理)与混合的问题

    以前看OPENGL的时候就没有彻底搞懂纹理操作到底是怎么实现的.最近看龙书又看到纹理操作了.看来这个问题不解决不行啊.于是研究一番,略有心得,在此记下以备不时之需. 先搞清楚,目标像素就是已经存在帧缓 ...

  3. OpenGL 纹理基础与索引

    前言 OpenGL的纹理实际上运用十分广泛,是OpenGL中的重点.如果你有看过Android底层的绘制原理,能够发现实际上,一般的ui界面,Android把会把像素点当作纹理数据绘制在屏幕上. 因此 ...

  4. OpenGL纹理详解

    OpenGL纹理详解 现实生活中,纹理最通常的作用是装饰我们的物体模型,它就像是贴纸一样贴在物体表面,使得物体表面拥有图案.但实际上在OpenGL中,纹理的作用不仅限于此,它可以用来存储大量的数据,一 ...

  5. OpenGL(十四)——Qt OpenGL纹理

    OpenGL(十四)--Qt OpenGL纹理 一.纹理 终于写到纹理的部分了: 纹理(Texture)的本质是一个2D图片(1D和3D),或者叫图形数据.只是在OpenGL中专业术语中称其为纹理. ...

  6. C++ opengl 纹理生成

    程序运行截图如下: 看着很炫酷:其实是图片炫酷 程序源码如下: void Init() {glMatrixMode(GL_PROJECTION);gluPerspective(50.0f, 800.0 ...

  7. OpenGL纹理本质(三)

    几个月前调试3D纹理时发现一个有趣的问题:同样的3D HW lib库在android2.2系统上可以正常工作,但在2.3系统上却不能工作,显示的图像白屏,调试了几天才将问题定位并解决,解决方法很简单: ...

  8. openGL 纹理使用

    最近找了点资料学习了下openGL 纹理的使用 先有个 整体把握, 然后再去看大部头中的细节讲解, 感觉这样的学习方式好些 总结下纹理使用总体流程: 1 启用纹理 glEnable(GL_TEXTUR ...

  9. OpenGL 纹理过滤和 mip 贴图

    一.概念 1. 纹理过滤 当纹理贴到具体像素上时,像素需要到纹理图像中进行采样,这个过程称为纹理过滤. 纹理过滤通常有两种情况:放大(GL_TEXTURE_MAG_FILTER)和缩小(GL_TEXT ...

  10. OpenGL 纹理本质

    几个月前调试3D纹理时发现一个有趣的问题:同样的3D HW lib库在android2.2系统上可以正常工作,但在2.3系统上却不能工作,显示的图像白屏,调试了几天才将问题定位并解决,解决方法很简单: ...

最新文章

  1. ShardingSphere-Proxy分库分表以及多租户安装使用
  2. python自学行_python自学行吗 新手可以自学python吗
  3. 2020年408真题_2020年408真题和参考解析
  4. Vue+Axios同步请求
  5. django-url映射给函数给默认值
  6. Scalaz(1)- 基础篇:隐式转换解析策略-Implicit resolution
  7. java 最大线程数_JVM可生产的最大线程数 Thread 数量
  8. 在windows下编译ffmpeg
  9. ubuntu18.04多版本opencv
  10. 数据结构上机实践第九周项目2 - 二叉树遍历的递归算法
  11. ffmpeg 将jpg转为yuv
  12. 有抱负的程序员应看的10个TED演讲
  13. 禁用Chrome Frame
  14. 【jszip3.2.1 解压文件乱码】
  15. 【iOS】一个方法读取图片中的二维码信息
  16. chrome 油猴 电脑或者手机click()失效,解决
  17. 论“GPL就是给软件开发者们准备的坑”
  18. 计算机word快捷方式,右键-新建-WORD等快捷方式丢失了怎么找回?
  19. Excel表格视图受保护,无法编辑,怎么解除视图保护?
  20. pom.xml中解决Provides transitive vulnerable dependency maven:org.yaml:snakeyaml:1.33警告

热门文章

  1. java中的内部类_Java中成员内部类的使用
  2. 大学生python心得1000字_大学生读书心得1000字3篇
  3. nginx 没有cookie_nginx实现负载均衡的原理及策略
  4. java向数据库添加中文乱码_java向数据库中插入中文出现乱码
  5. 三种平摊分析的方法分别为_平摊分析
  6. 一个封锁操作被对 wsacancelblockingcall 的调用中断_备战秋招——操作系统(3)
  7. SpringBoot系列(2):SpringBoot集成单机版Redis
  8. Count on a tree SPOJ 10628 主席树+LCA(树链剖分实现)(两种存图方式)
  9. ROW_NUMBER() OVER()函数用法;(分组,排序),partition by (转)
  10. Python进阶-----类组合的方式完成授权