【发布时间】:2014-06-29 11:55:11
【问题描述】:
如果输入值是整数,libnoise 的 Perlin.GetValue(x, y, z) 方法(使用 C# 端口)返回 0。我怎样才能将二维瓷砖数组(因为数组的索引是整数)映射到噪声值?这对我来说毫无意义,因为即使是 3D 地形最终也取决于整个整数值。对于生成此类 3D 景观的人来说,地形中的这些位置是否总是被限制为 0 值?
编辑:我应该提到我正在使用一个块系统,所以我循环遍历每个块的 [32, 32] 瓦片数组以获取 Perlin 噪声值。我希望通过将世界空间中的块的偏移量添加到数组中图块的 [x, y] 值,我可以拥有连续地形。无论如何,我尝试了这样的方法,但噪声函数仍然为零:
double temp = generator.GetValue((x + offsetX) / ChunkSize, (y + offsetY) / ChunkSize, 0);
编辑 2: 我将噪声函数的值输出到 32x32 纹理并将它们彼此相邻放置。尽管为块的偏移量调整了 x 和 y 值的输入,但噪声正在产生,但它不是连续的。
编辑 3: 问题已解决。我的偏移值设置为 pixel 坐标而不是 tile/chunk 坐标。我将块的索引乘以块大小乘以图块大小,而不仅仅是块大小(以图块为单位)。
【问题讨论】:
标签: c# 2d game-engine noise tiling