|
|
|
Канал Игры Мечты: «Проблемы графики в космических играх» |
|
|
Lion[MX]
270 EGP
     Репутация: 60 Сообщения: 1141 Откуда: Москва Зарегистрирован: 14.01.2005
 |
|
Хочется мне красивого космоса!
Во многих играх глаза режут баги графики.
К примеру, часто плоскости спецэффектов пересекаются с мешем, получаем некрасивые вылезающие из бликов углы.
Это уже надоело в ЕВЕ.
Те же лампочки - засвечивают окружающее пространство, как под водой.
Туманности, состоящие из спрайтов - в ЕВЕ у меня голова кружится, когда меняешь обзор у такой туманности, спрайты остаются на месте перпендикулярно взгляду, вращаясь относительно друг друга.
Предлагаю обсуждать подобные недостатки и пути их устранения.
Почему слои спецэффектов не делать ближе к камере, но дальше слоя постэффектов и иинтерфейса?
_________________ Мне сверху видно всё, ты так и знай. |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
Lion[MX] : |
Почему слои спецэффектов не делать ближе к камере, но дальше слоя постэффектов и иинтерфейса?
|
Потому что z-test на сцене. Если не понятно - скажи - объясню.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
Lion[MX] : |
Хочется мне красивого космоса
|
чем Space Engine не устраивает? благо автор бывает тут иногда
_________________ This is what you get ...
(c) Radiohead |
|
|
Lion[MX]
270 EGP
     Репутация: 60 Сообщения: 1141 Откуда: Москва Зарегистрирован: 14.01.2005
 |
|
Меня интересуют методы обеспечения красивой картинки.
Например, облака, взрывы, динамическое освещение...
_________________ Мне сверху видно всё, ты так и знай. |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
Lion[MX] : |
К примеру, часто плоскости спецэффектов пересекаются с мешем, получаем некрасивые вылезающие из бликов углы.
|
soft particles неплохо решают эту проблему.
Lion[MX] : |
Те же лампочки - засвечивают окружающее пространство, как под водой.
|
немного не пойму. можно пример проиллюстрировать?
Lion[MX] : |
Туманности, состоящие из спрайтов - в ЕВЕ у меня голова кружится, когда меняешь обзор у такой туманности, спрайты остаются на месте перпендикулярно взгляду, вращаясь относительно друг друга.
|
Альтернатива есть, например raymarching 3d текстур. но удар по производительности ощутимый.
_________________ MOV topka, C++ |
|
|
Lion[MX]
270 EGP
     Репутация: 60 Сообщения: 1141 Откуда: Москва Зарегистрирован: 14.01.2005
 |
|
Насчет лампочек - если блики от них сделать по образу бликов от звезды, и расположить в слое ближе мешей. Тогда картинка будет реалистичнее. То же самое с бликами от двигателей.
Насчет туманностей - здесь две точки зрения: снаружи туманности - как облако на небе; изнутри - как хардварный туман. При этом вспоминается Freelancer. Какие еще способы, не снижающие производительности?
Насчет прожекторов - например в ЕВЕ прожектора светят в космос, и их луч виден со стороны, хотя в космосе свету не на чем рассеиваться. Отсюда и ощущение подводности. А мне так нравится чистая прозрачная картинка.
Ещё насчет LODов - это они некачественно делаются, что ясно видны скачки детализации, или это неодолимый недостаток?
Ещё по поводу производительности - вроде бы мешей меньше, чем в наземных играх, а фпс обычно маловат.
_________________ Мне сверху видно всё, ты так и знай. |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
Lion[MX] : |
Насчет лампочек - если блики от них сделать по образу бликов от звезды, и расположить в слое ближе мешей. Тогда картинка будет реалистичнее. То же самое с бликами от двигателей.
|
Для каждой лампочки надо будет просчитывать довольно сложную логику, которую можно считать только на вершинном шейдере. Да и потом - насколько ближе. Дело в том, что если у КА сложная геометрия, то будет такой случай, когда ваше "ближе" пересечется с геометрией КА и будет только хуже. Проверять на такие вещи - удар по производительности.
Lion[MX] : |
снаружи туманности - как облако на небе;
|
Этого в играх еще никто не достиг. Ближе всего у ВарТандера.
Lion[MX] : |
изнутри - как хардварный туман. При этом вспоминается Freelancer.
|
Там довольно кривой был туман. Особенно когда вылетаешь из туманности.
Lion[MX] : |
А мне так нравится чистая прозрачная картинка.
|
На вкус и цвет - фломастеры разные.
Lion[MX] : |
это они некачественно делаются, что ясно видны скачки детализации, или это неодолимый недостаток?
|
DX11 с тесселяцией для того и придумывался, чтобы ЛОДы были лучше (в том числе).
Lion[MX] : |
Ещё по поводу производительности - вроде бы мешей меньше, чем в наземных играх, а фпс обычно маловат.
|
Так какая разница - сколько сеток... Проблема обычно не в GPU, а в CPU, который один. В космосе все вообще сложно... Там нужна двойная точность. А это удар по производительности. Для NVidia - в 4 раза, например.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
Lion[MX] : |
Насчет лампочек - если блики от них сделать по образу бликов от звезды, и расположить в слое ближе мешей. Тогда картинка будет реалистичнее. То же самое с бликами от двигателей.
|
Ну так ведь и делают. Спрайт рисуется без теста глубины, просто в шейдере его глубина сравнивается с глубиной zbuffer'а, чтоб понять не перекрыт ли источник света.
Lion[MX] : |
Насчет туманностей - здесь две точки зрения: снаружи туманности - как облако на небе; изнутри - как хардварный туман. При этом вспоминается Freelancer. Какие еще способы, не снижающие производительности?
|
Еще можно сделать как сделал автор Limit theory, не сталкивался с этой штукой
что-то типа "volumetric participating media"
http://www.youtube.com/watch?v=Fq4gih_AX44&hd=1
Lion[MX] : |
Ещё насчет LODов - это они некачественно делаются, что ясно видны скачки детализации, или это неодолимый недостаток?
|
Есть автоматические методы генерации, которые специально уменьшают кол-во полигонов так, чтобы переходы были не так заметны. Знаю технологию у Ubisoft, но она под NDA, но сто процентов есть аналоги в открытом доступе.
Lion[MX] : |
Ещё по поводу производительности - вроде бы мешей меньше, чем в наземных играх, а фпс обычно маловат.
|
Обычно это CPU-bound, честно говоря.
_________________ MOV topka, C++ |
|
|
Lion[MX]
270 EGP
     Репутация: 60 Сообщения: 1141 Откуда: Москва Зарегистрирован: 14.01.2005
 |
|
Уточним по структуре графики.
Самый дальний слой - скайбокс. Обычно куб с текстурами. Но для них требуется высокое качество и большой объем, для HD. Встречал разные варианты, например черный фон и отдельно звезды как пиксели и микротекстуры.
Второй слой - макрообъекты: планеты, спутники. В пределах обычного полета они неподвижны относительно корабля. Иногда перенесены на скайбокс. Здесь возможны проблемы. Это большие объекты, требуется качество текстур и динамика атмосферы.
Третий слой - собственно сцена с мешами. Станции, корабли, обломки, астероиды... Здесь требуется просчет движений и столкновений.
Говорили о двойной точности вычислений. А если разграничить координаты на местные и глобальные одинарной точности? В пределах видимости должно хватать и одинарной. А для глобальных взять единицу измерения покрупнее - вместо метров километры или мегаметры.
С мешами пересекаются световые эффекты - лампочки, свет прожекторов, лучи лазеров, трассы выстрелов и ракеты, выхлоп двигателей, и прочее...
Вопрос с тенями - их не так часто делают, но для эффектности не мешало бы. Насколько они тормозят?
Еще ближе слой постэффектов - размытие, блики, засветка...
Еще ближе - игровой интерфейс.
Если что-то пропустил, подскажите.
Цель - выработать рекомендации по графике для хорошей космической игры. Т.е. как сделать графический движок.
_________________ Мне сверху видно всё, ты так и знай. |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
Lion[MX] : |
Насколько они тормозят?
|
Сильно. Вторые после полноэкранного гауссова размытия по жрабельности.
Lion[MX] : |
Говорили о двойной точности вычислений. А если разграничить координаты на местные и глобальные одинарной точности? В пределах видимости должно хватать и одинарной. А для глобальных взять единицу измерения покрупнее - вместо метров километры или мегаметры.
|
Есть несколько другой хак - сабсцена с уменьшенным масштабом и собственной камерой, которая визуализируется после скайбокса, но до основной сцены. Если она будет иметь собственный ориджин в центре - проблема точности отпадает. Так делали "живой" "скайбокс" лет десять назад. Да и сейчас, бывает, делают.
Проблема с разделёнными пространствами вычислений возникает ровно на границе - когда крупный объект должен частью находиться в "дальней зоне" (потому что в "ближней" у него джага-джага в движении из-за слишком большого расстояния до центра), а частью - в "ближней" (потому что уже близко).
Ну или когда он резко переходит границу и тут выясняется, что координата из "дальней" в "ближнюю" зону транслируется с ошибкой и объект "прыгает" в момент перехода.
Ещё хуже, если какое-то взаимодействие должно произойти между объектом "дальней" и "ближней" зоны, а трансформация опять с ошибкой...
добавлено спустя 5 минут:
На самом деле ИМХО проблемы визуального плана в основном там, где допускается размазывание текстуры на разрешение, более чем в два раза её превосходящее. Тут дополнительный слой пусть даже тайловых, но контрасных мелких текстур весьма спасает. А уж если они ещё и с картой нормалей...
Ещё многослойная прозрачность, где не хватает глубины уже цветового пространства и получается каша.
добавлено спустя 15 минут:
А это примерно то же, что и объёмные тени, только вариантов больше. По сути - объёмный туман, пространство с частицами. Которые могут пропускать, поглощать, отражать, усиливать или рассеивать свет. Что даёт всё многообразие существующих в реальном космосе туманностей
Гугл выдаёт несколько эффектных статей, но надо разбираться, т.к. процесс довольно ресурсоёмок, особенно если подходить брутфорсом.
добавлено спустя 4 минуты:
Lion[MX] : |
Еще ближе слой постэффектов - размытие, блики, засветка...
|
Я не уверен, можно ли это называть "слоем", т.к., в отличие от всех предыдущих, пост-эффекты используют накопленную до этого информацию, в то время как рендер-слои, как правило, просто накладываются на предыдущие с учётом маски прозрачности.
_________________ Трещит земля как пустой орех
Как щепка трещит броня
Последний раз редактировалось: Guest (16:34 21-01-2014), всего редактировалось 5 раз(а) |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
Lion[MX] : |
Самый дальний слой - скайбокс. Обычно куб с текстурами.
|
Но рисовать его надо самым последним. Ну перед пост-эффектами ессно.
_________________ MOV topka, C++ |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
Что-то почитал вас и опять потянуло на ковыряние своего рендера.
В этот раз начал делать полноценный деферед. Уже заполняются G-буферы и можно применить простое освещение
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
А антиалясинг как делать будешь?
_________________ Трещит земля как пустой орех
Как щепка трещит броня |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
По старинке FXAA
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
DIMOSUS.X : |
По старинке FXAA
|
Говно он даёт, этот FXAA, а не сглаживание... Что не надо - мылит, а что надо - оставляет кирпичами. Да ещё в динамике постоянно меняется граница размытия, из-за чего появляется нехреновое такое мерцание. Причём чем плавнее движение (а у КК движение довольно плавное) - тем явственее это мерцание.
FXAA хорош для всего, что рендерится на расстоянии до 30-40 виртуальных метров. CQB (close-quarter battle), экшен с полуоткрытой сценой, квесты...
Для гонок уже не для всех подходит. Для экшенов с открытой сценой не подходит, если только там травы не навалено по пояс. Для авиасимов не подходит. Для космосимов не подходит.
Ну то есть как - если выбор между noAA и FXAA - то чаще всего FXAA лучше. Хотя бывают случаи, что лучше наблюдать лесенки, чем всматриваться в мыло до головной боли и красноглазия.
Но между geometry-edgeAA и FXАА разница в динамике огромна и ощутима.
В пост-процессинге догадаться, что можно размывать, а что нельзя - не всегда можно корректно, ОСОБЕННО между кадрами.
_________________ Трещит земля как пустой орех
Как щепка трещит броня
Последний раз редактировалось: Guest (22:31 21-01-2014), всего редактировалось 1 раз |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
Ну хз, и кроме сглаживания проблем хватает. Если уж сильно припечет, можно будет в сторону TXAA посмотреть.
А вообще я сейчас стенсил буфер настраиваю, для экономии филрейта.
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Lion[MX]
270 EGP
     Репутация: 60 Сообщения: 1141 Откуда: Москва Зарегистрирован: 14.01.2005
 |
|
Насчет скайбокса:
Если предполагается несколько десятков или сотен систем, то handmade скайбоксы не пойдут - слишком много труда и занимаемого объема.
Остается делать как в SpaceEngine - база данных звёзд, из которых создаётся скайбокс конкретной системы, плюс накладываются нарисованные туманности.
В плане сенсоров разной чувствительности предлагаю настраивать скайбокс - больше чувствительность - больше количество звезд, ярче туманности, сильнее засветка (а это симуляция ослепления сильными источниками помех от звезды, планет и станций, находится в слое постэффектов). В таких условиях лишняя чувствительность будет мешать даже визуально, как и высокий уровень помех, обнаружению противника.
_________________ Мне сверху видно всё, ты так и знай. |
|
|
Lion[MX]
270 EGP
     Репутация: 60 Сообщения: 1141 Откуда: Москва Зарегистрирован: 14.01.2005
 |
|
Насчет шейдеров: на что они способны? (Для распространенных видеокарт версии шейдеров кажется 2.0).
И можно ли сделать нормальный эффект выхода корабля из потрала? - Корабль начинает появляться при пересечении плоскости портала.
_________________ Мне сверху видно всё, ты так и знай. |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
Думаю сейчас проблематично найти карточку с ШейдерМодел меньше 3.0
А корабль, появляющийся при пересечении плоскрсти, был еще в древнем хоумворлде
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
Lion[MX] : |
И можно ли сделать нормальный эффект выхода корабля из потрала? - Корабль начинает появляться при пересечении плоскости портала.
|
Можно. Делайте. Если хотите знать как: Берете, рендерите весь корабль, потом рендерите квадрат отсечения, а потом все остальное.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
|
|
|
Канал Игры Мечты: «Проблемы графики в космических играх» |
|