Skip to content

Rendering a scene including points with an override material causes inconsistent behavior #28522

@Oletus

Description

@Oletus

Description

MeshNormalMaterial and MeshDepthMaterial shaders do not define gl_PointSize. When rendering a scene including points with MeshNormalMaterial or MeshDepthMaterial set as the override material, the points get a random size on Chrome on Mac with an M-series processor, resulting in severe artifacts.

Solution

We could disable rendering points when using an override material that doesn't support points.

Alternatives

We could set gl_PointSize in all shaders, but this could add overhead depending on how well the shader translation handles it. On D3D, gl_PointSize needs to be emulated by rendering quads, so setting gl_PointSize complicates translating the shader to the underlying system rendering API.

Additional context

This issue might be resolved in the WebGL spec at some point. See related discussion here: KhronosGroup/WebGL#3370

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions