THREE.Points disappear before exiting frustum

Hi!

I have a problem with THREE.Points. The point objects become invisible before exiting the frustum.
This can be seen in the example here on THREE.JS site:
https://threejs.org/examples/?q=sprite#webgl_points_sprites

The snowflakes disappear when the center of the texture has crossed the edge of the view. In other words, I guess what is happening is that when the actual coordinate of a point goes outside the frustum, it is made invisible.

I have tried to disable Frustum culling but the same thing still keeps happening. Does anyone have a solution for this? I would like to have the points be visible for as long as there is even a slightest sliver of sprite texture showing.

Works for me, this is a slowed down version of the example, when I rotate the camera, I can see all the slivers of textures when the snowflakes are leaving the frustum:

1 Like

Hmm, this is strange.
For me it is happening in your fiddle also. Maybe this goes then deeper into the GPU? I am running on a Mac with Radeon Pro 5500M.

One thing that might be relevant is point size range, there is a code in the fiddle that prints it into the console:

const gl = renderer.getContext();
const ALIASED_POINT_SIZE_RANGE = gl.getParameter(gl.ALIASED_POINT_SIZE_RANGE);
console.log(ALIASED_POINT_SIZE_RANGE);

for me it’s 1 - 1024

if you right click the canvas and click inspect it will open normal dev tools and you can have a look.

This is what it looks like to me:

How does the range affect the visibility?

It affects the min/max size of a point that can be displayed (in pixels) but your values seem to be ok.

Try this, without devicePixelRatio

if it doesn’t help, I don’t know what else it can be.

That still did not fix the problem. But thanks for the help anyhow!

Try different browsers on the same GPU - maybe it’s a bug in WebGL implementation, if it doesn’t work in all browsers then probably it’s something hardware specific.