可以这样简单的理解为:显卡中有N个纹理单元(具体数目依赖你的显卡能力),每个纹理单元(GL_TEXTURE0、GL_TEXTURE1等)都有GL_TEXTURE_1D、GL_TEXTURE_2D等,如下代码:

[cpp] view plaincopy print?
  1. struct TextureUnit
  2. {
  3. GLuint targetTexture1D;
  4. GLuint targetTexture2D;
  5. GLuint targetTexture3D;
  6. GLuint targetTextureCube;
  7. ...
  8. };
  9. TextureUnit textureUnits[GL_MAX_TEXTURE_IMAGE_UNITS]
  10. GLuint currentTextureUnit = 0;

默认情况下当前活跃的纹理单元为0.

[cpp] view plaincopy print?
  1. void glActiveTexture(GLenum textureUnit)
  2. {
  3. currentTextureUnit = textureUnit  - GL_TEXTURE0 ;
  4. }

glActiveTextue 并不是激活纹理单元,而是选择当前活跃的纹理单元。

[cpp] view plaincopy print?
  1. void glBindTexture(GLenum textureTarget, GLuint textureObject)
  2. {
  3. TextureUnit *texUnit = &textureUnits[currentTextureUnit];
  4. switch(textureTarget)
  5. {
  6. case GL_TEXTURE_1D: texUnit->targetTexture1D = textureObject; break;
  7. case GL_TEXTURE_2D: texUnit->targetTexture2D = textureObject; break;
  8. case GL_TEXTURE_3D: texUnit->targetTexture3D = textureObject; break;
  9. case GL_TEXTURE_CUBEMAP: texUnit->targetTextureCube = textureObject; break;
  10. }
  11. }

从示例代码中可以看到:当绑定纹理目标时,所作用的是当前活跃的纹理单元。

opengl纹理单元相关推荐

  1. OpenGL 纹理Textures

    OpenGL纹理 OpenGL纹理简介 纹理环绕方式 纹理过滤 多级渐远纹理 加载与创建纹理 生成纹理 应用纹理 纹理单元 OpenGL纹理简介 我们已经了解到,我们可以为每个顶点添加颜色来增加图形的 ...

  2. android openGl纹理的使用

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

  3. opengl 纹理贴到对应的位置_一步步学OpenGL(27) -《公告牌技术与几何着色器》

    教程 27 公告牌技术与几何着色器 原文: http://ogldev.atspace.co.uk/www/tutorial27/tutorial27.html CSDN完整版专栏: https:// ...

  4. OpenGL纹理过滤以及纹理Wrapping mode

     在三维动态场景中,如果一个纹理对象迅速地远离观察点而去,此时纹理图像必须随被投影的图像一起缩小,否则很产生抖动或者闪烁的现象.为了避免产生抖动或者闪烁,OpenGL必须对纹理图像进行过滤,适当的 ...

  5. OpenGL 纹理基础与索引

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

  6. OpenGL纹理详解

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

  7. OpenGL 纹理过滤和 mip 贴图

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

  8. OpenGL纹理 常用API简介

    #原始图像数据与内存包装 图像的存储空间= 图像的宽度 * 图像的高度 * 每个像素的字节数(系统决定) 内存对齐: 字长32位的计算机上,如果数据在内存中按照32位的边界对齐(地址为4字节的倍数), ...

  9. OpenGL 纹理贴图

    纹理贴图允许把一幅砖墙图像映射到一个多边形的表面上,并把正面墙画成单个多边形.纹理贴图能够保证当这个多边形变形或渲染时,映射到多边形表面的图像也能够表现出正确的行为. 纹理贴图是一个相当大的主题,并且 ...

最新文章

  1. 《PHP精粹:编写高效PHP代码》——2.1节数据持久化和Web应用程序
  2. cocos2d-x学习笔记 动作 CCCallFunc家族(回调函数包装器)
  3. 1.物理系统PhysicsWorld,RayCast
  4. Java程序员需要掌握的计算机底层知识(五):内核同步方法
  5. php做通讯录界面,PHP 制作通讯录(三)
  6. aswing JTable用法
  7. CSDN改版问题多多
  8. 【原创】C++关于创建和使用静态链接库
  9. Linux 进程热升级
  10. 基于 display 和 javaScript 封装一个页面布局小插件
  11. 关于linux无法联网以及xshell无法连接linux的解决
  12. php简写是哪个国家的货币,php是神马货币全称
  13. k3c最新官改非常稳定了_2020国庆过后玉米价格最新行情走势
  14. 删除Word模板文件
  15. 因为改 UOM conversion 导致库存数量和財务上的数据错误
  16. 【高通SDM660平台 Android 10.0】(13) --- Camera ISP 之 数字成像系统介绍
  17. 利用LaTeX写硕士论文历程之安装配置环境
  18. 对数组名取地址 a[ ],a
  19. [kernel 启动流程] 前篇——vmlinux.lds分析
  20. 相机拍照时预览卡顿问题

热门文章

  1. 红帽Linux7怎么修改网卡名称,新安装的Centos 7系统怎么将网卡名称改为eth0?
  2. java数组有跨类建立对象_必会的 55 个 Java 性能优化细节!一网打尽!
  3. ionic 支持float吗_机器人协会 | 一起拼机器人吗?
  4. web mysql 界面表命名规范_MySql数据库表字段命名及设计规范
  5. numpy 拼接_数据分析-numpy的拼接与交换
  6. python的内置函数string_Python错误:内置函数或方法对象没有属性“StringIO”
  7. idea黑色好还是白色好_白色牛仔裤,好看又好搭
  8. 计算机应用技术环境评估,计算机应用教程(第7版)(Windows 7与Office 2007环境)习题解答与上机练习...
  9. 大家对Java的一些误解
  10. 4接口引脚定义_浅谈USB Type-C接口