Не могу придумать как написать генератор 3D кары. Карта представляет собой массив xyz. Каждая ячейка массива хранит в себе 1 элемент карты. На карте должны присутствовать горы не выше определенной высоты, реки, озера, пещеры.
Пока есть две идеи: 1)описать поверхность формулой и потом заполнить все точки снизу этой поверхности. Но вот как это сделать я не знаю. Не знаю как описать такую поверхность.
2) сначала массив заполняется элементами до какого то уровня, после чего в случайных точках создаются горы, которые описываются формулой полушара, тетраэдра/октаэдра и т. п. Реки описывающиеся случайно кривой, озера и пустые области (пещеры). Это более простой метод, но он не будет давать, в конечном итоге, сильно отличающихся красивых рандомных карт.
Другие языки программирования и технологии
Как написать генератор карт?
Не очень понял как это--карта-массив.
Я бы вообще генерировал напрямую, без всяких промежутков, записывая ключевые точки при необходимости.
Создается плоскость. Покрывается рандомными горами, у каждой из них случайное положение, высота, радиус, фокальный сдвиг. Далее создаем рандомные равнины: выбираем случайную точку по x y, радиус, фокальный сдвиг, выравниваем эту область, следим чтобы они не оказывались слишком близко друг к другу, добавляем шум к выравненной области. К горам, кстати, тоже можно шум добавлять. По аналогии делаются озера. Для реки нам потребуется сгенерировать N ключевых точек (генерируются только x и y, z потом корректируется), между каждой парой точек можно добавить Z шумовых точек чтобы река не была совершенно прямой; вокруг линнии, соединяющей точки, надо будет выровнять местность, генератор равнин в помощь. Пещеры генерируются по аналогии с реками, но под землей без выравнивания и ключевые точки рандомизируются по всем координатам.
Ну то есть в начале мы сеем хаос и неразбериху, а потом нужные области сглаживаем, все остальное остается во власти гор. Засчет того, что начинаем с гор, получаем выровненные области на разных высотах.
Касательно начальной генерации гор, можно генерировать их областями, в каждой области со своими параметрами. То есть где-то будут холмы, где-то утесы.
А вам вообще для чего нужно?
Пахнет чем-то вроде майнкрафта, мой алгоритм должен подойти.
Собственно, могу описать еще подробнее, если вы считаете что будет однообразно.
Я бы вообще генерировал напрямую, без всяких промежутков, записывая ключевые точки при необходимости.
Создается плоскость. Покрывается рандомными горами, у каждой из них случайное положение, высота, радиус, фокальный сдвиг. Далее создаем рандомные равнины: выбираем случайную точку по x y, радиус, фокальный сдвиг, выравниваем эту область, следим чтобы они не оказывались слишком близко друг к другу, добавляем шум к выравненной области. К горам, кстати, тоже можно шум добавлять. По аналогии делаются озера. Для реки нам потребуется сгенерировать N ключевых точек (генерируются только x и y, z потом корректируется), между каждой парой точек можно добавить Z шумовых точек чтобы река не была совершенно прямой; вокруг линнии, соединяющей точки, надо будет выровнять местность, генератор равнин в помощь. Пещеры генерируются по аналогии с реками, но под землей без выравнивания и ключевые точки рандомизируются по всем координатам.
Ну то есть в начале мы сеем хаос и неразбериху, а потом нужные области сглаживаем, все остальное остается во власти гор. Засчет того, что начинаем с гор, получаем выровненные области на разных высотах.
Касательно начальной генерации гор, можно генерировать их областями, в каждой области со своими параметрами. То есть где-то будут холмы, где-то утесы.
А вам вообще для чего нужно?
Пахнет чем-то вроде майнкрафта, мой алгоритм должен подойти.
Собственно, могу описать еще подробнее, если вы считаете что будет однообразно.
Не. Задайте картe сеткой, с определенным шагом. У Вас получатся квадратики, с известными координатами вершин: их Вы можете отрисовывать непосредственно, как плоскости, из своей программы, или через OpenGL, DirectX, и тд.
А заполнять вершины, можно случайными числами, а можно скачивать реальные карты, или рисовать в 3D-редакторах.
А заполнять вершины, можно случайными числами, а можно скачивать реальные карты, или рисовать в 3D-редакторах.
Похожие вопросы
- Генератор Случайных Чисел
- Люди умоляю скажите ключ к photoshop cs3 extented скока генераторов качал ниче не помогло напишите просто ключ плззз !!!
- Генератор случайных чисел на VS C++
- Подскажите как удалить такой банер в нэте искал не помогает даже генераторы кодов
- нужен генератор двоичного кода (Pascal)
- Генератор случайных слов (строк) из файла на C++.
- С точки зрения NFC reader-ов есть ли разница при использовании карты с NFC и
- Помогите с проблемой,Есть ли или существует метод-способ востоновить данные,файлы с карты памяти телефона.
- Заблокировалась сим-карта. Выкинуть или можно восстановить?
- Какая конкретная польза от карты сайта?
Я вот примерно тоже самое хотел сделать, как и вы описали..)) Только меня останавливают именно горы) Мне нужно рандомить холмы, каньоны, при этом нужно, чтобы они были разных форм (сфера, продольная и т. п.). Есть идея рандомить горы как и реки - выбирается случайное число точек, которые считаются вершинами одной горы и по ним строится сама гора) Только вот это все нагружает проц)