# 纹理优化
为了提高壁纸的性能和兼容性,减少显示图像所需的内存至关重要。某些系统可能具有有限的VRAM(显卡内存)。如果壁纸占用的图形卡内存超过其容量限制,在某些系统上可能会导致整个桌面变得不可用且运行缓慢。作为一般指导原则,我们建议壁纸使用的VRAM量保持在大约300 MB或更少以获得良好的性能表现。使用少于500 MB也是可以接受的,但为了达到最佳性能,应尽量不超过这个限制。
# 检查纹理内存使用情况
你可以在编辑器中通过点击顶部菜单栏的 视图 选项并启用 显示统计信息 ,来查看当前项目所占用的纹理内存 。统计数据会在场景窗口中的“活跃纹理内存”行中显示出来。
# 保持纹理分辨率较低
优化项目的首要步骤是降低导入纹理的整体大小。确保背景图像本身的尺寸仅限于实际需求,通常应与常见屏幕分辨率如1920x1080(全高清)或3840x2160(4K超高清)完全一致。欲了解更多信息,请参阅我们的项目分辨率指南 。
另外,在使用图像层时,务必确保它们只保留必要的最小尺寸。Wallpaper Engine会自动建议将导入的图像层裁剪至该层所需的最佳小尺寸,并自动调整图层位置以适应裁剪后的空间变化。特别是在高分辨率壁纸(如4K UHD及更高分辨率)上,强烈推荐利用这一功能,它能显著减少VRAM的使用量。
默认情况下,Wallpaper Engine还会为每个裁剪过的图像层添加填充。这是为了应对超出对象本身范围的图像效果。填充也会占用一些VRAM,所以如果你确定不会使用任何超出初始图层尺寸的效果,你可以将其设置为0;如果有需要更多填充,则可以根据实际情况进行增加。
# 优化纹理格式
图形卡不支持直接渲染JPEG和PNG等常见图像格式,因此Wallpaper Engine首先必须将这些格式转换为兼容格式。在视频内存中,这些解压缩的图像所需的内存远大于原始文件大小。
默认情况下,当向现有壁纸导入新图像时,Wallpaper Engine会建议不使用压缩(采用"RGBA8888"格式)。然而,还有名为DXT5(“良好性能”)和DXT1(“高性能”)的不同压缩方法可供选择,这些方法能够被图形卡显示,并且与未压缩图像相比仅占用四分之一的内存。
首次导入的背景图像始终不使用压缩,以便提供最高质量并简化过程,但是你随时可以重新导入并在之后选择不同的压缩方式。
提示
尽管没有人喜欢低质量的壁纸,但在许多应用场景下,Wallpaper Engine中的压缩几乎察觉不到差异。我们建议你尝试一下这些压缩方法——实际上并不像听起来那样糟糕,尤其对于复杂的壁纸,它可以显著提升性能!
你可以在导入新图像时选择压缩方法:
# 优化现有图层
如果你想要对现有的图层应用DXT5压缩,操作起来非常简单。只需选择你的图层,滚动到右侧的“高级纹理设置”按钮,点击该按钮后,在阿尔法贴图旁边点击齿轮图标并选择“纹理属性”。然后查找“格式”选项并将其更改成DXT5。相应地,你应该能看到上方的视频内存统计有所下降。关于此过程有一个示例视频可供观看。
# 进一步优化DXT5和DXT1纹理
已压缩的DXT5和DXT1纹理需具有二的幂次方的分辨率(例如:1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192 等),才能被计算机正确显示。Wallpaper Engine会在后台静默处理这个问题,添加不可见像素以填充缺失的像素。不过,这会导致所需内存的增加(尽管总是比使用未压缩图像要好得多)。
例如,一个正常的1920 x 1080分辨率图像以DXT5格式导入时,需要填充到2048 x 2048的分辨率,因为这是1920和1080向下取整到的下一个二的幂次方数。在示例中可以看到大量黑色填充像素,其中一半的内存实际上是浪费了。
你应当考虑将图像高度减小到1024,这样Wallpaper Engine就可以创建一个2048 x 1024的纹理,只需要之前的一半内存。
当然,这意味着你的实际图像分辨率也变小了,因此你需要决定是否以及如何权衡这种折衷方案。你可以通过在Wallpaper Engine中按1.055的比例(即1080 / 1024)缩放图层,以纠正因尺寸缩小带来的影响。
提示
如果你以这种方式优化了背景图像,请务必在编辑器中通过点击顶部菜单栏的“编辑”选项,进入“项目设置”,检查你的项目分辨率。如果配置有误,可能会导致图像意外被裁剪
← 项目分辨率 SceneScript介绍 →