WebGPU StandardMaterial doesn't recognize pointSize

Yes, a quad is drawn as two triangles. You can use non-indexed triangles in Babylon by calling Mesh.convertToUnIndexedMesh. This way, you will get the vertex index thanks to gl_VertexID in glsl (equivalent to vertex_index in WebGPU) and use it to retrieve the extent of the particle for this vertex.

You can implement it like this:

You have to create a position vertex buffer to replace the existing vertex buffer of the ground, because this buffer must be flagged as “instanced”, meaning each entry of the buffer is used for one instance of the quad (this position buffer gives the position of each particle).

You also have to set ground.subMeshes[0].verticesCount = 6 to indicate that the quad geometry is made of 6 vertices (2 triangles), because by default SubMesh.verticesCount is set to the number of entries in the position buffer (1000 in the PG).

Lastly, you have to indicate that the ground mesh must be drawn as an instanced geometry, by setting a value to forcedInstanceCount, which is the number of instances you want to draw (here, the number of particles).

Not at all, it’s an interesting subject to discuss!