我犟不过你
我犟不过你

Reputation: 31

'vertexColors' parameter is undefined?

const material = new THREE.LineBasicMaterial({
          vertexColors: THREE.VertexColors, 
          transparent: true, 
          side: THREE.DoubleSide,
        })

why?

enter image description here

Upvotes: 3

Views: 1717

Answers (2)

Arif Widagdo
Arif Widagdo

Reputation: 11

Parameters in Material vertexColors are boolean, true or false. so if you have specified point color in float array then it can define boolean value (true or false), I will give a little example like this, and this is what I did it worked.

const myGeo = new THREE.BufferGeometry();

let vertices = new Float32Array([ 
    -1.0, -1.0, 1.0, // 0
    1.0, 1.0, 1.0, // 1
    -1.0, 1.0, 1.0, // 2
    1.0, -1.0, 1.0, // 3
    
    -1.0, -1.0, -1.0, // 4
    1.0, 1.0, -1.0, // 5
    -1.0, 1.0, -1.0, // 6
    1.0, -1.0, -1.0, // 7
]);

let colors = new Float32Array([
    1.0, 0.0, 0.0, // Vertex 0 (Red)
    1.0, 0.0, 0.0, // Vertex 1 (Red)
    1.0, 1.0, 0.0, // Vertex 2 (Yellow)
    1.0, 1.0, 0.0, // Vertex 3 (Yellow)
    0.0, 1.0, 0.0, // Vertex 4 (Green)
    0.0, 1.0, 0.0, // Vertex 5 (Green)
    0.0, 0.0, 1.0, // Vertex 6 (Blue)
    0.0, 0.0, 1.0, // Vertex 7 (Blue)
]);
myGeo.setAttribute('position', new THREE.BufferAttribute( vertices, 3 ));
myGeo.setAttribute('color', new THREE.BufferAttribute( colors, 3 ));
myGeo.setIndex([.....]);

const material= new THREE.MeshBasicMaterial({ vertexColors:true, side: THREE.DoubleSide, });

let mesh = new THREE.Mesh(myGeo, material)
scene.add(mesh);

Upvotes: 1

M -
M -

Reputation: 28462

.vertexColors can either be true or false, nothing else. THREE.VertexColors does not exist, so it comes out as undefined.

https://threejs.org/docs/index.html#api/en/materials/Material.vertexColors

Upvotes: 3

Related Questions