JS-如何创建我的世界风格的云?

时间:2019-07-14 14:52:55

标签: javascript three.js html5-canvas minecraft

我目前正在为浏览器开发一种街机游戏(与Minecraft比较),并且正在教授three.js。

我想在我的世界中添加某种云(如您在图片中所见)-但动态生成它们时存在一些问题。

我认为,最好根据噪声完成所有操作-但是我到底该如何使用它添加此类云呢? -与:D

相比,我生成的云看起来真的很恐怖

我期待任何帮助!

Minecraft clouds


  

如何使用噪声函数生成这些云?

注意:这是我使用的噪音功能:https://github.com/josephg/noisejs


我的 three.js 代码:

noise.seed(Math.random());
let cloudsGeometry = new THREE.Geometry();
let cloudSize = {
  width: 100,
  height: 40,
  depth: 100
}

for (let x = 0; x < 100; x++) {
  for (let z = 0; z < 100; z++) {
    let value = noise.simplex2(x / 100, z / 100);
    if (Math.abs(value) > 0.2) continue;
    let geometry = new THREE.BoxGeometry(cloudSize.width, cloudSize.height, cloudSize.depth);
    let cube = new THREE.Mesh(geometry);
    cube.position.z = z * cloudSize.depth
    cube.position.x = x * cloudSize.width
    cube.updateMatrix()
    cloudsGeometry.merge(cube.geometry, cube.matrix)
  }
}

scene.add(new THREE.Mesh(cloudsGeometry, new THREE.MeshBasicMaterial({
  color: 0xffffff
})));

这就是上面代码的云:

enter image description here

0 个答案:

没有答案