OpenGL 核心技术之立方体贴图
笔者介绍: 姜雪伟 ,IT公司技术合伙人,IT高级讲师,CSDN社区专家。特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你 架构 3D游戏引擎》电子工业出版社和《 Unity3D 实战核心技术具体解释》电子工业出版社等。 CSDN视频网址: http://edu.csdn.net/lecturer/144 在这里介绍立方体贴图主要是告诉读者,利用立方体贴图原理。我们能够做非常多事情:比方天空盒,环境映射中的反射和折射效果等等。当然环境映射也能够使用一张纹理贴图实现。这个会在博文的最后给读者介绍,以下開始介绍立方体贴图实现原理。 我们在游戏开发中通常的做法是将2D纹理映射到物体的一个面上,本篇博文介绍的是将多个纹理组合起来映射到一个单一纹理,这就称为立方体贴图。在介绍立方体贴图前。先解释一下纹理採样,假设我们有一个单位立方体。有个以原点为起点的方向向量在它的中心。 从立方体贴图上使用橘黄色向量採样一个纹理值看起来下图: 注意,方向向量的大小无关紧要。一旦提供了方向,OpenGL就会获取方向向量碰触到立方体表面上的对应的纹理像素。这样就返回了正确的纹理採样值。 方向向量触碰到立方体表面的一点也就是立方体贴图的纹理位置。这意味着仅仅要立方体的中心位于原点上。我们就能够使用立方体的位置向量来对立方体贴图进行採样。然后我们就能够获取全部顶点的纹理坐标。就和立方体上的顶点位置一样