No matter what size I give PointsMaterial, the size is always 1 pixel

Is anyone aware of any issues with setting the size of a PointsMaterial? I’m trying to use Points in my three.js scene but no matter what size I give the PointsMaterial, they are always 1 pixel.

I’m using three.webgpu.js v176.

Here is my Points code:

const numPoints = 1_000_000;
const positions = new Float32Array(numPoints * 3);
for (let i = 0; i < numPoints * 3; i++) {
  positions[i] = (Math.random() - 0.5) * 1000; // Random in range [-500, 500]
}
const geometry = new THREE.BufferGeometry();
geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
const material = new THREE.PointsMaterial({
  size: 1.5, // <-- changing this does nothing
  color: 0xffffff,
  sizeAttenuation: true
});
const points = new THREE.Points(geometry, material);
scene.add(points);

AFAIK on WebGPU, points rasterize at 1 px, so PointsMaterial.size / sizeAttenuation don’t have an effect. But not impossible. For larger dots this explains the approach:

1 Like