我正在使用THREE.WebGLRenderer,我想在3D空间的特定位置绘制一些相同大小的白点.
我应该使用精灵,计算2D屏幕坐标并使用SpriteMaterial.useScreenCoordinate?
我应该使用它们与相机的距离来重新计算精灵的大小吗?
我可以使用SpriteMaterial.scaleByViewport或SpriteMaterial.sizeAttenuation吗?有没有这方面的文件?
有像GL_POINTS这样的东西吗?定义1个顶点并在该位置获得彩色像素会很不错.我应该尝试使用PointCloud吗?
谢谢你的任何提示!
编辑:所有点在屏幕上应具有相同的大小.
解决方法
使用.sizeAttenuation和单顶点PointCloud工作,但感觉有点……过度设计:
var dotGeometry = new THREE.Geometry(); dotGeometry.vertices.push(new THREE.Vector3( 0,0)); var dotMaterial = new THREE.PointsMaterial( { size: 1,sizeAttenuation: false } ); var dot = new THREE.Points( dotGeometry,dotMaterial ); scene.add( dot );