Pull to refresh

Comments 22

Очень круто, огромная работа проделана. Прям открытие — простая возможность наблюдать за работай крутых движков, не устанавливая это всё на свою машину.
Ну миссия, можно считать, выполнена. Как минимум одному человеку контент понравился))
Я бы еще упоминание apitrace добавил. Не раз выручал меня, несмотря на наличие навороченных отладчиков.
Спасибо. Включил в текстовку
Только это не совсем отладчик) Он трейсит все графические вызовы в файл. Позже этот файл можно проиграть, перевести в разные форматы включая текст, или открыть gui утилитой для изучения. Прелесть в том, что можно например изменить сорс плеера и вставить например printf() именно в том вызове где надо. Или в тексте можно быстро грепнуть нужные gl вызовы. Можно выдрать нужные вызовы\буфера и вставить их в код.
Подкорректировал этот момент
О watch dogs 2 наглядное видео об оптимизации: рендерятся скалы за домом, который почти весь за холмом! :D /irony
Я не эксперт, но тоже заметил подозрительно большое число вызовов отрисовки объектов, которые не видны. На моем опыте, пока что это лидер по количеству действий на кадр.
Действительно огромная работа, очень интересно.
Когда в ведьмаке рендерится освещение, зачем нужны все эти сетки на небе, в иглу уменьшенные кадры? Чем это отличается от того же гта?
Если остановится на этапе отрисовки моделей, не переходя к освещению, это намного увеличит производительность игры?
Спасибо. В Ведьмаке очень интересный процесс. Мне вот интересно зачем вначале столько геометрии просчитывается, причем даже если ты в закрытом помещении находишься.
Сетки на небе это небесный купол, облака, птички и тд. Сейчас я подробностей не вспомню.
Посмотреть сколько можно выграть по времени можно в отладке. Там есть затраченое время: CPU time, GPU time на каждом событии. Есть диаграммы эффективности использования ресурсов. Подробную аналитику по некоторым игровым тайтлам я планирую проводить после того как соберу больше информации и знаний. И лучше изучу инструменты отладки.
До момента просчёта освещения — все игры похожи на GTA San Andreas.
До момента наложения светофильтров — все игры похожи друг на друга =)

Watch Dogs выглядит безумием, конечно. Но, совершенно очевидно, что там drawing calls упорядочены по текстурам. Т.е. если выполнить сортировку объектов/треугольников и рисовать от ближних к дальним, то перерисовок каждого пиксела будет меньше, но и текстуры переключать придётся гораздо чаще. Видимо, гораздо дешевле отрисовывать далёкие скрытые объекты, которые не будет потом видно (на примере скал, скрытых под асфальтом), чем гораздо чаще переключать текстуры.
Из своего, небольшого, опыта программирования 3D игр могу лишь вспомнить, что я сперва вычислял освещение с формированием Z-буфера, а уже потом выполнял текстурирование с выборкой только тех текстур, пиксели которых не отваливались по Z-буферу. Но у меня шейдер освещённости простой был. Возможно, сейчас дешевле текстурировать, чем сложное освещение считать.
Спасибо. Любопытно. Значит надо смотреть как часто меняется Render State?
Да, для эффективности используют batching и там уже возможности упорядочивания по глубине ограничены (только в пределах одного шейдера и заданных текстур и камеры), если вообще есть смысл тратить время на сортировку. Вообще, я ожидаю увидеть группировку по шейдерам, затем по текстурам, затем уже сортировку по глубине. На примере watch dogs, тексутра скал оказалась самой первой, поэтому сперва нарисовались все скалы, а потом их перекрыло всеми другими объектами. Возможно, там есть какая-то сортировка объектов и рисуется от ближних к дальним, но исходя из текстуры самого близкого объекта. Т.е. кусочек скалы оказался ближе всего к камере, поэтому принято решение начать рисовать скалы, но почти все скалы оказались на горизонте, за исключением малюсенького торчащего камушка у камеры… Это пусть и не очень удачная, но хотя бы логика. А если они в «случайном» порядке объекты рисуют, то там громадные возможности для оптимизации видятся.

А может модель скал единая — поэтому не получается отрезать конкретную часть. Так что тут может быть и неверно организованная модель.

Скалы сильнее всего в глаза бросаются, но те же рассуждения касаются и всего оставшегося рендеринга.
Если, ОМГ, у них такая цельная гигантская модель скал, то просто страшно представить, насколько можно ускорить физический движок, если он эти же модели использует. С другой стороны, надо же как-то оправдать системные требования.)
Я, пожалуй, затребую отдельную статью с разбором ведьмака. Если по остальным таймлапсам у меня вопросов не возникло, то тут я весь ролик только и делал, что голосил: «Что? Что это? Что они делают? А это что? Что происходит вообще???». В общем. дюже интересно :)
Мне тоже очень интересно почему в ведьмаке мы видим такое обилие геометрии, даже будучи в закрытом помещении или в катсценах когда всегда известно куда смотрит/будет смотреть камера.
мне показалось или Геральт отрисовывался два раза в одной и той же сцене? И еще почему бы не отрисовывать все то что не видит игрок? Какая-то часть обектов мне не видна потому что стоит ко мне одним боком…
Хороший вопрос, я бы такой задал разработчикам из CD Projekt Red.))
Sign up to leave a comment.

Articles