renderGroup
renderGroup
一个提供标准化的、每帧更新一次的全局 Uniform 数据(如时间、相机位置)的访问入口。
核心优势
核心优势在于性能优化:它将所有全局 Uniform 打包,在每帧只向 GPU 发送一次,极大地减少了 API 开销,并简化了对时间、相机等标准数据的访问。
常见用途
使用 `time` 属性创建时间驱动的动画(如水波、旗帜飘动)。
使用 `cameraPosition` 实现依赖于视角的菲涅尔或雾效。
访问 `projectionMatrix` 和 `resolution` 以实现后期处理效果。
如何调整
该节点属性由渲染器自动更新,无法直接调整。但可以通过改变“如何使用”其属性来调整效果:例如,将 `time` 乘以一个更大的数会加快动画速度;或计算与 `cameraPosition` 的距离,可以实现随距离变化的雾效或 LOD 效果。
代码示例
1// 获取全局时间 uniform
2const time = renderGroup.time;
3
4// 使用 sin(time) 创建一个平滑的上下浮动动画
5const animatedY = sin( time.mul( 2.0 ) );
6const animatedPosition = positionLocal.add( vec3( 0, animatedY, 0 ) );