3

カスタム配置面を作成してカスタム ジオメトリを作成しています。for マテリアルを使用してMeshNormalMaterialおり、面の色を互いに独立して定義したいと考えています。ただし、設定した色に関係なく、同じ外観の結果が得られます。

以下の私のコード:

var geometry = new THREE.Geometry();
for (var i = 0; i < length - 1; i++) {
  for (var j = 0; j < length - 1; j++) {
    geometry.vertices.push(new THREE.Vector3(x[i][j], y[i][j], z[i][j]));
    geometry.vertices.push(new THREE.Vector3(x[i + 1][j], y[i + 1][j], z[i + 1][j]));
    geometry.vertices.push(new THREE.Vector3(x[i + 1][j + 1], y[i + 1][j + 1], z[i + 1][j + 1]));
    geometry.vertices.push(new THREE.Vector3(x[i][j + 1], y[i][j + 1], z[i][j + 1]));
    var face = new THREE.Face4(index, index + 1, index + 2, index + 3);
    face.color.setHex(color);
    geometry.faces.push(face);
    index += 4;
  }
}

geometry.computeFaceNormals();
var object = new THREE.Mesh(geometry, new MeshNormalMaterial());
parent.add(object);

顔の色を設定して、設定した色を実際に表示できるようにするには、上記のコードに何を変更すればよいですか?

4

1 に答える 1

3

私の知るMeshNormalMaterial限り、常に同じ色が表示されます。

これを試して:

new MeshBasicMaterial({ vertexColors : THREE.VertexColors })
于 2012-09-19T12:50:44.183 に答える