OpenGL 中如何使用 MultiTexture. 即如何开启多层贴图.
问题回答:ByXheartblue
1:glActiveTexture(GL_TEXTUREn);可以控制当前的纹理操作是作用到哪个Tex_Unit上的。
GL_TEXTUREn中的n从0到31.具体看glext.h定义.
2:glActiveTExture为一个扩展.但是已经在OpenGL1.3的核心里。所以DOC到GLSpec1.3中去找.
3:glMultTexCoord(GL_TEXTUREn,....);用来指定某个Tex_Unit的纹理坐标.
4:glClientActiveTexture(GL_TEXTUREn);用来控制以下的函数影响的是第n个Tex_Unit
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glTexCoordPointer
5:eg.使用第二个纹理代码如下
glActiveTexture(GL_TEXTURE1);
glEnable(GL_TEXTURE_2D);
glBindTexture(...):
glTexEnv(......):
关闭第二个纹理的代码如下
glActiveTexture(GL_TEXTURE1);
glDisable(GL_TEXTURE_2D);
glActiveTexture(GL_TEXTURE0);//改变回第一个.否则以后的操作都是对GL_TEXTURE1的。
使用两个纹理通道的VertexArray
//使用两个纹理通道.全要激活他们.
glClientActiveTexture(GL_TEXTURE0);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glClientActiveTexture(GL_TEXTURE1);
glEnableClientState(GL_TEXTURE_COORD_ARRAY)
glClientActiveTexture(GL_TEXTURE0);
glTexCoordPointer();
glClientActiveTexture(GL_TEXTURE1);
glTexCoordPointer();
........................
glDrawArrays(....
//用完两个通道.全都关闭.
glClientActiveTexture(GL_TEXTURE0);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glClientActiveTexture(GL_TEXTURE1);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
//关闭第二个纹理通道
glActiveTexture(GL_TEXTURE1);
glDisable(GL_TEXTURE_2D);
glActiveTexture(GL_TEXTURE0);
glEnable(GL_TEXTURE_2D);
6:最后补充:带不带ARB都一样的。看定义就知道了。ARB后来变成了核心了。
分享到:
相关推荐
MultiTexture.c 多重文理加载opengl实现效果,opengl超级宝典实例
FloorGenerator+MultiTexture木地板生成插件+随机贴图插件+贴图库
opengl源代码,实现了一个立方体各表面的多纹理映射
阐释了OpenGL中multitexture(多纹理)的具体实现
FloorGenerator_Multitexture_jb512019.rar
与以往室内地板的创建不同,平时我们是使用贴图的平铺来完成地面的铺设,而使用这款插件可以很方便的创建出地板的实体模型,相对于贴图来说更加真实.尺寸部分可以调节地板的长宽,和缝隙大小,也可以通过设置最大和最小值...
基于OpenSceneGraph多重纹理同时渲染的程序,可以同时加载多种纹理~
multitexture_ver1_02
DX(MFC)纹理融和展示(展示几张纹理融和的效果)
演示使用多层(多阶段)纹理混合的基本步骤。 2、TexColorBlend 演示几种常用的多层纹理颜色混合方式。程序运行时通过按下键盘上的“1”~ “6”数字键可以在不同的颜色混合方式之间进行切换。 3、TexAlphaBlend 演示...
示例程序(MultiTexture.js) 178 总结 183 第6 章 OpenGL ES 着色器语言(GLSL ES) 185 回顾:基本着色器代码 186 GLSL ES 概述 186 你好,着色器! 187 基础 187 执行次序 187 注释 187 数据值类型...
示例程序(MultiTexture.js) 178 总结 183 第6 章 OpenGL ES 着色器语言(GLSL ES) 185 回顾:基本着色器代码 186 GLSL ES 概述 186 你好,着色器! 187 基础 187 执行次序 187 注释 187 数据值类型...
示例程序(MultiTexture.js) 178 总结 183 第6 章 OpenGL ES 着色器语言(GLSL ES) 185 回顾:基本着色器代码 186 GLSL ES 概述 186 你好,着色器! 187 基础 187 执行次序 187 注释 187 数据值类型...
示例程序(MultiTexture.js) 178 总结 183 第6 章 OpenGL ES 着色器语言(GLSL ES) 185 回顾:基本着色器代码 186 GLSL ES 概述 186 你好,着色器! 187 基础 187 执行次序 187 注释 187 数据值类型...
演示使用ASM渲染语言进行GPU编程中效果的使用。 4、HLSL_ASM_Effect 演示使用HLSL和ASM渲染语言进行混合GPU编程。 第24章 DXUT控件 1、DXUTControl 演示各种DXUT控件的使用。 第25章 广告板技术与十字交叉纹理 1、...
当独立厂商创建一种新技术时,OpenGL标准允许它们通过“扩展”的方法提供所扩展的功能。然后一个扩展就分成两部分发布:包含扩展函数原型的头文件和作为厂商的设备驱动。每个厂商有一个用于命名它们的新函数和常量的...
使用纹理地形渲染 使用进行地形渲染的小型项目。 本示例使用的是ModernGL 4.xx,请使用 pip install " ModernGL<5.0.0 " 屏幕截图 顶点着色器 #version 330 uniform mat4 Mvp; uniform sampler2D Heightmap; in ...
mwc飞控必备的调试软件,汉化版更加贴心,不为英文而犯难
行军钻石晶格 行进立方体-切成5个四面体。 行军四面体 也可以看看 ... 有一个版本“ marchintTetrahedra2.js”,它是最简单的天真的实现,可在一组由8个点组成的一组中计算内部网格。 尽管更长,但它看起来