0
我正在进行程序性地形生成。此刻,我得到了由柏林噪音产生的地形。现在我想实施一个程序化的草代,但有一些限制。在顶部网格上产生物体
我只想生成草,如果是在世界中心半径和地面上。我可以很容易地在世界中心的半径内产卵。问题是我不知道如何知道指定坐标的高度。
这是我试图实现这一点,但不起作用,我不知道该怎么做。我需要一些建议。
var group = new THREE.Group();
noise.seed(23);
var worldWidth = 256, worldDepth = 256;
var data = generateNoise(worldWidth, worldDepth);
var geometry = new THREE.PlaneBufferGeometry(7500, 7500, worldWidth - 1, worldDepth - 1);
geometry.rotateX(- Math.PI/2);
geometry.computeBoundingBox();
var vertices = geometry.attributes.position.array;
var positions = []
for (var i = 0, j = 0, l = vertices.length; i < l; i ++, j += 3) {
vertices [ j + 1 ] = data[ i ] * 10;
//check if this coordinate is inside the radius we want to know if can spawn a grass
// if is inside spawn a plant knowing the height of this position
}
var grass = new THREEx.createGrassTufts(positions)
group.add(grass);
var texture = assets.textures.grass.val;
var material = new THREE.MeshPhongMaterial({ map: texture, shading: THREE.SmoothShading });
var ground = new THREE.Mesh(geometry, material);
ground.receiveShadow = true;
ground.castShadow = true;
group.add(ground);
_but doesn没有工作,我也不知道该怎么做。寻求调试帮助的问题(“为什么这个代码不工作?”)必须包含所需的行为,特定的问题或错误以及在问题本身中重现问题所需的最短代码。没有明确问题陈述的问题*对其他读者无益*。请参阅:如何创建[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。 – Marcs
地面的高度与佩林噪声所分配的值不同吗?如果您正在寻找平均高度或距离最低点的高度,则需要从噪声集中获取该信息,或者在顶点操纵过程中计算平均值/最低点,然后执行第二步通过计算真实身高。 – TheJim01