私は3つの材料の配列を持っています。これらの 1 つは、透過性が true に設定され、不透明度が 0 に設定された MeshBasicMaterial です。
他の面の内壁が見えることを期待して、この透明なマテリアルを立方体の上面に割り当てました。
ただし、代わりに、上面は単純に描画されず (キャンバスの背景のように白く表示されます)、「透けて見える」ことはありません。
これはどのように達成されますか?
(最終的な効果は、上部が開いた箱になります)
// FELT TEXTURE
var felt = new THREE.MeshLambertMaterial({
map: THREE.ImageUtils.loadTexture('images/greenfelt.jpg')
});
// WOOD TEXTURE
var wood = new THREE.MeshLambertMaterial({
map: THREE.ImageUtils.loadTexture('images/woodgrey.jpg')
});
// TRANSPARENT MATERIAL
var transparent = new THREE.MeshBasicMaterial({
opacity: 0,
transparent: true
});
var materials = new THREE.MeshFaceMaterial([
felt,
wood,
transparent
]);
var cube = new THREE.CubeGeometry(RECTANGLE_WIDTH, RECTANGLE_HEIGHT, RECTANGLE_DEPTH );
cube.faces[0].materialIndex = 1; // LEFT
cube.faces[1].materialIndex = 1; // RIGHT
cube.faces[2].materialIndex = 1; // BACK
cube.faces[3].materialIndex = 1; // FRONT
cube.faces[4].materialIndex = 2; // TOP (TRANSPARENT)
cube.faces[5].materialIndex = 0; // BOTTOM
// RECTANGLE
var rectangle = new THREE.Mesh( cube, materials );
scene.add( rectangle );