Cubemap Texture 示例
这两个材质图表示例演示了为反射和折射材质应用自定义立方体贴图纹理的材质创建。
立方体贴图反射示例#
首先,我们根据当前相机的视角方向向量和物体的法线向量得到一个反射向量,两者都在世界空间中。因此,我们将 Vertex Normal 节点和 View Direction 节点的输出连接到 Reflect 节点的输入端口(使用 -X|-Y|-Z端口适配器获得相反的方向,因为入射矢量与视图矢量相反)。
然后,根据得到的世界空间坐标,Sample Texture节点从cubemap(Texture Cube节点)中获取像素数据,采样Slider参数节点(通过UnigineEditor中的Parameters面板可调)提供的指定MIP级别来伪造粗糙度的表面。颜色值被传递到材质的 Emissive 槽。
直接指定零 Albedo 值(以保留立方体贴图纹理的初始颜色)。
最后,将数据输出传递给 Final 节点。
立方体贴图折射示例#
首先,我们根据当前相机的视角方向向量和物体的法线向量得到一个折射向量,两者都在世界空间中。因此,我们将 Vertex Normal 节点和 View Direction 节点的输出连接到 Refract 节点的输入端口(使用 -X|-Y|-Z端口适配器获得相反的方向,因为入射矢量与视图矢量相反)。
Refraction Index 是两种环境的折射率之比,因此我们通过 1(空气的 IOR)除以材质所需的 IOR 值。
然后,根据得到的世界空间坐标,Sample Texture节点从cubemap(Texture Cube节点)中获取像素数据,采样Slider参数节点(通过UnigineEditor中的Parameters面板可调)提供的指定MIP级别来伪造粗糙度的表面。颜色值的前三个分量 (x,y,z) 被传递到材质的 Emissive 槽。
零 Albedo 和 Roughness 值(以保留立方体贴图纹理的初始颜色)是直接指定的。
最后,将数据输出传递给 Final 节点。