uniformGroup
uniformGroup
将多个 uniform 变量打包成一个逻辑组,以统一缓冲对象 (UBO) 的形式一次性高效地提交给 GPU,解决了性能瓶颈和代码组织问题。
核心优势
通过批量更新数据大幅提升渲染性能,同时实现 uniform 的逻辑分组与模块化,使代码更清晰、易于维护和复用。
常见用途
管理场景级全局数据(如相机、时间)
定义可复用的材质属性包(如PBR参数)
组织复杂的光照系统数据
如何调整
该节点本身不可调整。通过修改其内部各个 uniform 节点的 .value 属性来驱动视觉变化,该组能确保这些更新被高效地批量同步到 GPU。
代码示例
1// 1. 创建一个 uniform group 来管理相关的 uniform
2const myMaterialGroup = uniformGroup( 'materialUniforms' );
3
4// 2. 创建 uniform 节点并添加到组中
5myMaterialGroup.add( uniform( new THREE.Color() ) );
6myMaterialGroup.add( uniform( 0.5 ) );