将自定义顶点着色器与THREE.Points一起使用

bry*_*ong 3 three.js

我看到Threejs有一个Points Material,可以将几何图形绘制为点而不是三角形。但是,我想使用自己的顶点着色器(Shader Material)来操纵顶点。在WebGL中,我想我可以使用gl.Points而不是gl.Triangles来调用gl_drawArrays。如何告诉渲染器将几何图形绘制为点?有没有更好的方法来解决这个问题?

bry*_*ong 5

在提出问题后立即找到了我的解决方案。只需使用您想要使用的任何几何体和着色器材质创建一个 THREE.Points 对象而不是 THREE.Mesh 。

三点(几何,新三。ShaderMaterial(参数));


Pet*_*man 5

一点点添加,直到将gl_PointSize添加到顶点着色器中之后,我才感到高兴:

void main(){
    gl_PointSize = 100.;
    gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.);
}
Run Code Online (Sandbox Code Playgroud)

GPU粒子系统示例中找到了答案。