如何在three.js中生成具有3个面的形状

时间:2018-07-01 22:04:25

标签: three.js 3d

我正在尝试以3d方式生成具有透明面或仅3个面板的3d矩形形状。

我是three.js的新手,我想知道这是否可行,是否可以指导我。

非常感谢!

您可以在此处找到我想要生成的图像: https://i.stack.imgur.com/h0ja7.png

1 个答案:

答案 0 :(得分:1)

作为一种选择,您可以这样操作:

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.set(2, 2, 3);
camera.lookAt(scene.position);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setClearColor(0x404040);
document.body.appendChild(renderer.domElement);

var contorls = new THREE.OrbitControls(camera, renderer.domElement);

var boxGeom = new THREE.BoxGeometry(2, 1, 1);
var mat1 = new THREE.MeshBasicMaterial({
  color: "red",
  side: THREE.DoubleSide
});
var mat2 = new THREE.MeshBasicMaterial({
  color: "aqua",
  side: THREE.DoubleSide,
  transparent: true,
  opacity: 0.5
});
var boxMat = [mat1, mat1, null, null, mat2, null];
var box = new THREE.Mesh(boxGeom, boxMat);

scene.add(box);

render();

function render() {
  requestAnimationFrame(render);
  renderer.render(scene, camera);
}
body {
  overflow: hidden;
  margin: 0;
}
<script src="https://threejs.org/build/three.min.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script>