javascript - 球体的三个js buffergeometry

标签 javascript three.js buffer-geometry

我试图制作一个显示大量球形对象的三个 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/

相关文章:

javascript - three.js:如何将 Material 数组添加到八面体几何体

javascript - THREE.BufferAttribute : . setArray 已被删除。使用 BufferGeometry .setAttribute unindexBufferGeometry

javascript - 需要网格和功能动态使用 jquery/javascript

javascript - Jquery 复选框分组 - 当至少单击一个子复选框时取消选中父级,当选中所有子复选框时选中父级

json - 将颜色从 JSON 文件加载器传递到面孔

javascript - 如何在 Three.js 中向 ShaderMaterial 添加颜色?

javascript - 绘制 Three.js BufferGeometry 线时,颜色不会粘在线段上

three.js - 如何在 BufferGeometry 上应用 SubdivisionModifier?

javascript - CSS字体大小以保持相同的字宽

javascript - 如何在指令 Controller 中注入(inject)依赖项