OpenGL 纹理单元 纹理目标 理解 glActiveTexture glBindTexture
来源:互联网 发布:淘宝15天退换货图片 编辑:程序博客网 时间:2024/06/06 00:21
转载自:
http://blog.csdn.net/zhuyingqingfen/article/details/19968341
从示例代码中可以看到:当绑定纹理目标时,所作用的是当前活跃的纹理单元。
从示例代码中可以看到:当绑定纹理目标时,所作用的是当前活跃的纹理单元。
http://blog.csdn.net/zhuyingqingfen/article/details/19968341
可以这样简单的理解为:显卡中有N个纹理单元(具体数目依赖你的显卡能力),每个纹理单元(GL_TEXTURE0、GL_TEXTURE1等)都有GL_TEXTURE_1D、GL_TEXTURE_2D等,如下代码:
- struct TextureUnit
- {
- GLuint targetTexture1D;
- GLuint targetTexture2D;
- GLuint targetTexture3D;
- GLuint targetTextureCube;
- ...
- };
- TextureUnit textureUnits[GL_MAX_TEXTURE_IMAGE_UNITS]
- GLuint currentTextureUnit = 0;
默认情况下当前活跃的纹理单元为0.
- void glActiveTexture(GLenum textureUnit)
- {
- currentTextureUnit = textureUnit - GL_TEXTURE0 ;
- }
glActiveTextue 并不是激活纹理单元,而是选择当前活跃的纹理单元。
- void glBindTexture(GLenum textureTarget, GLuint textureObject)
- {
- TextureUnit *texUnit = &textureUnits[currentTextureUnit];
- switch(textureTarget)
- {
- case GL_TEXTURE_1D: texUnit->targetTexture1D = textureObject; break;
- case GL_TEXTURE_2D: texUnit->targetTexture2D = textureObject; break;
- case GL_TEXTURE_3D: texUnit->targetTexture3D = textureObject; break;
- case GL_TEXTURE_CUBEMAP: texUnit->targetTextureCube = textureObject; break;
- }
- }
从示例代码中可以看到:当绑定纹理目标时,所作用的是当前活跃的纹理单元。
可以这样简单的理解为:显卡中有N个纹理单元(具体数目依赖你的显卡能力),每个纹理单元(GL_TEXTURE0、GL_TEXTURE1等)都有GL_TEXTURE_1D、GL_TEXTURE_2D等,如下代码:
- struct TextureUnit
- {
- GLuint targetTexture1D;
- GLuint targetTexture2D;
- GLuint targetTexture3D;
- GLuint targetTextureCube;
- ...
- };
- TextureUnit textureUnits[GL_MAX_TEXTURE_IMAGE_UNITS]
- GLuint currentTextureUnit = 0;
默认情况下当前活跃的纹理单元为0.
- void glActiveTexture(GLenum textureUnit)
- {
- currentTextureUnit = textureUnit - GL_TEXTURE0 ;
- }
glActiveTextue 并不是激活纹理单元,而是选择当前活跃的纹理单元。
- void glBindTexture(GLenum textureTarget, GLuint textureObject)
- {
- TextureUnit *texUnit = &textureUnits[currentTextureUnit];
- switch(textureTarget)
- {
- case GL_TEXTURE_1D: texUnit->targetTexture1D = textureObject; break;
- case GL_TEXTURE_2D: texUnit->targetTexture2D = textureObject; break;
- case GL_TEXTURE_3D: texUnit->targetTexture3D = textureObject; break;
- case GL_TEXTURE_CUBEMAP: texUnit->targetTextureCube = textureObject; break;
- }
- }
从示例代码中可以看到:当绑定纹理目标时,所作用的是当前活跃的纹理单元。
0 0
- OpenGL 纹理单元 纹理目标 理解 glActiveTexture glBindTexture
- OpenGL 纹理单元 纹理目标 理解 glActiveTexture glBindTexture
- OpenGL 纹理单元 纹理目标 理解 glActiveTexture glBindTexture
- OpenGLES - glBindTexture 绑定纹理缓存到纹理单元
- opengl纹理单元
- 《高效学习OpenGL》 之 多重纹理 glActiveTexture(),glMultiTexCoord2f(),glClientActiveTexture()
- 《高效学习OpenGL》 之 纹理对象 glGenTextures(),glIsTexture(),glBindTexture(),glDeleteTextures()
- glActiveTexture glBindTexture
- 多重纹理 glActiveTexture(),glMultiTexCoord2f(),glClientActiveTexture
- OpenGL ES 理解纹理与纹理过滤
- 纹理单元
- OpenGL 纹理单元的使用步骤详解
- OpenGL 纹理单元的使用步骤
- OpenGL-对纹理的理解
- opengles 纹理对象&纹理单元
- openGL纹理
- OpenGL 纹理
- OpenGL纹理
- python中的is ,is not
- leetcode 20. Valid Parentheses
- 基于 docker 的 UI 自动化测试实践
- jquery.validate在IE8下,点击提交不进行验证的解决方案
- ios多线程使用精讲
- OpenGL 纹理单元 纹理目标 理解 glActiveTexture glBindTexture
- git学习【0】我的git学习记录
- YEOMAN脚手架生成react项目及phantomJS安装问题
- 欢迎使用CSDN-markdown编辑器
- 几何画板为什么出现符号乱码
- OpenGL 4.0 VAO VBO 理解
- cheese
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解决
- c# DataGridViewComboBoxColumn