跳到主要内容

立方体贴图

立方体贴图是一种特殊纹理资源,由六个纹理资源组成,每个纹理代表立方体的一个面。主要有两种用途:

  1. 定义场景天空盒。天空盒呈现场景远处的景象,例如山丘、山脉和天空。
  2. 为材质添加反射。例如,场景中光亮的镀铬球会反射周围环境。在开放环境中,通常将场景天空盒的立方体贴图赋给反射物体的材质。

导入立方体贴图纹理​

立方体贴图需要六个纹理资源作为输入。因此,完整配置新立方体贴图之前,必须先向项目导入六张图片。将图片从文件系统拖入资源面板,或选择面板中的 Upload 即可。上传并处理完成后,图片会显示在资源面板中,可分配给立方体贴图资源。

创建立方体贴图​

可以直接通过 PlayCanvas 编辑器的资源面板 Create Asset 菜单创建立方体贴图资源。

创建立方体贴图

创建后,屏幕右侧会打开立方体贴图编辑器。

选择立方体贴图​

要编辑立方体贴图,请在资源面板中选中它。最便捷的方法是使用立方体贴图筛选器缩小范围。立方体贴图以十字形缩略图标识:

立方体贴图缩略图

选中后,其属性会加载到编辑器右侧的检查器面板中。

立方体贴图属性​

选中立方体贴图后,即可编辑其属性。

立方体贴图属性

滤波​

决定立方体贴图放大时像素如何插值。当纹素数与屏幕像素数之比小于 1 时,就会发生放大。Linear 的视觉效果最好,其次是 Nearest。

各向异性​

取值范围为 1 到 16,用于控制摄像机观察方向趋近于纹理表面平面时的纹理采样质量。

为立方体贴图分配纹理​

立方体贴图预览

预览面板将六个面展开为十字形,就像展开并铺平的纸盒。将纹理资源从资源面板拖到预览面板对应的面槽位,即可构建立方体贴图。也可以先选中一个面槽位,再从资源面板选择纹理。

立方体贴图的各面必须满足:

  • 为正方形,即宽高分辨率相同。
  • 尺寸为 2 的幂,例如 1x1、2x2、4x4、8x8、16x16、32x32。
  • 所有面的分辨率相同。

为了简化操作,拖入第一个面时,编辑器会尝试根据常见的面命名规则智能分配其余纹理,例如:

  • negx, posx, negy, posy, negz, posz
  • left, right, top|up, bottom|down, front|forward, back|backward
  • 0-5|1-6

下面这组文件名就可以匹配:

  • face_posx.jpg
  • face_negx.jpg
  • face_posy.jpg
  • face_negy.jpg
  • face_posz.jpg
  • face_negz.jpg

基于图像的光照​

此技术通过立方体贴图等环境贴图,为材质模拟基于物理的环境光和反射。有关原理及 IBL 立方体贴图的制作,请参阅基于图像的光照。

为材质分配立方体贴图​

默认的 Phong 和物理材质类型都包含反射属性。展开 Environment 属性区域,可看到:

立方体贴图材质

单击 Empty 槽位选择立方体贴图,或将资源面板中的立方体贴图资源拖入槽位。

备注

如果场景天空盒已分配并完成预滤波,物理材质会将它作为默认环境贴图。

将等距柱状或八面体 HDRI 转换为立方体贴图​

环境纹理通常采用等距柱状或八面体格式,例如 Poly Haven 上的资源。它们需要先转换为立方体贴图才能在 PlayCanvas 中使用。

可以通过浏览器中的 PlayCanvas 纹理工具完成转换。

  1. 下载 HDR 版本的环境纹理,在 PlayCanvas 纹理工具中单击 Add Files 加载文件。
  2. 在左侧选中已加载的纹理。
  3. 在 Reproject 区域中,将 source 改为纹理原有格式。
  4. 将 target 改为 cube。
  5. 将 encoding 改为所需格式:
    • 导出 HDR 时选择 rgbe。
    • 导出 PNG 时选择 rgbm。
  6. 设置每个面的纹理宽度。512 是质量和文件大小之间较好的折中。
  7. 单击 Reproject,转换为立方体贴图。
  8. 单击 Export to PNG 或 Export to HDR,下载六张独立的面纹理,然后即可上传到 PlayCanvas。

PlayCanvas 纹理工具

其他支持此转换的工具包括: