`
javahigh1
  • 浏览: 1298277 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

OpenGL 中如何使用 MultiTexture. 即如何开启多层贴图.

 
阅读更多

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

    MultiTexture.c 多重文理加载opengl实现效果,opengl超级宝典实例

    PS MultiTexture.rar

    在计算机图形学与编程领域中,DirectX 是一个重要的技术,它..."PS MultiTexture.rar" 文件包中的内容应该围绕DirectX和C++在3D图形编程中实现多重纹理处理的各个方面展开,旨在为开发者提供一个实用的参考或教学示例。

    22_MultiTexture.rar_22_MultiTexture_OPENGL 纹理_opengl 纹理映射_立方体 纹理

    在OpenGL中,这通过使用纹理坐标和纹理对象来实现。纹理对象存储了实际的图像数据,而纹理坐标则告诉OpenGL如何将这些纹理映射到几何形状的各个顶点上。 多纹理映射进一步扩展了这一概念,允许在一个像素上混合或...

    CU_Multitexture.rar

    首先,“CU_Multitexture.rar”是一个压缩包文件,其标题暗示了它可能是一个涉及多纹理处理的项目或资源。文件名中的“CU”可能是一个缩写或者特定于该项目的标识符。文件后缀“.rar”表明这是一个使用WinRAR或其他...

    FloorGenerator+MultiTexture木地板生成插件+随机贴图插件+贴图库

    在使用过程中,汉化版本的 FloorGenerator 和 MultiTexture 为中文用户提供了极大的便利。汉化意味着用户界面和帮助文档都翻译成了中文,降低了学习和使用的门槛,使得国内的设计师能够更轻松地理解和掌握这两个工具...

    MultiTexture.rar

    根据标题中的"MultiTexture"可以推测,这个程序很可能专注于如何在三维场景中使用多个纹理来增强视觉效果。例如,在游戏或虚拟现实应用中,不同的纹理可以用来表示不同的表面细节,如木纹、砖墙、皮肤等。在三维建模...

    OpenGL multitexture code

    在OpenGL中,纹理是赋予几何体表面颜色和细节的重要手段。而多纹理技术(multitexture)则是OpenGL扩展了单纹理贴图功能,使得在一个像素上可以同时应用多个纹理,从而实现更丰富的图像效果。 多纹理技术通过使用多个...

    NeHe OpenGL中文教程.CHM相关源码1-22

    1. **多纹理映射 (22_MultiTexture.rar)**: 多纹理映射是OpenGL中的一个高级特性,允许在一个像素上同时应用多个纹理,从而实现更复杂的图像效果。这节课可能讲解了如何在同一个顶点上混合或组合两个或多个纹理,以...

    MultiTexture.rar_图形图像处理_Visual_C++_

    在这个“MultiTexture.rar”压缩包中,包含了一个使用Visual C++和OpenSceneGraph库实现的多重纹理同时渲染的程序示例。OpenSceneGraph是一个开源的3D图形库,它提供了丰富的功能来创建、操作和显示复杂的3D场景。 ...

    OpenGL.Extensions.-.Nvidia

    通过ARB_multitexture扩展,NVIDIA增强了OpenGL的纹理功能,使得开发者可以利用多个纹理层叠加的效果,如环境映射、细节纹理等,以增强游戏和应用程序的视觉表现力。 #### ARB_texture_compression:纹理压缩 纹理...

    OpenGL显卡编程.pdf

    OpenGL 显卡编程 OpenGL 显卡编程是指使用 OpenGL 库来开发图形程序,利用显卡的新特性来创造出更加绚丽的视觉效果。本文档主要介绍了 ...顶点/片断编程是图形程序开发中的一种技术,可以使用 OpenGL 扩展来实现。

    FloorGenerator+MultiTexture木地板生成插件+随机贴图插件+贴图库 密码:1.rar

    与以往室内地板的创建不同,平时我们是使用贴图的平铺来完成地面的铺设,而使用这款插件可以很方便的创建出地板的实体模型,相对于贴图来说更加真实.尺寸部分可以调节地板的长宽,和缝隙大小,也可以通过设置最大和最小值...

    FloorGenerator_Multitexture_jb512019.rar

    软件的文件名“FloorGenerator_Multitexture_jb512019”中的“jb512019”很可能指向该版本的发布日期或版本号。这种命名方式表明木地板生成器有着持续更新和优化的可能性,因此用户应当保持对开发者发布新版本的关注...

    opengl c_code1

    首先,`22_MultiTexture.rar`涉及到了多纹理贴图。在3D渲染中,多纹理贴图允许在同一个像素上应用多个纹理,可以实现复杂的材质效果,如混合不同的纹理或应用环境映射。 接着,`30_Collide.rar`可能包含关于碰撞...

    multitexture_ver1_02

    《多纹理技术在3D建模软件中的应用——以“multitexture_ver1_02”为例》 “multitexture_ver1_02”这个标题暗示了一个与3D建模和渲染相关的概念——多纹理技术。多纹理技术是计算机图形学中的一个重要组成部分,...

    Nehe的opengl教程的21-30代码

    2. **22_MultiTexture.rar** - 多纹理贴图是OpenGL中的一个重要特性,允许在一个像素上混合多个纹理。这个教程介绍了如何同时使用两个纹理单元,实现复杂的纹理效果。 3. **23_SphereMap.rar** - 球面映射是一种将...

    opengl nehe source code

    多纹理是OpenGL中的一个重要特性,允许同时使用多个纹理贴图在同一个像素上混合,以实现更复杂的图像效果。这个例子可能涉及纹理单元的配置,纹理坐标映射,以及混合不同纹理的方法。 3. **21_Lines.rar**: 这个...

    OpenGL配置环境与OpenGL扩展机制

    通过正确配置Visual Studio中的OpenGL环境,结合使用GLEW、GLUT等扩展库,开发者可以充分利用最新的硬件特性,创建出高性能的图形应用程序。同时,了解OpenGL不同版本之间的差异,有助于更好地选择合适的版本和扩展...

    opengl nehe c++ code

    1. **43_FreeTypeFont.rar** - 这个压缩包包含了使用FreeType库在OpenGL中渲染TrueType字体的代码。FreeType是一个开源库,能够加载、解码和渲染各种字体格式。通过这个教程,你可以学习如何在3D场景中添加文本,这...

Global site tag (gtag.js) - Google Analytics