shaders/pointCloud.tstypescript
import { ShaderProgram } from "../webgl/ShaderProgram";
//Picking is the same
export function pointCloud(): ShaderProgram {
return new ShaderProgram("pointCloud", {
uniforms: {
projectionViewMatrix: "mat4",
opacity: "float",
pointSize: "float"
},
attributes: {
coordinates: "vec3",
colors: "vec3"
},
vertexShader: `attribute vec3 coordinates;
attribute vec4 colors;
uniform mat4 projectionViewMatrix;
uniform float opacity;
uniform float pointSize;
varying vec4 color;
void main() {
color = colors;
color.a *= opacity;
gl_Position = projectionViewMatrix * vec4(coordinates, 1.0);
gl_PointSize = pointSize;
}`,
fragmentShader: `precision highp float;
varying vec4 color;
void main(void) {
gl_FragColor = color;
}`
});
}