如何解决Three.js在动画循环中加载网格
我正在使用Three.js创建一个超基本的Minecraft克隆,我试图让单个块在摄像机移动时加载/生成。
我有一个函数可以迭代播放器渲染距离中的所有块。
const renderDist = 4;
function renderChunks(playerX,playerZ) {
for (let chnkZ = playerZ-renderDistance; i < playerZ+renderDist; i++) {
for (let chnkX = playerX-renderDistance; i < playerX+renderDist; i++) {
loadChunk(); // Both generates chunk geometry and adds the chunk to the scene
}
}
}
然后我在动画循环中调用此函数。
function animate() {
renderChunks();
controls.update();
requestAnimationFrame( animate );
renderer.render(scene,camera);
}
animate();
如果在加载另一个块时帧不会立即掉落,这将不是问题,所以我想知道在动画循环继续的同时是否可以加载这些块而不会导致其暂停。我环顾四周,并尝试了诸如Promises和await / async功能之类的东西,这些功能我认为可以工作,但是我不确定是否正确实施了它们。我不能只是将几何图形预加载到init()
中,因为我希望世界无限生成。我只希望在播放器仍然可以移动的同时加载这些块。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。