PointsNodeMaterial
PointsNodeMaterial
用于渲染点精灵/粒子系统的节点材质。可用于 Points 或 Sprites:在 WebGPU 下以 Points 方式渲染时,真实点元的像素大小固定为 1;若需要按像素控制大小,应改用 Sprites(支持 `sizeNode`),精灵始终面向摄像机。它是 PointsMaterial 的节点版本。
核心优势
高效渲染大规模粒子,并可在着色器中逐点控制尺寸(`sizeNode`)与旋转(`rotationNode`);内置 `sizeAttenuation` 以产生透视衰减;可启用 `alphaToCoverage` 改善半透明边缘质量。
常见用途
火花、烟雾、雨雪等粒子系统
星空与星系渲染
将大型数据集以 3D 点云可视化
基于精灵的植被或碎屑表现
如何调整
用 `size` 设定基础像素大小,`sizeAttenuation` 控制随距离的衰减;用 `sizeNode` 进行逐点尺寸控制(可连接基于顶点属性或噪声的节点);用 `rotationNode` 旋转每个精灵;`map`/`alphaMap` 控制颜色与透明;启用 `alphaToCoverage` 获得更平滑的透明边缘。注意:在 WebGPU + `<points>` 模式下 `size` 固定为 1,如需可调大小请改用 `<sprite>` + 实例化并为材质提供 `positionNode`。
代码示例
1<points>
2 <sphereGeometry args={[1, 64, 32]} />
3 {/* WebGL 下 size 有效;WebGPU 的 <points> 大小固定为 1。
4 若需在 WebGPU 中控制大小,请改用 <sprite> + 实例化,或设置 sizeNode。 */}
5 <pointsNodeMaterial
6 color="aquamarine"
7 size={15}
8 sizeAttenuation={true}
9 alphaToCoverage={true}
10 />
11</points>