纹理
纹理是一张可以赋给材质,再应用到图形图元上的图像。
导入纹理
可以通过三种方式向 PlayCanvas 导入纹理资源:
- 将图片拖放到资源面板。
- 在资源面板右键菜单中选择 Upload,再通过文件浏览器选择图片。
- 导入内嵌纹理的 FBX 文件。
支持以下图像格式:
- JPG
- PNG
- AVIF
- WEBP
- GIF
- TGA
- BMP
- TIF
- HDR
- EXR
导入的 JPG、PNG、AVIF、WebP 和 GIF 文件保留原格式。
GIF、TGA、BMP 和 TIF 类型在导入时会转换为 JPG 或 PNG:如果图像包含透明度,则转换为 PNG,否则转换为 JPG。
HDR 和 EXR 是高动态范围格式。导入时会转换为 PNG,并标记为使用 RGBM 存储。RGBM 将 RGB 值的倍率保存在 PNG 的 Alpha 通道中,从而用低动态范围格式编码 HDR 数据。
默认情况下,导入图像会调整为最接近的二次幂尺寸。例如,323x414 的图片会调整为 256x512。这样做是因为图形引擎无法为非二次幂纹理使用 mipmap。不过,可以在导入非二次幂纹理前,在 Asset Import 面板中禁用 Textures POT 来取消此行为。
纹理属性
在资源面板中选中纹理缩略图,即可在检查器中查看。也可以多选纹理,在检查器中同时编辑所有选中项。
纹理具有 ID、名称、标签等通用资源属性,也包含一些专用属性。

纹理滤波
纹理滤波决定映射了纹理的像素如何计算颜色。Point 不进行滤波,Linear 则对纹素及其相邻纹素的颜色进行插值。后者通常有更好的视觉效果,尤其在纹理缩小时,即纹理在屏幕上占用的像素少于其纹素数时。
各向异性
以倾斜角度观察纹理表面时,画质可能下降并出现模糊。可以通过设置各向异性值改善。不同值对纹理显示的影响如下:

注意,各向异性值越高,GPU 纹理采样开销也越高。
纹理寻址
纹理寻址属性控制纹理坐标超出 0 到 1 范围时如何采样。下图展示不同模式对精灵的影响:

最大纹理尺寸
不同设备支持的纹理尺寸不同。可以在目标设备和浏览器上使用 WebGL report 查看最大支持尺寸。
例如,下图来自 2020 款 16 英寸 MacBook Pro 的 Chrome,支持最高 16384x16384。
而 Samsung S7 手机仅支持 4096x4096。
如果纹理尺寸超过 WebGL 报告的上限,引擎会在运行时将其缩小到最大支持尺寸。此行为仅适用于从 PNG、JPG、AVIF、WebP、GIF 等图像加载的纹理。压缩纹理无法在运行时调整尺寸,超过设备上限时将无法渲染。
如果希望避免运行时缩小,按原文撰写时(2020 年 10 月 23 日)的设备情况,4096x4096 已获得广泛支持;部分开发者甚至选择兼容性更稳妥的 2048x2048。