gpt4 book ai didi

javascript - 在 THREE.js 中一起渲染多个框

转载 作者:行者123 更新时间:2023-12-04 07:18:59 26 4
gpt4 key购买 nike

我正在尝试将多个框一起呈现在我提供的图片中的结构中。我想随着我添加更多来测试GPU的局限性,所以稍后我会尝试优化。我正在使用 THREE.js,它是用 JavaScript 编写的。如果可能的话,我想用一个三维数组来实现这个任务。我认为这将是最有效的方式。不知道如何在 JavaScript 中这样做。
【盒子群1

最佳答案

像这样尝试:

let renderer, scene, camera;

init();
animate();

function init() {

// renderer
renderer = new THREE.WebGLRenderer({
antialias: true
});
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setPixelRatio(window.devicePixelRatio);
document.body.appendChild(renderer.domElement);

// scene
scene = new THREE.Scene();

// camera
camera = new THREE.PerspectiveCamera(40, window.innerWidth / window.innerHeight, 1, 10000);
camera.position.set(40, 40, 40);
camera.lookAt(0, 10, 0);

// geometry
const geometry = new THREE.BoxGeometry();
const edgesGeometry = new THREE.EdgesGeometry(geometry);

// material
const material = new THREE.MeshBasicMaterial({
color: 0xffff00,
});
const edgesMaterial = new THREE.LineBasicMaterial({
color: 0x000000
});

// positions
for (let x = -10; x < 10; x++) {

for (let y = 0; y < 20; y++) {

for (let z = -10; z < 10; z++) {

// mesh
const mesh = new THREE.Mesh(geometry, material);
mesh.scale.multiplyScalar(0.9);
mesh.position.set(x, y, z);
scene.add(mesh);

const lines = new THREE.LineSegments(edgesGeometry, edgesMaterial);
mesh.add(lines);

}
}
}

}

function animate() {

requestAnimationFrame(animate);

renderer.render(scene, camera);

}
body {
margin: 0px;
}
<script src="https://cdn.jsdelivr.net/npm/three@0.130.1/build/three.min.js"></script>

关于javascript - 在 THREE.js 中一起渲染多个框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68622610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com