Деревья в Diablo 3

В замечательном переводе отличной статьи про пузыри ресурсов в Diablo 3 я нашел ссылку на другую отличную статью — «Diablo 3 – Trees», про деревья, которая тоже замечательная. Предлагаю сообществу перевод этого текста. Надеюсь, автор вышеупомянутой статьи меня не расстреляет за это.

Итак, поехали.


Когда я впервые увидел деревья в Diablo 3 на скриншоте, заметил одну особенность. Их силуэты были сглажены, в то время как на других объектах были видны типичные «ступеньки» отсутствующего сглаживания.

image

Я не поверил своим глазам, когда увидел, как они сделали деревья.

Они нарисовали их (alpha8) на изогнутых плоскостях. Да, с таким подходом их можно было использовать лишь с определённой перспективы, но и выглядели они просто невероятно детализированно. Благодаря тому, что вращение камеры — вообще необязательный атрибут в ARPG, Blizzard в очередной раз доказали, что они — мастера в комбинации графики и геймплея.

image

Роберт попросил в комментариях более качественную гифку, да и мне, если честно, никогда не нравилось качество той, которую вы можете увидеть чуть выше. Благодаря великолепному конвертеру APP-OBJ Роберта (.APP — это тип файлов моделей Diablo 3 в MPQ-архивах), мне удалось сделать вот такую вот красоту в отличном качестве:

image

А ещё Роберт спросил, разве нельзя было достичь того же результата с «реальной» геометрией? Вот мой ответ: конечно, можно, но для такого уровня детализации понадобилось бы намного больше полигонов. Вот, для примера, одна ветка:

image

Для этой красивой ветви они использовали всего лишь 2 треугольника вместо х-тысяч на «реалистичную» модель. Кстати, никогда не забывайте, что даже самая большая мега-супер-хайполи-модель (хайполи — от англ. highpoly, т.е. с большим количеством полигонов — прим.пер.) рендерится на плоскую поверхность (фрейм-буфер или, если проще, ваш монитор). Так что если мы не говорим про Oculus Rift (или другие технологии, которые предоставляют «реалистичное» 3D) и в игре нет возможности сильного изменения перспективы (поворот камеры, масштабирование и т.д.) то, возможно, лучше не сходить с ума и просто использовать 2D-элементы вместо тысяч полигонов. Но это моё мнение, которое можно оспорить.

Кстати, если интересно — вот текстура дерева (слева: diffuse, справа: альфа). Сложно смотреть на них без зависти… они такииие красивые!

image

Вопрос в следующем: почему не прибегать к такому методу почаще? Я думаю, это из-за тяжести такого решения. Рассматривать компьютерную графику с традиционной художественной перспективы всё время нелегко. Особенно когда есть люди, которые только и хотят офигенных новых технологий. «У вас ведь 3D-движок? Значит мы хотим поворачивать камеру!». И если человек, который говорит подобное, выше тебя по должности, то твои аргументы, мол вращение камеры не обязательно (либо для геймплея, либо для художественной части игры), будут биться как об стену горох.

Ещё бы рекомендовал посмотреть всю презентацию. Увидеть подход Blizzard в области компьютерной графики — это очень круто и познавательно, особенно, когда вокруг люди, которым только и подавай новые технологии какого-нибудь DX99 — и плевать, что они не нужны игре.

Дополнение #1


Роджер подарил нам новый конвертер моделей Diablo 3! Поскольку в дополнении Reaper of Souls они поменяли формат .APP файлов (модели Diablo 3), старый конвертер не работал. Также вам нужен будет vcredist_x86.exe (содержащий msvcrt*.dll) — его вы можете скачать на сайте Microsoft (я скачивал немецкую версию, а вы не забудьте выбрать нужный вам язык).

Спс, Роджер!
Share post

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 44

    +5
    Если я правильно помню, похожая технология использовалась в первом Ил2 — там модели деревьев состояли из нескольких «кружков» расположенных друг над другом. Сверху отлично смотрелось, и можно было отрендерить целый лес.
      +2
      Да много где подобный подход, но иногда он становится проблемой.
      Взять тот же WoW:

      1) Во времена классики свободные полеты были запрещены и многие локации были нарисованы только с видимой стороны. Близзарду пришлось потратить много сил на дорисовку локаций в катаклизме.

      2) Деревья построены аналогичным образом. Издали смотрится хорошо, но вблизи — ужасно.

      Впрочем, следует помнить что это артефакты 10-летней давности, в новых локациях — все отлично.
        0
        upd: «Деревья построены аналогичным образом.» — имеется в виду текстурные ветки
        +3
        Да и в древних NFS деревья были построены из двух перекрещенных плоскостей. Они еще вращались вслед за камерой — этакий подсолнух.
          0
          Это называется billboard и наверное это немного из другой оперы.
            0
            Возможно, даже axial billboard (billboard, вращающийся к камере кругом некоего up-вектора, традиционно — ось Y, то бишь 0;1;0)
        +4
        Для оптимизации все способы хороши. Удивился, когда рассмотрел как устроена сцена с разрушенной «цитаделью» в HL2. Видно несколько плоских декораций как в театре. Еще было примечательно как на PS1 оптимизировали объекты цилиндрической формы. Обратите внимание на колеса, нашлёпка-торец представляет собой четырехугольник с текстурой колеса.
          0
          Кстати, вспомнилось. Только недавно читал книгу по геймдеву, так вот, там автор рассказывает, что в God of War они использовали модели окружения типа театральных декораций — одна часть выпуклая, 3D, а сзади — ничего нет. Но нам-то этого не видно, так зачем тратить лишние ресурсы на обработку невидимых полигонов? :)
            0
            А как называется книга?
              +1
              Level Up — The Guide to Great Video Game Design от Скотта Роджерса (Scott Rogers). Очень занимательная, написана лёгким и доступным языкм.
          –12
          Бог ты мой, да ребята фактически изобрели спрайты! Невероятно.
            0
            А при чём тут спрайты?
              0
              Ветки сделаны спрайтами. Разве статья не про то, как художники Близзарда придумали использовать плашки с прозрачностью в своих моделях?
              0
              Билборды?
                0
                А в чем разница? Ветки деревьев в данном случае (да и вообще в огромном количестве игр) представляют их себя банальные спрайты: полик с текстурой и прозрачностью, оринетированный нормалями в камеру. Или я чего-то не догоняю?
                  0
                  Здесь ветки фиксированы в пространстве и не следят за камерой. Это не биллборды.
                    0
                    Камера же не крутится, смотрит постоянно под одним и тем же углом. Эти спрайты всегда смотрят в камеру нормалями. Так что их можно и биллбордами назвать. Но речь о другом: в чем сок статьи и почему это дерево преподносится как нечто революционное?
                      0
                      Нет, нельзя. биллборды ориентировавны в камеру всегда. Тут же в зависимости от того где на экране будет находиться дерево, угол между нормалью и взглядом будет разным. В случае биллборда ветки бы «следили» всё время за камерой, вращаясь при движении от левого края экрана к правому. Здесь же полная имитация полноценной модели, без таковой.

                      Революционным никто не преподносит. Это просто внутренняя кухня, уловки и ухищрения, о которых Вы врядли бы подумали играя в эту игру.
              0
              Чем-то напоминает SpeedTree, который сейчас где только не используется.
                0
                Несмотря на то, что на модели выходит заметно меньше полигонов, но в итоге получаем с десяток плашек с полупрозрачностью, висящих друг над другом. Почему это не приводит к проблемам с alpha overdraw?
                  0
                  А почему это должно приводить к alpha overdraw? Тут же просто alpha используется, а не transparent object.
                    0
                    Альфа выглядит не как cut-out, а сглаженная, с полупрозрачностью. В итоге полупрозрачные пиксели нескольких плашек наслаиваются друг на друга, приводя к alpha overdraw, правильно я понимаю?
                      0
                      У юнитов исполняющих код фрагментного и вершинного шейдеров есть определенный запас. Если ребята из Близард уперлись в вершинный при это недогружая фрагментный у них есть полное право бесплатно поиграть так с перекрывающимися прозрачными спрайтами.
                  +2
                  Не уловил, почему на стволах нет алясинга, если они все равно сделаны геометрией: dl.dropboxusercontent.com/s/pfe41599ab9ppcj/shot_150211_113725.png

                  Т.е. в примере с Awesome silhouette и no antialiasing образом показано, что на стволе с плавной формой алясинга меньше, чем на резком срезе. Немудрено, что так получается, но это никоим образом не связано с тем

                  А ветки плоскостями делают везде. Смысла делать их геометрией просто нет, особенно под такую камеру. Суть же всего трюка с деревьями из Diablo исключительно в том, что у дерева нет задней части, т.к. она не нужна из-за того, что камера не вращается. Проблема этого подхода в том, что деревья нельзя вращать, т.е. каждую вариацию надо делать отдельно. Если бы дерево было полностью трехмерным, можно было бы его вращать и получать визуально разные силуэты.

                  Итого: а что такого крутого показали, ради чего стоило бы делать статью?
                    –2
                    Итого: спросите у автора статьи. А мне она просто понравилась, я её перевёл. Модераторы одобрили. Значит, им тоже показалась интересной.
                      0
                      «Мопед не мой, я просто разместил объяву» (с)
                      0
                      Наверное реальный ствол толще, а сглаженная граница у текстурки, обрезанной плавной альфа-маской.
                        0
                        Нет, там точно не так, я специально скриншот сделал с гифки, где показан diffuse и AO. Просто у дерева плавная форма, нет резких изломов с резкой границей свет/тень, да и текстура достаточно пестрая, дополнительно все скрывает.
                        0
                        Согласен. Вообще не особо понятно, что за хайп вокруг стандартной ничем не примечательной модели. Практика оптимизации модели путём удаления никогда не попадающих в камеру полигонов — тоже обычное дело.
                        0
                        «но это никоим образом не связано с тем, что ветки сделаны с помощью альфы»
                          –1
                          Печально, что при всех красотах и огромного объема вложенного в графику труда, получилась настолько унылая игра.
                            +2
                            Сколько бы ни было минусов у игры, конкурентов в этом жанре у неё на сегодняшний день нет. Все эти торчлайты, ван хельсинги и гаунтлеты находятся на уровень ниже по всем параметрам, будь то нарративный дизайн, графика или производительность.
                              0
                              Так то оно так.
                              Однако тот же Legend Of Grimrock 2 доставил на порядок больше удовольствия, при, не знаю точно, но очевидно на порядок меньшем бюджете.
                              Да даже Diablo 1 доставил на порядок больше удовольствия.
                              Divinity новый в разы интересей.
                              При том что это всё на уровень ниже по всем параметрам.
                                +1
                                Э, то есть мы сравниваем Diablo с играми другого жанра, типа гримрок или дивинити? Скоро докатимся, что Diablo будем сравнивать с оперным театром.

                                P.S. Diablo 1 — ничто иное, как ностальгия. Не позволяйте затуманить свой разум ;)
                                  0
                                  Для меня игра есть игра. Я отваливаю X баксов за продукт, а в замен хочу получить Y удовольствия.
                                  У Diablo 3 показатель Y/X очень плохой. Естественно всё субъективно, но пользователи metacritic со мной согласны :)
                                    +1
                                    Сравнивать игры разных жанров — крайне глупо, надеюсь понимаете это? Это как пойти в аппстор и сокрушаться, что в candy crash saga нет сюжета как в анчартед. Или говорить что графон у игры вконтакте не дотягивает до современных шутеров, поэтому играть в них нельзя.

                                    Я ради интереса посмотрел метакритик. Практически все отзывы — это не оправдавшиеся завышенные ожидания (кто-то хотел адового хардкора, кто-то — кастомизации персов (wtf?)) помноженные на проблемный запуск с падающими серверами, т.е. человек пришёл сразу после релиза на метакритик, нажал «0» и забыл, хотя сам вполне мог через день уже с удовольствием играть.
                                    Релизнутая позже консольная версия говорит нам, что пропатченная игра людям нравится: www.metacritic.com/game/playstation-4/diablo-iii-ultimate-evil-edition
                                      0
                                      Кстати вот я был после 10 лет переодических зарубов в Diablo 2 очень разочарован Diablo3 после выхода. Сервера падали, дропа в игре не было, какой-то идиотский аукцион. Тьфу. Прошел один раз варваром и забил.
                                      А потом вышло дополнение. Мрачное, какой и должна быть диабла. Аукцион убрали, дроп подняли в сотни раз, добавили отличнейшнего крестоносца, внедрили системе сезонов и тп. И самое крутое что продолжают улучшать игру не беря за это денег как за ДЛЦ. И что мы видим — сейчас Диабло3 на порядок круче чем была при старте. Она не великолепная, но очень хорошая игра.
                                      Дело было не в последнюю очередь и в ожиданиях, да от нее ждали чего-то вроде второй, только красивее, лучше, больше. Игра динамичная, гораздо динамичнее того же Torchlight 2, Который куда более каноничен в отношении diablo2.
                          • UFO just landed and posted this here
                              0
                              Ну, Старкрафт 2 сильно упирается в процессор :-(. Особенно это заметно в некоторых местах кампании, в нагруженных сценариях и играх 4×4.
                                –2
                                >Поучиться бы такой оптимизации другим компаниям.
                                Не-не-не. Только не это. Пусть в других играх не будет такого, что со включенным звуком проседает FPS (массовая и широко известная проблема, например www.reddit.com/r/Diablo/comments/2fp72d/for_all_that_is_holy_fix_the_framerate/), с определенными билдами (при большом онлайне — со всеми билдами) постоянно начинаются лаги, по суровости доходящие до полной потери контроля на десяток секунд (не шучу, у многих ДХ давно в привычку вошло жать кнопку Т в момент первых же подергиваний экрана, это дает маленькую надежду не обнаружить через те 10 секунд, что все давно лежат) и так далее. Когда на достаточно мощной системе с минимальнейшими настройками графики и без звука ловишь периодическое проседание до 10FPS (точнее — ловят их все одновременно), а тебе требуется быстро и точно метаться по всему экрану — это не здорово.
                                • UFO just landed and posted this here
                                +1
                                Нет, автор мало того, что не расстреляет, так еще и меня предупредил, что Вы уже перевели статью и чтобы я этого не делал. Потому как он сначала подумал, что это я перевел её :)
                                  0
                                  Великодушно благодарю :)
                                  Правда по инерции, увидел — прочитал — понравилось — захотелось поделиться. Это я уже потом подумал, что, быть может, вы хотели её перевести %)
                                    0
                                    У меня есть желание еще переводить его статьи, да. А он по всплескам статистики своего сайта видит что он оказался на хабре.

                                    Сам он жаловался, что когда его упомянул в твиттере Джон Кармак у него сайт лёг. Боялся не уронит ли хабраэффект его сайт тоже.

                                    Симон очень интересный человек, с удовольствием с ним поддерживаю беседу, в том числе и в отношении уточнений тех или иных мест в тексте, странных для меня слов или выражений. Немец всётаки, свои там устоявшиеся фразочки.

                                Only users with full accounts can post comments. Log in, please.