|
|
|
Канал Игры Мечты: «Эффекты и спецэффекты» |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
Какие они нужны в космосе?
В планах:
- тени (пока работает только самозатенение);
- системы частиц (по возможности мягкие частицы);
- преломление в горячих газах (пламя двигателя, взрывы);
- широкий динамический диапазон.
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
INSEKTUM
311 EGP
  Рейтинг канала: 3(38) Репутация: 32 Сообщения: 544 Откуда: МАИ Зарегистрирован: 06.05.2007
 |
|
ИМХО в комосе не нужны. Расстояния по сравнению с объектами большие (даже в аркадных симах), так что тени будут трудноразличимы и никто их не будет рассматривать. Вот в авиасиме тень на земле - это кравиво.
_________________ Я хотел бы узнать, что я - волна.
Мартин Дугин |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
INSEKTUM : |
ИМХО в комосе не нужны.
|
Ы?
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
INSEKTUM
311 EGP
  Рейтинг канала: 3(38) Репутация: 32 Сообщения: 544 Откуда: МАИ Зарегистрирован: 06.05.2007
 |
|
Прости, не совсем точно сформулировал. Нет нужды, чтоб один объект отбрасывал сложную тень на другие. Вполне достаточно просто чёрного круга, хотя в принципе можно и без него обойтися. А вот когда модель отбрасывает тень сама на себя, это другое дело. Хотя из тех картинок, которые ты кинул вторая выглядет более мрачной что-ли. И ещё я вот о чём после твоих картинок подумал: за крупными объектами должна быть теневая зона, в которой на мелкие объекты как-бы не действует один из источников света (тот, который закрыт крупным объектом)
_________________ Я хотел бы узнать, что я - волна.
Мартин Дугин
Последний раз редактировалось: INSEKTUM (10:01 10-05-2011), всего редактировалось 1 раз |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
INSEKTUM : |
вторая выглядет более мрачной что-ли.
|
Ну дык она же с теневой стороны заскринтошена, с освещенной все гораздо радужней
INSEKTUM : |
должна быть теневая зона
|
Необходимость рендерить в карту глубины всех объектов участвующих в затенении, сильно сказывается на производительности. Да и специфика геймплея не требует затенения объектами друг-друга.
добавлено спустя 3 минуты:
Да-да — я использовал теневые карты.
Теневые объемы мне не нравятся из-за строгих требований к геометрии.
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
Последний раз редактировалось: DIMOSUS.X (00:58 10-05-2011), всего редактировалось 1 раз |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
DIMOSUS.X : |
Какие они нужны в космосе?
В планах:
- тени (пока работает только самозатенение);
- системы частиц (по возможности мягкие частицы);
- преломление в горячих газах (пламя двигателя, взрывы);
- широкий динамический диапазон.
|
А каким именно образом будет использоваться HDR? Дело в том, что в космосе контраст совершено дикий. При обычном методе скукоживания в LDR изрядное количество деталей будет утеряно, да и цвета неестественные будут.
Можно отбросить приспособление к освещённости, а верхнюю часть диапазона использовать под эффекты засветки - Bloom, Flare и прочие линзовые и матричные глюки.
Опять же, гларики от звезды системы и основного выхлопа двигателя - биллбордами...
добавлено спустя 28 секунд:
DIMOSUS.X : |
Да-да — я использовал теневые карты.
|
Локальные или глобальную?
_________________ Трещит земля как пустой орех
Как щепка трещит броня
Последний раз редактировалось: Guest (11:02 10-05-2011), всего редактировалось 1 раз |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
Guest : |
А каким именно образом будет использоваться HDR?
|
Пока реализовал только Bloom, в планах линзовые эффекты и HDR motion blur.
угу, только с шейдорем, отрисовывающим их с учетом карты глубины — что бы не было резких переходов в местах, где они пересекаются с объектами (мягкие частицы)
Guest : |
Локальные или глобальную?
|
Локальную — на каждый объект своя. С уменьшением размера объекта на экране, уменьшается и размер карты.
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
DIMOSUS.X : |
угу, только с шейдорем, отрисовывающим их с учетом карты глубины — что бы не было резких переходов в местах, где они пересекаются с объектами (мягкие частицы)
|
Разумеется. Хотя на самом деле они либо есть, либо нет: если объект излучающий не перекрыт до камеры (raycast в любую сторону по этому вектору) - биллборд (чисто для масштабирования) виден поверх всего (собственно, его ничто пересекать не может, т.к. он имитирует оптику камеры), с отрубленной глубиной (если он погружается в объект - это портит весь эффект). Если перекрыт - не виден. А уж текстурка на нём может быть с альфой, что даст мягкое помещение на объект.
_________________ Трещит земля как пустой орех
Как щепка трещит броня |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
Ну да, в принципе все линзовые эффекты можно просто наложить поверх кадра (конечно учитывая при этом видимость этого эффекта).
А вот если взрыв или выхлоп то тут рендерить с учетом карты глубины.
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
DIMOSUS.X : |
Да-да — я использовал теневые карты.
Теневые объемы мне не нравятся из-за строгих требований к геометрии.
|
Правильно сделал. Стенсиль сейчас почти не используется.
DIMOSUS.X : |
Локальную — на каждый объект своя. С уменьшением размера объекта на экране, уменьшается и размер карты.
|
Неправильно сделал. Одной текстуры 1024х1024 на всё хватит. Если применить TSM (http://www.comp.nus.edu.sg/~tants/tsm/TSM_recipe.html). Если еще лучше - делай сплит (http://http.developer.nvidia.com/GPUGems3/gpugems3_ch10.html) и на каждом сплите TSM. Получаться тени как в самых крутых играх ).
Применять на каждый объект свою текстуру тени - это epic fail. Не вздумай так делать, так не делает никто вообще.
DIMOSUS.X : |
А вот если взрыв или выхлоп то тут рендерить с учетом карты глубины.
|
Если это forward-rendering (что скорее всего), то первый пасс должен быть depth-pass - получишь текстуру глубины сцены, которая нужна в soft-particles`ах и в heat haze.
Дальше всё рендерить нужно с выключенной записью в глубину и с "equal" z-функцией.
Heat haze делается очень просто - в отдельный буфер (с размерами четверти экрана) рендерятся частицы с нормал мапой на них. Потом то что выйдет - размывается сдвигом, который задает этот буфер.
Все системы частиц так-же нужно рендерить в отдельный буфер который или половина, или четверть экрана. Fillrate штука мега дорогая.
добавлено спустя 6 минут:
+normal-mapping
+Сторонняя библиотека систем частиц (свою сам не напишешь. или напишешь г""но)
Этого, в целом, хватит. Главное - чтоб сам двиг стабильно работал. Много сил надо потратить именно на него. Рендерер написать не проблема.
_________________ MOV topka, C++
Последний раз редактировалось: Jurec (15:20 10-05-2011), всего редактировалось 1 раз |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
Что-то я не совсем понимаю, что делать (для PSSM) если источник света попадает в пирамиду видимости? Пример — несколько кораблей вокруг зведы.
Рендерить cubemap? Получается 6 сторон скажем на 3 рендра для каждой — до 18 рендеров в карты глубины для особо тяжелых случаев...
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
Источник света может попасть в пирамиду видимости только если он point light. Directional light для солнца - самое оно.
Глобальный Point light это довольно дорого - фтопку. Если делать, то делать локальный - без сплитов, т.е. для него не надо юзать PSSM.
ftp://download.nvidia.com/developer/presentations/2004/GPU_Jackpot/Shadow_Mapping.pdf
_________________ MOV topka, C++ |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
В общем сделал гибридные тени — для каждого корабля своя теневая текстура, при крупных планах PSSM. TSM не осилил (ни как не получается скукожить трапецию до прямоугольника).
Jurec : |
Применять на каждый объект свою текстуру тени - это epic fail. Не вздумай так делать, так не делает никто вообще.
|
Не пойму по чему. Я не создаю для каждого шипа индивидуальную карту теней. В место этого юзаю всего несколько буферов.
Рендерю карту глубины в буфер подходящего размера, затем рендерю корабль с тенями в буфер кадра. Затем следующий шип и т.д.
У меня лично это работает весьма шустро. 1000 объектов, у %20 отрисовывается тень. ФПС ~100, отъедает 250 Мб видеопамяти (из которых метров 50 занимает HDR буфер кадра).
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
В чем сложность - рендерить всё за раз?
_________________ MOV topka, C++ |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
У меня нет проблем с точечным источником света (звезда в центре системы), не нужно нагружать видюху лишними проходами геометрии, ну и сама концепция игрового процесса не требует затенения объектами друг-друга.
добавлено спустя 22 минуты:
Вот кстати демка
http://www.elite-games.ru/conference/viewtopic.php?p=2624399#2624399
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
Последний раз редактировалось: DIMOSUS.X (22:20 19-05-2011), всего редактировалось 1 раз |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
плиз объясни подробнее что ты делаешь?
_________________ MOV topka, C++ |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
Ты имеешь в виду весь проект?
Это нечто вроде гибрида хоумворлда и космических рейнжеров.
Звездные системы на подобие рейнжеров, только большего масштаба и в 3д. Песочница. Управление на подобие хоумворлда.
Последний раз редактировалось: DIMOSUS.X (22:47 19-05-2011), всего редактировалось 1 раз |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
Уже не надо - я всё посмотрел в PIX.
0) Скайбокс рендерить нужно в последнюю очередь, чтобы уменьшить fillrate
1) Ну что тебе сказать - для самозатенения это конечно ок. Отличное качество, ничего не скажу. Производительность можно засовывать глубоко и надолго, но это же XNA - это и так ясно.
Но, млин, объекты друг друга не затеняют!
2) Парочку кораблей отрендерил - но я их на экране не заметил. Делай фрустум куллинг.
3) У меня 3 секунды (3000 мс) уходит на update! 1 ФПС - ужоснах
добавлено спустя 51 секунду:
хотя может мне надо резетнуться
_________________ MOV topka, C++
Последний раз редактировалось: Jurec (22:49 19-05-2011), всего редактировалось 1 раз |
|
|
Magistr_AVSH
605 EGP
     Рейтинг канала: 2(16) Репутация: 119 Сообщения: 2705 Откуда: Росс 154 - планета Мерлин. Зарегистрирован: 26.12.2009
 |
|
Счас потестил - min fps 9 max 25
Nvidia GT240
Кстати говоря тени стали намного красивше
Update ~70 ms
_________________ Добрый и сытый кот.
Последний раз редактировалось: Magistr_AVSH (22:52 19-05-2011), всего редактировалось 1 раз |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
Jurec : |
0) Скайбокс рендерить нужно в последнюю очередь, чтобы уменьшить fillrate
|
Это как? в отдельный буфер а потом на его накладывать остальную отрендеренную сцену?
Jurec : |
Но, млин, объекты друг друга не затеняют!
|
К этому и не стремился
Jurec : |
2) Парочку кораблей отрендерил - но я их на экране не заметил. Делай фрустум куллинг.
|
У меня юзается KD-дерево, проверка поподания в кадр выполняется в нем. Пока проблем с ним не было.
Jurec : |
3) У меня 3 секунды (3000 мс) уходит на update! 1 ФПС - ужоснах
|
У меня 10мс
добавлено спустя 3 минуты:
Я по умолчанию сглаживание выкрутил на максимум — может из-за этого так мало?
У меня с моей GTX470 ФПС не проседает ниже 100...
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
Последний раз редактировалось: DIMOSUS.X (22:57 19-05-2011), всего редактировалось 1 раз |
|
|
|
|
|
Канал Игры Мечты: «Эффекты и спецэффекты» |
|