How to render a double-sided shader material

Hello all. The question is simple: I have a custom shader material, which I apply to Points (not a Mesh) to basically deform the surface. The gist is:

void main() {
	vUv = uv;
	vec3 transformedNormal = normal;

	// add time to the noise parameters so it's animated
	noise = 10.0 *  -.10 * turbulence( 7.5 * transformedNormal + time );
	float b = magnitude * pnoise( 0.05 * position + vec3( 2.0 * time ), vec3( 100.0 ) );
	float displacement = - noise + b;

	vec3 newPosition = position + transformedNormal * displacement * displacement;
	gl_PointSize = pointSize;
	gl_Position = projectionMatrix * modelViewMatrix * vec4( newPosition, 1.0 );

How do I go about also rendering the points when normals are back-facing?

Is this similar to what you’re looking for: Way to hide Points if geometry is seen from backside? ?

@prisoner849 I think I am looking for the opposite. You can see the source code here:

The vertex shader is here:

But I want to display all the points. As it stands, points do not appear on the backside. If I rotate the geometry (as I do), I only see a “half-moon”, ie. a half-cylinder.

In my example, use non-negated normalized mvPosition: normalize( (without minus)

Actually, thanks a lot for your help, it turns out my shaders are working as they should, but there is some kind of clipping along a vertical plane occurring at depth 0.

If I move the geometry to z = 100, with my camera at z = 1,000 in my case (and the camera.far, by default, at 2,000), then all the points show as expected.

I am still confused. The camera is preset by the framework (react-three-fiber in this case), so I am not sure which setting is causing this clipping. Ideas welcome to help me fix this.