Хорошо, я работаю над маленькой игрой здесь, на Java, и использую this Simplex Noise generator, который я нашел в Интернете. Проблема, с которой я столкнулся, заключается в следующем: Я генерируя мир моей игры, как так:Преобразование 2D симплекс-шума в 1D?
int width = 100;
int height = 100;
world = new int[width * height];
SimplexNoise noise = new SimplexNoise();
for (int i = 0; i < world.length; i++) {
int x = i % width; // what are the coordinates from i ?
int y = i/width ;
int frequency = 15;
float h = (float) noise.noise((float) x/frequency, (float) y/frequency);
if (h >= -1 && h <= 0) {
world[x + y * width] = 0; // air tile
}
else if (h > 0 && h <= 1) {
world[x + y * width] = 1; // test tile
}
}
, которые вполне очевидно, дает мне 2D шум. Конечный результат выглядит следующим образом:
Насколько я понимаю шум, 2D-шум для игр сверху вниз. Тем, над которым я работаю, это скроллер (например, Terraria, Starbound, Crea и другие). Поэтому мне нужен terragen, чтобы дать мне самый верхний слой местности, google говорит мне, что это 1D-шум, поэтому вот вопрос: как преобразовать этот 2D-шум в ландшафтный 1D-шум?
Вы можете нарисовать изображение того, что хотите? Возможно, вам нужно что-то вроде [1D Perlin Noise]? (https://raw.githubusercontent.com/kaini/noise/master/doc/perlin_1d.png – caulitomaz
Yup, это именно то, что я хотел бы. @caulitomaz – Makerimages
Возможно, вам не нужно преобразовывать его в 1D, просто reimplement 1D Simplex/Perlin noise вместо 2D. Пожалуйста, обратитесь к: http://stackoverflow.com/questions/8798771/perlin-noise-for-1d – caulitomaz