Three js buffergeometry for spheres

Im trying to make a three js document which shows lots of spherical objects, the quickest way to do this is by using buffergeometry. From this post here I learned that I could convert normal geometry into buffergeometry using:

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

But this does not seem to work for me, the rest of the code that creates the object reads:

 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 );

It works fine if I use var geometry = new THREE.BufferGeometry(); but this creates squares which I do not want. Anyone have any idea why this does not seem to work? Thanks in advance.

1 Answer

In Three.js r71 you can create Sphere Buffer Geometry like this:

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

In r72 dev you can do ít straightforward like this:

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like