Tiny World Render Performance 是 Tiny World Builder 项目中的一个渲染性能技能,用于在修改渲染器设置、阴影、烟雾、体素云、幽灵板渲染开销、帧循环或 GPU 性能时提供约束与指导。其核心目标是保持单次渲染通道(single-pass)和可预测性。
用途与主要能力 该技能围绕渲染性能提供一系列明确规则,包括:默认渲染路径为直接渲染,仅保留可选像素化通道(低分辨率渲染目标 + 深度/法线边缘全屏四边形)和增强水面平面反射通道两个显式渲染目标系统;禁止未经批准引入其他常驻后处理(EffectComposer、屏幕着色器、额外渲染目标)。
在性能控制方面,要求限制 DPR(设备像素比),不得回退到无上限 devicePixelRatio;动态分辨率 renderDynamicResolution 是用户分辨率滑块上限下的自适应乘数,缓慢趋向目标 FPS,且不持久化瞬时缩放。遇到软件 WebGL 渲染器(SwiftShader/llvmpipe/softpipe/WARP 等)时显示可关闭的硬件加速警告横幅。主 WebGL 上下文使用 antialias: true,亮度/饱和度/对比度作为 WebGL 画布上的轻量 CSS 滤镜而非着色器 uniform。
GPU 缓存与合批 geomCache 按数值参数缓存 roundedSlab / roundedBox ExtrudeGeometries,并标记 userData.cached,通过 safeDisposeGeometry 释放。getOpenBoxGeometry 返回去除选定面组的缓存 BoxGeometry,用于地形盖、隐藏面优化。vbox() 支持 skipTop/skipBottom/side-skip,走缓存开盒几何。体素地形面板需按缓存开盒几何与材质分桶,每桶一个 THREE.InstancedMesh。空白草地块走简单平面快路径且仅接收阴影。幽灵板默认关闭,通过 pendingGhostBoards 队列和 processGhostBoardQueue(budgetMs) 分帧构建。动画对象采用基于集合的跟踪(animatedCellObjects、smokeHouseObjects),避免每帧扫描所有单元格。
特效与资源管理 像素化着色器抗锯齿仅通过边缘/深度/法线检测实现,禁止全屏模糊;像素后处理着色器按变体构建,保留渲染器输出色彩空间;背景暗角使用 CSS 覆盖变量而非 WebGL 后处理。夜空星星使用单个 equirect 球体网格与程序化画布纹理,仅在黄昏/夜晚混合。浮岛底面、瀑布泡沫/碎块、地形细节(车辙、卵石等)均要求合批或实例化,装饰性网格设置不投射/不接收阴影。水面平面反射仅在增强水开启、存在可见反射水面且不处于同步加载时捕获。
资源释放方面,disposeGroup 默认释放几何体,材质默认共享,除非网格显式设置 userData.ownMaterial、userData.ownedMaterial 或 userData.disposeMaterial。异步纹理/资源回调必须通过 renderSceneIfReady() 重绘。fadeMatCache 以 16 个不透明度桶共享淡出材质,缓存材质标记 userData.cachedFade 且不得修改或释放。
使用方式 该技能以规则文档形式提供,开发者在修改渲染器、阴影、烟雾、体素云、幽灵板、帧循环或 GPU 性能相关代码时,应参照这些约定执行。具体使用步骤暂未提供。
适用场景 适用于 Tiny World Builder 的渲染性能优化、渲染器配置调整、阴影与特效开销控制、几何缓存与实例化合批、材质与资源释放管理,以及幽灵板渲染和动态分辨率相关开发场景。
限制 资料中未提供安装命令、平台支持、收费信息或具体使用步骤。该技能的描述与规则高度针对 Tiny World Builder 项目内部实现,通用性有限。