【发布时间】:2018-01-09 00:03:15
【问题描述】:
我看到 Threejs 有一个 Points Material 可以将几何图形绘制为点而不是三角形。但是,我想使用我自己的顶点着色器,使用着色器材质来操作顶点。在 WebGL 中,我想我可以使用 gl.Points 而不是 gl.Triangles 来调用 gl_drawArrays。如何告诉渲染器将几何图形绘制为点?有没有更好的方法来解决这个问题?
【问题讨论】:
标签: three.js
我看到 Threejs 有一个 Points Material 可以将几何图形绘制为点而不是三角形。但是,我想使用我自己的顶点着色器,使用着色器材质来操作顶点。在 WebGL 中,我想我可以使用 gl.Points 而不是 gl.Triangles 来调用 gl_drawArrays。如何告诉渲染器将几何图形绘制为点?有没有更好的方法来解决这个问题?
【问题讨论】:
标签: three.js
一点补充,直到我将 gl_PointSize 添加到我的顶点着色器中,我才感到高兴:
void main(){
gl_PointSize = 100.;
gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.);
}
【讨论】:
在提出问题后立即找到了我的解决方案。只需使用您想要使用的任何几何体和着色器材质创建一个 THREE.Points 对象而不是 THREE.Mesh。
THREE.Points(geometry, new THREE.ShaderMaterial(parameters));
【讨论】: