materialPointSize
materialPointSize
提供对 `PointsMaterial` 材质上 `size` 属性的访问,该值定义了点云中每个点的基础大小。
核心优势
将底层的 `gl_PointSize` 变量和 Uniform 管理完全抽象化,并与 `material.size` 属性无缝集成,让开发者能以标准、便捷的方式在 TSL 顶点着色器中控制点的大小。
常见用途
为静态点云(如星空、3D扫描数据)设置统一的尺寸。
作为计算基准值,用于实现自定义的尺寸衰减(透视)效果。
作为动画的基准尺寸,与时间节点结合实现粒子的脉冲或爆炸效果。
在数据可视化中,作为全局缩放因子,与顶点属性结合以表示数据。
作为交互反馈的默认尺寸,在悬停时临时增大。
如何调整
通过在 JavaScript 中修改 `PointsMaterial` 的 `size` 属性(一个数字)来调整。该值定义了点的基础大小。在 TSL 中,可将此节点作为基础值,与其它节点(如 `timer`、`positionLocal`)组合以实现非均匀的动态效果。
代码示例
1// 在顶点着色器中,让每个点根据自身位置独立闪烁
2const uniquePhase = positionLocal.x.add( positionLocal.z );
3const twinkleFactor = sin( timerLocal().mul( 3 ).add( uniquePhase ) ).mul( 0.5 ).add( 1 );
4
5// 将材质的基础尺寸与闪烁因子相乘,得到最终尺寸
6const finalSize = materialPointSize.mul( twinkleFactor );
7
8// 将计算结果赋值给点云的 pointWidth 输出
9pointCloud.pointWidth = finalSize;