【Unity Shader入门精要学习】高级纹理(一)

立方体纹理(Cubemap)

在图形学中,立方体纹理(Cubemap)环境映射(Environment Mapping)的一种实现方法。环境映射可以模拟物体周围的环境,而使用了环境映射的物体可以看起来像镀了一层金属一样反射出周围的环境。
立方体纹理一共包含了6张图像,正好对应立方体6个面,所以立方体纹理也由此而来。立方体的每个面表示沿着世界空间下的轴向观察所得(上——Y轴正方向,下——Y轴负方向,前——Z轴负方,后——Z轴正方向,左,X轴负方向,右——X轴正方向)。
立方体纹理采样,对立方体纹理采样需要提供一个三维的纹理坐标,表示的是世界空间下的3D方向。在采样时,从立方体中心出发,向采样的方向发射,与某个面相交的的部分就是采样的结果。

立方体纹理采样

使用立方纹理好处在于,实现简单而且效果还可以。但它的缺点是当新引入了光源,物体,或是有物体发生移动时也重新生成立方体纹理。而且立方体纹理也仅可以反射环境,而不能反射使用了同一立方体纹理的物体本身(自反射)。因为立方体纹理不能模拟多次反射的结果,如两金属球相互反射。所以如果使用立方体纹理尽量使用凸多边形,而不使用凹多边形,因为凹多边形会反射物体本身。

立方体纹理应用

天空盒子(skybox)

天空盒用于模拟背景的一种方法。“天空”代表用来模拟天空(当然也可以用于室内)。“盒子”说明当使用天空盒时, 场景会被包含在一个立方体里面。而立方体的每个面用的就是立方体纹理技术。
在Unity中设置天空盒很容易,只要创建一个Skybox
材质,然后赋予相关摄像机就可以。还要将摄像机的Clear Flags设为SkyBox。

天空盒立方体纹理

image.png

你可能感兴趣的:(【Unity Shader入门精要学习】高级纹理(一))