用途:处理 Three.js 网格表面语义与开销,帮助按渲染意图选择材质类型并配置参数。贴图/UV/HDR 资源、光照阴影、自定义 GLSL 分别交由 threejs-textures、threejs-lighting、threejs-shaders 处理。
主要能力:按需求选择材质,如无光照用 MeshBasicMaterial、经典漫反射用 MeshLambertMaterial、经典高光用 MeshPhongMaterial、常规 PBR 用 MeshStandardMaterial、清漆/透射等高级 PBR 用 MeshPhysicalMaterial、卡通风格用 MeshToonMaterial、自定义着色器用 ShaderMaterial。可配置基础色、金属度、粗糙度、法线/AO/自发光贴图与环境响应,并处理透明排序、背面不可见、材质共享误改和材质泄漏。
使用方式:先选能表达意图的最简材质,常规 PBR 从 MeshStandardMaterial 起步,仅在视觉收益值得着色器开销时再加 Physical 特性。PBR 输入需一致,基础色贴图要正确设置色彩空间,法线、粗糙度、金属度、AO 等数据贴图不采用相同显示色彩处理。仅在需要 alpha 混合时设 transparent: true,并按诊断结果设置 depthWrite、side、alphaTest、renderOrder;硬边植被/贴花可优先用 alpha 测试。材质常被共享,修改 mesh.material.color 会影响所有使用者,需按对象克隆并显式管理生命周期,最终消费者离开时调用 dispose()。
适用场景:金属产品表面、逐对象高亮、透明物体重叠、重复几何体材质变体控制等。
限制:金属物体缺少环境贴图时反射不足,任意点光源不能替代 IBL;应在代表性光照和环境贴图下评估材质,而非无光空场景;需在目标设备上测量 Physical/透射等昂贵特性;克隆及其自有贴图要释放,但不可提前释放共享资源。具体价格、平台与效果资料暂未提供。