Воскресенье, 24 Ноября 2024, 11:04

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Способы генерации 2D ландшафта
LetsOffBrainsДата: Пятница, 11 Января 2013, 05:21 | Сообщение # 1
Project SoRDeLKa
Сейчас нет на сайте
Генерация ландшафта без корейского рандома, как такое реализовать?
Понятно можно использовать ключ, именуемый семенем(seed), но же с ним делать?
Использовать одну функцию для генерации одной вещи с применение множителей из ключа?
Или есть еще варианты? Может без ключа?



vasua99Дата: Пятница, 11 Января 2013, 08:22 | Сообщение # 2
GNU follower
Сейчас нет на сайте
Рандом, для генерации ландшафта нужны специальные алгоритмы. Типо фракталов. Сам когда то пытался написать такую ерунду :-)

Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
GECKДата: Пятница, 11 Января 2013, 11:48 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Шум перлина же. Берешь любую понравившуюся функцию от координат точки, например такую:
Код
float Noise2D(int x, int y){
   int n = x + y * 57;
   n = (n<<13) ^ n;
   return ( 1.0f - ( (n * (n * n * 15731 + 789221) + 1376312589) & 0x7fffffff) / 1073741824.0f);
}

это будет "рандом", который строго определен для любой точки карты. А дальше все зависит от фантазии.


Всё гениальное просто. И хреново работает.
LetsOffBrainsДата: Пятница, 11 Января 2013, 12:01 | Сообщение # 4
Project SoRDeLKa
Сейчас нет на сайте
Прошу пояснить мне: (n<<13), 1.0f, & 0x7fffffff, 1073741824.0f
Нужно это чем-то заменять, вероятно, но без понимания... =)

И цифры 57, 13, 15731... это множители от которых и будет зависеть вид мира?



GECKДата: Пятница, 11 Января 2013, 17:37 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте

По сути, можно взять любую функцию с потолка. Например (a*x + b*y + c) % d и поиграть с коэффициентами.
А потом на основе этого рандома генерируешь шум перлина, а потом как-нибудь извращаешься над ним и получаешь ландшафт. Повторюсь, все зависит от фантазии smile


Всё гениальное просто. И хреново работает.
СибирскийДата: Пятница, 11 Января 2013, 17:42 | Сообщение # 6
Javatar
Сейчас нет на сайте
Рекурсивно наслаивай вокруг определенных точек различные породы по порядку.

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг