gpt4 book ai didi

javascript - 球体的三个js buffergeometry

转载 作者:行者123 更新时间:2023-11-30 10:12:58 24 4
gpt4 key购买 nike

我试图制作一个显示大量球形对象的三个 js 文档,最快的方法是使用 buffergeometry。来自这篇文章here我了解到我可以使用以下方法将普通几何体转换为缓冲几何体:

    var sphere = new THREE.SphereGeometry( 4, 0.05, 0.025 );
var geometry = THREE.BufferGeometryUtils.fromGeometry( sphere );

但这似乎对我不起作用,创建对象的其余代码如下:

    var positions = new Float32Array( x_GAMA.length * 3 );


for ( var i = 0; i < x_GAMA.length; i += 1 ) {

// positions

positions[ 3*i ] = x_GAMA[i]*10000;
positions[ 3*i + 1 ] = y_GAMA[i]*10000;
positions[ 3*i + 2 ] = z_GAMA[i]*10000;



}
geometry.addAttribute( 'position', new THREE.BufferAttribute( positions, 3 ) );

var material = new THREE.PointCloudMaterial( {size:1,color:0x999999} );

geometry.computeBoundingSphere();

particleSystem = new THREE.PointCloud( geometry, material );


scene.add( particleSystem );

如果我使用 var geometry = new THREE.BufferGeometry(); 效果很好,但这会创建我不想要的正方形。任何人都知道为什么这似乎不起作用?提前致谢。

最佳答案

Three.js r71 中,您可以像这样创建 Sphere Buffer Geometry:

var sphereGeometry = new THREE.SphereGeometry( 4, 3, 2 );
var bufferSphereGeometry = new THREE.BufferGeometry().fromGeometry( sphereGeometry );

r72 dev 中,您可以像这样直接进行操作:

// constructor: radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength
var sphereGeo = new THREE.SphereBufferGeometry( 4, 3, 2 ); //r72

关于javascript - 球体的三个js buffergeometry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25491068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com