Процедурный генератор звездного поля

15

Кто-нибудь знает какой-либо код для процедурного генерирования звездных полей?

В идеале я хотел бы, чтобы это основывалось на физике, чтобы у меня были реалистичные планеты и луны. Лучше всего было бы в C ++, с открытым исходным кодом, и работоспособным с Ogre3d.

Я не боюсь кодировать что-то из университетской газеты, если там ничего нет.

сойка
источник
2
Что вы подразумеваете под "полем"? Скопление звезд, галактика, скопление галактик? Только звезда с некоторыми планетами?
Майк Земдер
2
Я хотел бы создать скайбокс для игры. Мне бы хотелось, чтобы ночное небо было более реалистичным. Поскольку звезды не меняются, вы можете создать для них статическое изображение скайбокса из звездного каталога (или просто случайно). Планеты движутся медленно, поэтому вы можете периодически обновлять их позиции. Луна сильно изменится, поэтому вы будете генерировать ее чаще. Луне также потребуется некоторая обработка изображений, поскольку она будет намного больше, чем просто пиксель.
Джей
1
Здесь много хорошего материала: vterrain.org/Atmosphere
Jay
2
Многое из того, что вам нужно, будет зависеть от вашей скорости перемещения: вы сверхсветовая или сверхсветовая, это чистый скайбокс или вы летите через целые галактики? Какой у тебя масштаб?
Патрик Хьюз
1
Мне не нужно подражать релятивистским эффектам. Ничто не будет двигаться так быстро. OsgEphemeris для симуляторов полета выглядит как отличная отправная точка
Jay

Ответы:

11

Я считаю, что создание звездного поля (дальнего радиуса действия) и планет и лун («ближнего радиуса действия») должно быть двух разных слоев. Что касается звездного поля, я нашел это полезным для моей игры : http://alexcpeterson.com/spacescape . Это может позаботиться о вашем дальнем статическом звездном поле. Он написан на C ++ и с открытым исходным кодом.

Что касается вещей с «короткого расстояния». Я нашел несколько источников для симуляторов солнечной системы, но, на мой взгляд, они не выглядят достаточно общими, если вы хотите создать солнечную систему, отличную от нашей. Я поставил ссылки в конце.

В действительности это не должно быть слишком сложной задачей для создания общей системы для планет. Изучите свой Kepler, и вы сможете получить хорошие оценки положения планет. http://en.wikipedia.org/wiki/Kepler%27s_laws_of_planetary_motion . Вероятно, просто придерживайтесь простых не эксцентричных орбит, чтобы начать :)

Вот несколько ссылок на симуляторы солнечной системы, которые я нашел.

http://astro.berkeley.edu/~dperley/programs/ssms.html

http://code.google.com/p/solar-system-cpp/

MichaelHouse
источник
Ваш инструмент выглядит действительно полезным. Спасибо за обмен
Джей
3
Не мой инструмент, я просто использую его :) Вся заслуга инструмента Spacescape принадлежит Алексу С. Петерсону
MichaelHouse