EventDispatcher → Material → NodeMaterial → SpriteNodeMaterial →

# PointsNodeMaterial

Node material version of PointsMaterial.

This material can be used in two ways:

- By rendering point primitives with Points. Since WebGPU only supports point primitives with a pixel size of `1`, it's not possible to define a size.

- By rendering point primitives with Sprites. In this case, size is honored, see PointsNodeMaterial#sizeNode.

    const instancedPoints = new THREE.Sprite( new THREE.PointsNodeMaterial( { positionNode: instancedBufferAttribute( positionAttribute ) } ) );

## Code Example

    const pointCloud = new THREE.Points( geometry, new THREE.PointsNodeMaterial() );

## Constructor

### new PointsNodeMaterial ( parameters : Object )

Constructs a new points node material.

parameters | The configuration parameter.

## Properties

### .alphaToCoverage : boolean

Whether alpha to coverage should be used or not.

Default is `true`.

Overrides: SpriteNodeMaterial#alphaToCoverage

### .isPointsNodeMaterial : boolean (readonly)

This flag can be used for type testing.

Default is `true`.

### .sizeNode : Node.<vec2>

This node property provides an additional way to set the point size.

Note that WebGPU only supports point primitives with 1 pixel size. Consequently, this node has no effect when the material is used with Points and a WebGPU backend. If an application wants to render points with a size larger than 1 pixel, the material should be used with Sprite and instancing.

Default is `null`.

## Source

src/materials/nodes/PointsNodeMaterial.js