用不同的颜色为每个点着色 Threejs
Color each point in different color Threejs
我有点和颜色 (r, g, b)。我需要为一点使用一种颜色。
我这样做了
const vertices = new Float32Array(data.points);
const colors = new Float32Array(data.colors)
geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
geometry.setAttribute( 'color', new THREE.BufferAttribute( colors, 3 ) );
const material = new THREE.PointsMaterial({color: colors});
const pointCloud = new THREE.Points( geometry, material)
this.scene.clear();
this.scene.add( pointCloud );
this.renderer.render(this.scene, this.camera);
这样我就得到了白点。如果我使用:
const material = new THREE.PointsMaterial( { vertexColors: true } );
我收到这个错误:
[.WebGL-0x2e2bb1a84c00]GL ERROR :GL_INVALID_OPERATION : glDrawArrays: attempt to access out of range vertices in attribute 1
谢谢:)
首先,我需要使用从 0 到 1(不是 0 到 255)的颜色。然后我需要得到长度相同的数组。我需要使用 { vertexColors: true }。
我有点和颜色 (r, g, b)。我需要为一点使用一种颜色。 我这样做了
const vertices = new Float32Array(data.points);
const colors = new Float32Array(data.colors)
geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
geometry.setAttribute( 'color', new THREE.BufferAttribute( colors, 3 ) );
const material = new THREE.PointsMaterial({color: colors});
const pointCloud = new THREE.Points( geometry, material)
this.scene.clear();
this.scene.add( pointCloud );
this.renderer.render(this.scene, this.camera);
这样我就得到了白点。如果我使用:
const material = new THREE.PointsMaterial( { vertexColors: true } );
我收到这个错误:
[.WebGL-0x2e2bb1a84c00]GL ERROR :GL_INVALID_OPERATION : glDrawArrays: attempt to access out of range vertices in attribute 1
谢谢:) 首先,我需要使用从 0 到 1(不是 0 到 255)的颜色。然后我需要得到长度相同的数组。我需要使用 { vertexColors: true }。