Войти
ПрограммированиеФорумГрафика

Атмосфера: вид из космоса и с поверхности

Страницы: 1 2 311 12 Следующая »
#0
22:18, 3 июня 2009

Собственно, прошу поделиться доками (желательно на русском) с примерами кода и/или исходниками. Читал две статьи на английском, но там только теория, без исходников.
Задача - рендерить атмосферу планеты, причём можно как летать над ней в космосе, так и приземляться. Рельеф движок уже умеет рендерить. Атмосфера должна быть не фэйковая, а нормальная, с рассеянием (Рэлей и Ми), учётом освещения поверхности небом (ambient skylight, т.е. тени от гор должны быть не чёрные, а голубые днём и красные на закате), с возможностью как-то учитывать тень от Луны при солнечных затмениях, причём лун и солнц (вообще источников света) может быть много, т.к. движок универсальный. Кроме атмосферы и освещения ландшафта, нужны облака, для начала просто сферический слой с текстурой и бампом, отбрасывающий тень на поверхность. Я вообще не в курсе, какие есть методы рендера облаков в масштабе целой планеты. Фракталы? Нужна детализация не менее 1 км и возможность на таких масштабах рендерть уже 3D облака, например спрайтами. А также всякие тонкие эффекты типа лучей света, идущих через дырки в облаках:)


#1
22:20, 3 июня 2009

Тут искал? Вроде была уже тема такая.
Во всяком случае около года назад была крутая демка с атмосферой, облаками и пр.

#2
22:47, 3 июня 2009

Если ты имеешь в виду этот пост http://www.gamedev.ru/code/forum/?id=89551 , то читал. Там ссылки на англоязычные ресурсы. А хотелось бы, как и автору того поста, найти рабочие демки с исходниками, статьи на русском, и просто пообсуждать с людьми, которые уже делали атмосферу. Короче, влом изобретать велосипед:)

#3
22:51, 3 июня 2009

Neptune
Рекомендую почитать посты Ysaneya (автор вот этого http://www.infinity-universe.com/) в его журнале на геймдев нет. Раньше с ним вполне можно было общаться или через ПМ или мыло. Теперь - в основном надо все вопросы задавать на форуме. Но вообще, замахнулись вы круто...

#4
23:43, 3 июня 2009

http://www.gamedev.ru/art/forum/?id=91869
А это вообще бомба! Я до сих пор на эту тему подписан и жду новых творений :)
Хотя это больше art.
правка: но, наверное, стоит с автором пообщаться ;)

#5
23:53, 3 июня 2009

Sergio666
Не, в моём движке атмосферы пока очень простые - просто туман и дымка, ни каких скаттеров и прочих интересностей.
http://orbides.1gb.ru/ogla-gal.php?lng=rus&mode=dev2009
http://orbides.1gb.ru/planeter-gal.php?lng=rus
Хотя, внезапное их появление не исключено.

Neptune
Могу рассказать как делать то, что есть.

#6
0:02, 4 июня 2009

Artlav
>Не, в моём движке атмосферы пока очень простые - просто туман и дымка, ни каких скаттеров и прочих интересностей.
Ты один делаешь движок? Я думал вас несколько в команде
#7
1:00, 4 июня 2009

Sergio666
>Ты один делаешь движок? Я думал вас несколько в команде
Да, один. Делать такие вещи в команде как-то неудобно.

По первой ссылке движок приделан к винрарному симулятору космических полётов Орбитер, и модели/текстуры/геймплей идёт из него.
По второй - с моим собственным симулятором вселенского масштаба с процедуральной генерацией всего, о котором и были треды про раскраску планет и про что с ним делать.

#8
3:42, 4 июня 2009

Artlav
Фига се, ты крут! Я делаю примерно такой же движок, для тех же целей. Реальные объекты (Солнечная система, ближайшие звёзды, туманности, галактики) + процедурные, там где нет реальных данных. Может есть смысл объединиться? =)
Свой движок я пишу уже 4 года, начинал даже без шейдеров:)
Как рендеришь ландшафт? ROAM?

#9
9:38, 4 июня 2009

Neptune
Sean O'Neil atmospheric scattering смотрел? (http://sponeil.net/index.htm). Там же есть и бинарник и сырцы. Приемлимая скорость и хорошие результаты кстати.
В "Infinity. The quest for Earth" точно так же сделано, если не ошибаюсь

#10
13:26, 4 июня 2009

Смотрел, уже пытаюсь повторить. У него скаттеринг в вершинном шейдере в цикле считается, что не есть хорошо (чтоб не тормозило,  всего 2 прохода, поэтому большие погрешности вблизи горизонта), в нескольких статьях предлагали посчитать lookup текстуру, и из неё брать значения.
Во всех статьях считается, что распределение частиц в атмосфере подчиняется барометрической формуле, т.е. экспоненциальное, а я хочу произвольное, например в атмосфере Венеры на высотах от 50 до 80 км - дымка, в атмосфере Титана даже 2 слоя дымки...

#11
20:24, 4 июня 2009

Кстати, это видел:
http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter16.html
?

#12
17:59, 8 июня 2009

Sergio666
Не, не видел, спасибо))

Кстати, чё с сайтом, движок меняют? Как теперь найти все темы, где я что-то писал?
#13
22:27, 17 июня 2009

Сделал атмосферу как у Sean O'Neil (статья в GPUGems2 это то же самое), но не понравилось:( Атмосферная перспектива (т.е. посинение далёких гор) слабо выражена, не учитывается освещение поверхности небом и покраснение прямого солнечного света. Не учитывается тень в атмосфере от самой Земли. Скаттеринг рассчитывается циклом в вершинном шейдере, поэтому при взгляде на планету издалека, когда геометрия упрощается, появляются заметные артефакты. Не получается эффекта красного кольца при взгяде на Землю так, чтоб Солнце было скрыто за нею (получается белое кольцо). И неизветсно, какие параметры брать для атмосферы Марса и других планет.

Читал древнюю статью Нишиты, с оффлайн рендерингом, там атмосфера рассчитывалась попиксельно, выборкой из предрассчитанной таблицы, по-идее это можно сделать в пиксельном шейдере. Кто делал что-то подобное? Там и освещение земли небом учитывалось.

Ещё вопросы - можно ли как-нибудь учесть тень от Луны в атмосфере (при солнечном затмении)? И как сделать зависимотсь плотности атмосферы от высоты не экспоненциальную (экспоненту как-то хитро сокращают в уравнениях). (Например в атмосфере Венеры должна быть плотная дымка (туман) на высоте 50 км, под ней - почти прозрачный воздух. В атмосфере Титана вообще два слоя дымки.) И ещё - кто делал облака фракталами, поделитесь статьями:) Заранее спасибо

#14
1:52, 18 авг. 2009

Тема ещё актуальна!

Страницы: 1 2 311 12 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.