我目前正在为浏览器开发一种街机游戏(与Minecraft比较),并且正在教授three.js。
我想在我的世界中添加某种云(如您在图片中所见)-但动态生成它们时存在一些问题。
我认为,最好根据噪声完成所有操作-但是我到底该如何使用它添加此类云呢? -与:D
相比,我生成的云看起来真的很恐怖我期待任何帮助!
如何使用噪声函数生成这些云?
注意:这是我使用的噪音功能: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
})));
这就是上面代码的云: