Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » need Генератор 2D/3D галактики (алгоритм/формула) | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 1
 
Поиск в этой теме:
Канал Игры Мечты: «need Генератор 2D/3D галактики (алгоритм/формула)»
SMax
 111 EGP


Репутация: 16
Сообщения: 957
Откуда: ХМАО, Сургут
Зарегистрирован: 02.07.2001
Пилоты!

Нужен алгоритм/формула для генерации реальных 3D спиралевидных, эллиптических и т.д. галактик.

Но для начала хотя бы спиральной 2D.

Решение генерации эллиптической формы галактики я ещё как-то понимаю, а со спиральной мысль отсутствует. Поиск в инете результата не дает. Подозрение.

Если есть у кого формулка или кусок кода, киньте плиз.
    Добавлено: 12:30 29-07-2005   
Vic3Dexe
 685 EGP


Репутация: 148
Сообщения: 2264
Откуда: Kiev
Зарегистрирован: 23.03.2004
Не понял, уравнение спирали надо, или что? Подозрение.
_________________
I'll be back... (c)
    Добавлено: 13:44 29-07-2005   
SMax
 111 EGP


Репутация: 16
Сообщения: 957
Откуда: ХМАО, Сургут
Зарегистрирован: 02.07.2001
Тоже вариант, но звёзды не прям по линии спиралей находятся. Короче внешне должно напоминать спиралевидную галактику, примерно как тут http://www.astroweb.ru/fotogal_/nasa_big/1009.jpg
_________________
Для войны нужно три вещи: Деньги, деньги и ещё раз деньги!
    Добавлено: 14:01 29-07-2005   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
действительно, Озадачен обеднела сеть работающими ссылками, вот только более-менее по замечательным кривым
http://www.exponenta.ru/soft/others/stud1/main.asp
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 14:27 29-07-2005   
SMax
 111 EGP


Репутация: 16
Сообщения: 957
Откуда: ХМАО, Сургут
Зарегистрирован: 02.07.2001
Спасибо, это уже ближе к практической стороне вопроса.

Может всё-таки есть какая-нибудь готовая формула именно для генерации галактики? Т.е. входными значениями является размер, конфигурация галактики и число звезд, а на выходе координаты звёзд.
    Добавлено: 08:35 30-07-2005   
Пассажир
 

Пассажир




Код:

float Gaussian() {
   // polar method of G. E. P. Box, M. E. Muller, and G. Marsaglia
   // See Knuth, ACP, Section 3.4.1 Algorithm C.
   static BOOL bNext = FALSE;
   static float next = 0;
   if ( bNext )  {  bNext = FALSE;  return next;   }

   float v1, v2, s;
   do {
      v1 = ufrand2();  // between -1 and 1
      v2 = ufrand2();  // between -1 and 1
      s = v1 * v1 + v2 * v2;
   } while ( s >= 1 || s == 0 );
   float multiplier = sqrtf( -2.f * logf(s) / s );
   next = v2 * multiplier;
   bNext = TRUE;
   return v1 * multiplier;
}


void SpiralGalaxy()
{
   for_i( nStars ) {
      ObjStar* obj = new Star;
      float ang = (Gaussian()+.5f) * Pi;
      float dist = expf( ang * .247f ) * 1000000000;  // спираль
      if ( urand(2) )  ang += Pi;     // второй рукав ( rand(2) возвращает 0 либо 1 )
      obj->pos.x = sinf(ang)*dist;
      obj->pos.z = cosf(ang)*dist;
      obj->pos += UVEC( Gaussian(), Gaussian(), Gaussian() ) * 200000000;  // разброс
      AddObj( obj );
   }
}


вот, сам на днях писал, коэфициенты подберешь
    Добавлено: 11:31 30-07-2005   
Пассажир
 

Пассажир




да, забыл
ufrand2() возвращает флоат ( -1 .. 1 )

inline float ufrand2() { return ((float)rand() / (RAND_MAX+1))*2-1; }
    Добавлено: 11:35 30-07-2005   
nomand
 460 EGP


Репутация: 158
Сообщения: 1128
Откуда: Новая Зеландия
Зарегистрирован: 17.01.2005
не знаю о чем здесь говорится, но есть 2D генератор галактик с возможностью 3D preview.Univerce image creator
_________________
i, nomand
    Добавлено: 01:40 31-07-2005   
Пассажир
 

Пассажир




ВАриантов создания 3D спиральной галактики - вагон... Я тут сваял класс, который генерит галактику (неск. сотен звезд), к каждой звезде - планетную систему (до 6 планет, до 2 спутников у каждой). Если интересно (класс на Delphi 5.0) могу на что-нить поменяться - сам игру пишу, так что кое-что мне треба...
    Добавлено: 23:28 15-09-2005   
L'osheg
 1080 EGP


Модератор
Рейтинг канала: 1(6)
Репутация: 227
Сообщения: 6068 Предупреждений: 1
Откуда: Texasкие мы...
Зарегистрирован: 25.04.2003
Астероидные пояса? Классы планет? Или все как в Паркане - обитабельные? Двойные звёзды? Беспланетные системы? Посадка на планеты? Метод генерации ландшафта?
ПС: Галактика это несколько более чем 500 звёзд... 500 звёзд это "мелкое локальное скопление в радиусе 150-200 св. лет."
_________________
Тооолстый тролль с нулевой кривизной дна
    Добавлено: 00:27 16-09-2005   
Krom
 455 EGP


Рейтинг канала: 1(3)
Репутация: 159
Сообщения: 1988
Откуда: Горы Урала
Зарегистрирован: 19.07.2005
Алгоритм можно простенький двухпроходный:
1) Сначала генерим расходящиеся от корреляционного центра лучи с любым наперёд заданным профилем плотности (только сферическую составляющую тут не надо добавлять),
2) Затем переводим полярную систему координат в спиральную - это та же полярная, но вводится зависимость угла от расстояния (а вот после можно и балдж присобачить, и шаровые скопления, если охота)

Ну и третий шаг - всё это в декартову систему. Сложность всё равно линейная. А сколько звёзд и прочего добра хочется?
_________________
Не спешите меня.
    Добавлено: 08:44 16-09-2005   
Пассажир
 

Пассажир




Ну что ж значится - по вопросам:
Минимальный размер "скопления" - 100 звезд, максимальный неограничен, но кратен 100.
Планетные системы - генерятся случайным образом, могут быть и вообще без планет (одна звезда любого из 7 типов (можно привести даже к классическому ряду спектров и величин)), а также содержать набор до 6 планет с 0-2 спутниками. Планеты 15 типов, по три варианта изображения каждого. В классе планет имеются поля для: массы, радиуса орбиты, диаметра планеты, периода обращения, наличия атмосферы, названия Улыбка.

Астероидные пояса - наличие в системе заложено, визуальное представление создается другим модулем, который у меня за туманности отвечает.

Посадок на планеты не предусматривал (мне они не требуются), хотя в классе планетных систем имеется ыункция определения расстояния до планеты, а также коррекция ее визуального отображения.

В конце концов - я не собирался моделировать произвольную планетную систему с соблюдением всех законов физики. Мне оно не надо.

Вроде на все вопросы ответил?
    Добавлено: 22:56 16-09-2005   
Crimson
 560 EGP


Рейтинг канала: 4(83)
Репутация: 130
Сообщения: 3041

Зарегистрирован: 03.09.2003
В принципе для игры и пятисот звезд хватит выше крыши. Но пытаться сделать из них галактику - все-таки несерьезно. Смотреться будет примерно как планета, которая в два раза больше корабля.
    Добавлено: 08:32 18-09-2005   
Пассажир
 

Пассажир




Прежде чем что-либо заявлять, сходил бы ты, парень, на мой сайт adm.trening-omsk.ru, да посмотрел, как выглядит на скриншотах спиральная (4-ре рукава) галактика, всего навсего из 200 звезд. А уж какой она будет из 500... (а это ксати - не предел). Причем плотность расположения - регулируемая. Да и вообще - реально ли облазить 500 звездных систем, если среднее кол-во (при учете пустых и частично заполненных систем, спутников и т.д.) планет в системе - около 3-х? Это ж где-то 1500 планет, Не подумал ли ты, во-первых, как это все будет машина обрабатывать (с твоими-то запросами к реализму), да еще и куда их тебе столько?
    Добавлено: 10:56 18-09-2005   
Crimson
 560 EGP


Рейтинг канала: 4(83)
Репутация: 130
Сообщения: 3041

Зарегистрирован: 03.09.2003
Товарищ, ты бы как-нибудь полегче на оборотах... без обид Подмигиваю

На сайте я был. То, что на скринах - это не галактика, это пародия на нее. Это примерно как назвать пустыней песочницу. Галактика это миллионы звезд, размазанные по блину в десятки килопарсек. Подозреваю, что игрок из Солнечной до ближайшего края рукава будет даже на гиперсвете ползти несколько лет реального времени.

Вообще, при желании галактику реальных размеров думаю можно как-нибудь замутить на каких-нибудь фракталах или хитроподвывернутых полиномах, с системой понижения детализации при зуме. Но смысла не вижу. Я бы сделал просто большой кусок плоской карты (вид сверху), с более-менее равномерным распределением звезд. Тем более, что плоскую карту гораздо удобнее использовать.

Звезд тоже все-таки желательно побольше, хотя бы пять тысяч. Да, я в курсе, что из них игрок облазит от силы процентов десять, ну так его никто и не заставляет побывать около каждой планеты. Зато по крайней мере у него будет ощущение что он в космосе, а не в аквариуме. Чем они будут нагружать машину - если честно не представляю (если только ты не планируешь рисовать их на карте все сразу, причем в 3D, с вращенем и с бликами от каждой звезды). Ту карту, что ты наворотил - можно использовать как карту системы, но не галактики.
    Добавлено: 12:12 18-09-2005   
Пассажир
 

Пассажир




Извиняюсь, за повороты... Подмигиваю
Насчет, чем грузить - в принципе, начать с того что памяти при твоем реалистичном подходе кушать 5000 звезд будут солидно. Опять же - как-то наталкивался я на такую тему - точность представления расстояний при таковых масштабах... Ну и не вижу смысла делать 5000 звезд, если игрок реально сможет доползти только до 50-ти...
Да и вообще - есть такое правило, коли видишь недостатки в чужой работе - предложи свою реализацию, в которой данные недостатки будут устранены. Вот тогда это будет конструктивная критика, а не просто попытка опустить.
Да и вообще не встречал я в игровых проектах галактик хотяб в 1000 звездных систем.
А что касательно того что ты бы сделал "плоскую карту с равномерным распределением звезд", то я же все-таки не ты, и мне для моего проекта нужна именно 3D, с таким рапределением звезд. Хотя я могу в любой момент сделать галактику и с 2-мя, 3-мя, вообще произвольным кол-вом рукавов (для этого достаточно в вызове функции поменять параметр), а могу вообще сделать 3D скопление, туманность и что угодно...
    Добавлено: 16:25 18-09-2005   
Krom
 455 EGP


Рейтинг канала: 1(3)
Репутация: 159
Сообщения: 1988
Откуда: Горы Урала
Зарегистрирован: 19.07.2005
Fosgen :
Насчет, чем грузить - в принципе, начать с того что памяти при твоем реалистичном подходе кушать 5000 звезд будут солидно.

А вот об этом речи не шло. Предлагалось только сгенерить карту.
Но если сворачиваем в это русло, объясняй, что там такого происходит, в этих системах, что десятикратное увеличение их количества критично. И чегой-то ты вопрос SMax'а перехватил?

Fosgen :
Да и вообще не встречал я в игровых проектах галактик хотя б в 1000 звездных систем.

Elite 3: Frontier - First Encounter. Гораздо больше тысячи систем, хотя насчёт их синхронной обработки есть большие сомнения.

Fosgen :
Да и вообще - есть такое правило, коли видишь недостатки в чужой работе - предложи свою реализацию, в которой данные недостатки будут устранены. Вот тогда это будет конструктивная критика, а не просто попытка опустить.

Критика не обязана быть конструктивной, а только лишь тактичной Подмигиваю В этом случае то, как поступить с выявленными недочётами - только твоё дело. Обижаться на критику нельзя в любом случае.
_________________
Не спешите меня.
    Добавлено: 12:06 19-09-2005   
Пассажир
 

Пассажир




господин Krom
Во-первых, если повнимательнее посмотреть на ветку, то можно увидеть, как народ задает вопросы о посадках на планеты и генерации ланшафта. А вообще, если для каждой из 5000 звездных систем рассчитывать положения планет в реальном времени, да еще и их вращение вокруг оси, да со спутниками, про генерацию соответствующих ланшаншафтов я в данном случае просто не буду упоминать... А вопроса я не перехватывал. Опять же если присмотреться повнимательнее можно обнаружить что я предложил к обмену свой класс, в котором реализован вопрос SMax'а. А уж почему взялись проверять на реалистичность мою реализацию - надо не у меня спрашивать.

Да помню такую вещь - Frontier первый и First Encounters от Брабена. Только там нагрузка осоновных сцен была не фонтан, да и системы не очень-то реалистично менялись (хотя вроде как имели приближенные к реальным масштабы). Так что пример - не совсем корректный. Он не проходит по вышеуказанным (не мною) критериям.

А по поводу критики...
Тра-та-та-та-та, та-та-та, та-та, та-та, та-та...
Обсуждаем недостатки подхода к критике исключительно приватом и между собой - это было последнее китайское. Остальные попытки наехать буром на кого-то буду резать стрАшно и с последствиями. Надеюсь, рецидивов не повторится. Если есть вопросы лично ко мне - тоже в приват. Точка.
отсустрированно NRG
    Добавлено: 21:26 19-09-2005   
Krom
 455 EGP


Рейтинг канала: 1(3)
Репутация: 159
Сообщения: 1988
Откуда: Горы Урала
Зарегистрирован: 19.07.2005
Fosgen:
Гхм, как говорят буйволы... И чего я такого сказал, чтобы вызвать такую реакцию? Но если мы собираемся учить друг друга читать, то обращаю ваше внимание на следующие два пункта:
1) Вопрос, заданный SMax, не задевал проблем обработки карты галактики в real-time.
2) В ответ на вопрос о параметрах галактики вы навязали обсуждению свои значения, хотя он был задан не вам.
Одним словом, вы начали обсуждать ваше творчество, а не вопрос автора топика. Это называется оффтоп и карается модераторами.

Впрочем, раз автор темы не высказывает никаких дополнительных пожеланий, значит, он получил исчерпывающий ответ на свои вопросы. Наверное, можно уже прикрывать лавочку, как думаете?
_________________
Не спешите меня.
    Добавлено: 09:52 20-09-2005   
NRG
 2525 EGP


Рейтинг канала: 3(32)
Репутация: 435
Сообщения: 10010
Откуда: Odessa, Ukraine
Зарегистрирован: 07.02.2001
полность поддерживаю
Closed
_________________
Единица измерения равнодушия - один хер.
    Добавлено: 11:04 20-09-2005   
Канал Игры Мечты: «need Генератор 2D/3D галактики (алгоритм/формула)»
 
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: На 18 странице совещания модератор КСО Nadin и модератор ЖК и КС Harley наконец решили выяснить, о чем же все же они будут совещаться. (Harley)

  » need Генератор 2D/3D галактики (алгоритм/формула) | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18