Почему игровая графика не так красива, как анимационные фильмы?


60

Я помню, как смотрел предварительно отрендеренный трейлер Tomb Raider, и хотел, чтобы эта графика была в самой игре.

Почему такая большая разница между трейлером и реальной игрой? Я понимаю, что игра - это совершенно другая концепция, она имеет другой конвейер, она должна проходить через различные виды взаимодействия с игроками и т. Д. Я хочу знать, что такое игры, которые делают их рендеринг таким трудным по сравнению с анимационными фильмами.

До сих пор я знал, что создание игры и анимационного фильма разделяют некоторую базовую нагрузку, например, создание 3d-моделей, рендеринг их (только в игре это происходит вживую). Анимированные фильмы просматриваются очень долго, и мы видим только предварительно отрендеренные сцены. Это все, что я знаю, поэтому я надеюсь, что вы ответите с этой точки зрения!

А как насчет рендеринга анимационных фильмов, который часами и часами делает их такими красивыми, в то время как рендеринг в игре менее красив (с общей точки зрения)?


1
Я действительно не вижу, как принятый ответ действительно соответствует пунктам вашего вопроса. Можете ли вы оставить здесь комментарий как краткое изложение того, что вы поняли из него, то есть какие новости он принес вам, чтобы теперь вы понимали проблему, которой раньше не понимали?
Богдан Александру

4
Не уверен, что вы смущены. Вопрос в названии; принятый пост отвечает на этот вопрос.
Джоккинг

2
На самом деле я понял 80% из ответа. Остальные покрывали 20%, особенно я многому научился из ответа @ Владимира (см. Ниже). В некоторых ответах даже обсуждались вещи, о которых я не думал, например, добавление деталей после рендеринга. И чтобы ответить на ваш вопрос, я выбрал ответ, потому что я думаю, что он принес более глубокий уровень понимания (не только он упомянул основные моменты, но и алгоритмы / концепции, работающие за ним). И к тому времени я закончил читать это, другие ответы были также удивительны! Трудно было выбрать, какой из них лучший, но людям это тоже нравится! Я бы отметил их всех!
Cowboysaif

Возможно, потому что разработчики игр не заинтересованы в том, чтобы тратить более 50 000 000 долларов на эффекты - то, что продюсеры фильмов обычно делают в наши дни.
Питер Гиркенс

Ответы:


109

Вы уже упомянули один из центральных моментов: время .

В процессе рендеринга анимации с высокой точностью воспроизведения используются несколько различных подходов и алгоритмов (все обычно объединяются под термином «Глобальное освещение» ), причем трассировка лучей является одной из наиболее распространенных (другие включают, например, Radiosity и Ambient Occlusion ).

Трассировка лучей включает в себя моделирование (обычно большого) количества световых лучей, проходящих через сцену, и вычисление их путей, их отражений и преломлений при попадании на объекты с различными материалами. В свою очередь, разные материалы имеют разные физические свойства, которые приводят к специфическим реакциям на лучи (например, количество света, отражающегося от одного объекта, выше для блестящих объектов по сравнению с глянцевым).

Еще один момент - это физика : моделирование тысяч линий волос физически правильным образом отнимает много времени. Вот почему в старых играх волосы часто аппроксимируются очень грубой сеткой, которая затем текстурируется, чтобы создать впечатление о волосах, возможно, с некоторыми дополнительными движущимися объектами, чтобы сделать их более реалистичными.

Также следует учитывать: память и пропускная способность . Чем выше качество текстуры, применяемой к объекту в сцене, тем больше памяти вам нужно загрузить и использовать в игре. Но система должна не только иметь достаточно памяти для хранения данных, но и передавать эти данные, используя всю доступную пропускную способность. Поскольку память и пропускная способность ограничены, есть максимум, чего можно достичь.

Игры часто немного обманывают, используя только текстуры высокого разрешения для ближних объектов, и используют изображения с более низким разрешением для удаленных объектов (термин: MipMapping ), тем самым уменьшая необходимую пропускную способность, поскольку нужно выбирать меньше текселей, что, в свою очередь, увеличивает производительность (см. раздел о MipMapping в Руководстве по программированию Apple OpenGLES).

Точно так же игры также часто используют разные сетки для объектов, в зависимости от того, насколько далеко они находятся, а удаленные объекты менее детализированы (термин: LoD = уровень детализации ).

Вывод: в графике в реальном времени (такой как игры и симуляции) этот детальный и сложный процесс рендеринга, конечно, не будет работать для создания плавных / плавных сцен. Для достижения этого плавного эффекта анимации / движения для человеческого глаза вам нужно как минимум 20 визуализированных кадров в секунду. С другой стороны, рендеринг одного кадра (!) В анимационном фильме может легко занять от нескольких часов до нескольких дней, в зависимости от многих факторов, таких как количество используемых лучей в трассировке лучей или количество выборок для Ambient Окклюзия (см. Эти страницы Pixar 1 / страница Pixar 2 для снимков экрана 16 и 256 образцов), а также желаемое разрешение фильма (больше пикселей = больше информации для вычисления). Также см. Эту статьюо процессе создания анимационного фильма Pixar's Monsters University , который дает некоторые интересные идеи, а также упоминает 29 часов времени рендеринга на кадр.

В целом: чем выше точность / реалистичность, которая должна быть достигнута, тем больше итераций / отказов / выборок обычно требуется, что в свою очередь требует больше ресурсов (как времени, так и / или вычислительной мощности / памяти). Чтобы визуализировать разницу, просмотрите итоговый рендер на основе количества отскоков для расчета преломления в этом примере: Алмазные отскоки от Keyshot

Но, конечно, качество приложений реального времени постоянно увеличивается по двум причинам:

  1. Более сильное оборудование: по мере того, как (игровые) компьютеры становятся лучше (= больше [параллельной] вычислительной мощности, более высокая скорость передачи данных между компьютерными компонентами, больше и более быстрая память и т. Д.), Также увеличивается визуальная точность, потому что на самом деле требуются более длительные вычисления стать возможным в системе реального времени.
  2. Разработаны и реализованы более умные методы / формулы, которые способны создавать довольно фотореалистичные эффекты без необходимости трассировки лучей. Это часто включает в себя приближения и иногда предварительно рассчитанные данные. Некоторые примеры:


4
@cowboysa, если вы не можете сделать это на GPU "как есть". Вы должны были бы получить специализированное HW. Однако есть попытки сделать трассировку лучей в реальном времени, используя CUDA или подобную технологию.
Wondra

4
Существует много других техник, кроме трассировки лучей, используемых в офлайновом рендеринге при создании кинематики профессионального качества. Но, как вы говорите, они используют дорогие методы рендеринга, освещения и затенения, которые просто непрактичны для рендеринга в реальном времени.
MrCranky

40
Этот ответ объясняет, почему предварительно отрендеренная анимация отнимает гораздо больше времени, но не дает ощущения масштаба. Разница огромная ! Игра должна визуализировать кадр менее чем за 1/30 секунды, в то время как для фильмов обычно требуется несколько дней для рендеринга каждого кадра.
Джоккинг

9
«Дни» - это, конечно, верхний предел шкалы времени, но да, фильмы иногда занимают более одного дня для рендеринга одного кадра (см. Здесь, например, venturebeat.com/2013/04/24/… ) И даже в среднем время рендеринга по-прежнему составляет полдня на кадр, а это все еще дольше, чем игра должна рендерить. Причина, по которой весь фильм не занимает десятилетия, состоит в том, что у них есть ферма рендеринга, т.е. сотни машин рендеринга одновременно.
Джоккинг

7
Несколько фактов: трассировка лучей используется везде, это абсолютно нишевая техника. VRay только CPU. VRayRT - только GPU. GPU не очень подходит для производства, потому что сцены обычно занимают много ГБ ОЗУ и не помещаются в GPU (но иногда это помогает). Наши собственные снимки занимают 1-2 часа / кадр на высокопроизводительных процессорах, и это не так долго. Джек Эйдли совершенно не прав.
Calvin1602,

44

Помимо временного фактора, стоит отметить, что в фильме художник полностью контролирует то, что зритель будет и не будет смотреть.

В типичной сцене фильма камера не будет тратить много времени на то, чтобы указывать на потолок или указывать в темный угол комнаты, или нацеливать на чью-то лодыжку, поэтому бюджет полигонов и текстур для этих элементов будет довольно низким.

Если вся сцена происходит с одной точки зрения, виртуальный набор (как настоящий набор фильмов) не должен включать части, которые находятся за камерой. В большинстве игр игрок может свободно смотреть где угодно и когда угодно. Это означает, что качественный бюджет может быть сфокусирован на том, что действительно видели. (Некоторые игры от третьего лица, например, серия God Of War, используют камеру с ограниченным доступом; их изображения, как правило, заметно лучше, чем у более бесплатных игр с камерой).


12
Точка, которую нельзя недооценивать. Рендеринг фиксированного набора кадров позволяет полностью сфокусироваться только на этих кадрах, все, что вызывает проблему в отдельном кадре, можно устранить вручную.
aaaaaaaaaaaa

9
Черт возьми, это часто используется с играми, в которых их ролики «живут в движке», поэтому вырезанные сцены все еще могут выглядеть лучше.
14

ИМХО, одна из игр, нарушающая это правило, - « Братья: рассказ о двух сыновьях». Разработчики делают все возможное, чтобы камера оказалась в нужном месте и чувствовала себя естественно.
Basic

12
А как насчет рендеринга анимационных фильмов, который часами и часами делает их такими красивыми, в то время как рендеринг в игре менее красив (с общей точки зрения)?

Вы предполагаете, что разница заключается просто в рендере - в анимационном фильме также есть возможность для редактирования после факта. Они могут иметь комбинированные эффекты, которых было бы трудно достичь в оригинальном движке, или они могут немного подправить вещи (например, удалить или повторить каждый 10-й кадр, чтобы ускорить / замедлить анимацию).

Если у вас есть шанс, найдите один из DVD 'Roughnecks: The Starship Trooper Chronicles', так как в них есть треки комментариев от редактора и аниматоров о трюках, которые они должны были сделать, когда начали отставать от графика доставки - такие вещи, как перерабатывать кадры, но переворачивать ось, чтобы это было не так очевидно, коррекция цвета, маскировка вещей, которые им не нравились, добавление взрывов и т. д.


Игровые движки тоже это делают! ;-)
Адриан Мэр

@AdrianMaire: они могли бы делать некоторые другие вещи, но у них не было бы человека, который мог бы действовать в качестве редактора и настраивать вещи, когда это необходимо. Я знаю, что упомянул, как они изменяют вещи, но моя главная мысль заключалась в том, что в предварительно отрендеренных вещах участвовали люди ..
Джо

10

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

С другой стороны, в играх не так много деталей, потому что сцена должна воспроизводиться 30 или более раз в секунду. Именно поэтому разработчики стараются использовать как можно больше ресурсов (текстур, моделей и т. Д.), Потому что рендеринг одного и того же объекта в двух позициях происходит намного быстрее, чем если бы все было уникальным. Они также должны следить за тем, чтобы не использовать слишком много полигонов в своих моделях, и вместо этого стараются создать впечатление глубины, используя освещение, текстуры, рельефное отображение и другие методы.

У фильмов нет этой проблемы; они делают сцену так, как они хотят, и используют столько деталей и подробных текстур, моделей и геометрии, сколько необходимо для достижения сцены, которую они ищут.

Можно утверждать, что игры наверстывают упущенное. Если вы посмотрите на некоторые из самых красивых игр в последнее время, они не так далеки от качества фильмов, как раньше. Конечно, вы всегда сможете втиснуть больше деталей в предварительно визуализированную сцену, чем в игру, но я думаю, что разница не будет столь заметной через несколько лет.


1
Люблю это ответы! Так кто же должен быть главным виновником? Уровень полигона или трассировка лучей? Используют ли игровые движки буфер z, потому что он более легкий? Или трассировка лучей делает больше, чем вычисление глубины?
Cowboysaif

2
Я предполагаю, что это трассировка лучей. Филипп, кажется, гораздо лучше меня знает об этом, но, насколько я знаю, это в основном способ имитировать световые лучи так, как они будут действовать в реальности - отражаться от предметов, рассеиваться, разбиваться или иным образом изменяться материалами в сцене. , и так далее. Если у вас есть такие вещи, как мех, волосы или другие тяжелые симуляции (например, жидкости) в вашей сцене, физика также имеет высокую производительность - также эти вещи снова влияют на сложность трассировки лучей.
Кристиан

2
Приложение трассировки лучей также нуждается в чем-то вроде буфера Z, чтобы определить и сохранить, какие объекты перекрывают другие объекты. Но трассировка лучей намного более детальна, чем приложение в реальном времени, поскольку она делает все, что мы с Кристианом уже упоминали, чтобы получить более высокую графическую точность, посылая эти отдельные световые лучи и вычисляя фактическое преломление / рассеяние, например, в стеклянных объектах или воде рендеринг физических волос, непрямое освещение и окклюзия окружающей среды и т. д. (хотя некоторые из этих частей также могут быть аппроксимированы в реальном времени в настоящее время, как я уже упоминал).
Филипп Альгайер

7
Фильмы отображаются с примерно 10-12 часами вычислительного времени на кадр. А по закону Блинна каждый раз, когда вычислительная мощность улучшается, они просто добавляют больше материала на сцену, чтобы он никогда не становился быстрее. Рендеринг фильмов также имеет тенденцию использовать «точные» решения в замкнутой форме для всех уравнений рендеринга, где игры имеют множество приближений, потому что он должен быть в миллион раз быстрее, чем фильм.
Чак Уолбурн

2
никогда не слышал о Законе
Блинна

8

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

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

Примеры этого из рассматриваемого трейлера : когда терапевт кивает и дает «неплохую» улыбку , и когда Лара сжимает подлокотник, трясет ногой или с трепетом смотрит на пещеру. Эти мелочи (или их отсутствие, и «пластиковые» персонажи) влияют на воспринимаемый реализм гораздо больше, чем незначительные улучшения графики.

В отличие от других графических отличий, это не та проблема, которую потенциально можно решить, используя больше вычислительной мощности: это принципиальная разница между миром, который написан на скриптах, и миром, который реагирует на каждое ваше действие. В связи с этим, я ожидаю, что реалистичность современных трейлеров превзойдет весь игровой процесс в обозримом будущем.


8

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

Одним из важных эффектов, который трудно испечь для видеоигр, является Subsurface Scattering (SSS) . К сожалению, этот эффект действительно важен для создания реалистичной кожи человека. Вот почему многие «реалистичные» персонажи видеоигр выглядят пластичными.

Один из способов, с помощью которого разработчики могут избежать этой проблемы, - это намеренно сделать персонажей ярко окрашенными, чтобы отвлечь их от пластического вида, или добавив множество теней и текстурных деталей к лицу (например, бороды и т. Д.), Чтобы разбить большие, непрерывные участки кожа.


2
Не говоря уже о всей работе по пост-обработке, которая идет в анимации фильмов. Многие вещи отображаются в виде нескольких отдельных сцен, которые после рендеринга должны быть наслоены друг на друга. Вот почему во многих анимационных фильмах вы часто видите относительно статичные фоны с персонажами, движущимися на переднем плане.
Владимир

6

Чтобы ответить на один из вопросов, заданных ФП в комментарии:

«Так кто же должен быть главным виновником? Уровень полигонов или трассировка лучей?»

Этот вопрос сложнее, чем кажется. Я думаю, что хорошее эмпирическое правило - это следующее уравнение (которое я, кстати, составил):

number of calculations = {polygons} * {light sources} * {effects}

По сути, это означает, что для моделей с относительно небольшим количеством специальных материалов (т.е. без зеркала, под поверхностью и т. Д.) Время вычислений будет большим, определяемым количеством полигонов. Это обычно имеет место для очень простой графики видеоигры.

На практике, однако, в новых играх высокого класса и особенно в фильмах виновником является «обычно» трассировка лучей. Почему? Ну по двум причинам. Сначала я приведу математическую причину, а затем в конце свое мнение об истинной причине.


Мати причина:

Обновление: это математическое объяснение может быть не совсем точным. Пожалуйста, смотрите объяснение CrazyCasta в комментариях для более подробной информации.

Предположим, у вас есть 1000 полигонов и 3 источника света. Наименьшее количество следов лучей, которое вам нужно выполнить, составляет 3 * 1000.

Если мы чрезмерно упростим ситуацию и предположим, что 1 луч трассировки = 1 расчет (грубая недооценка), то нам потребуется 3000 вычислений.

Но теперь давайте предположим, что вы хотите иметь отражения тоже.

Настройки по умолчанию для отражений в бесплатной программе Blender :

max reflections  = 2
ray length limit = None
...

Для этих настроек мы можем предположить, что в лучшем случае это сверхпростое отражение удвоит вычислительную стоимость вашей модели.

Но, как я сказал ранее, этот пример очень упрощен, и вы можете найти очень много эффектов (помимо тех, что я уже упоминал), которые будут снимать ваше время рендеринга через крышу.

Случай и точка: попробуйте визуализировать отражения с помощью gloss=1(по умолчанию в Blender), затем уменьшите глянец до 0,01 и сравните два времени рендеринга. Вы найдете, что тот с 0,01 глянец будет намного медленнее, но сложность модели не изменилась вообще.


Моя качественная, но более реалистичная причина:

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

Но вещи, которые почти всегда имеют значение - это освещение, материальные эффекты и трассировка лучей. Вот почему фильмы, как правило, используют их в попытке приблизиться к красивым сложностям реального мира.


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


2
Боже мой, это то, за чем я охотился. Хотя это был не мой вопрос (я был немного смущен тем, что я должен просить), я думаю, что это так!
Cowboysaif

1
@cowboysaif Рад помочь! :)
Владимир

1
В действительности все не так хорошо, как я мог бы заставить их казаться. Но я думаю, что это может помочь вам получить общее представление. Я обычно просто полагаюсь на метод проб и ошибок. Например, если я отрисовываю более длинную сцену (более 100 кадров), я сначала отрисовываю один или два кадра, чтобы увидеть, насколько быстро она идет и какие эффекты замедляют ее.
Владимир

2
Старый трюк с использованием POVRay на 486 день назад - если вы хотите знать, какие части вашей сцены являются самыми дорогими, визуализируйте несколько видов всей сцены со всеми актерами и опорами на месте и наблюдайте за тем, какие части замедляются raytracer для ползания. Увеличьте эти части, определите наихудшую производительность и потратите большую часть своего бюджета рендеринга на кадры, которые содержат эти элементы. Если у вас плотный график рендеринга, подумайте о перефразировании некоторых снимков.
Том Б

1
@ TomB Хороший совет! Я добавляю к этому, что, если вы ожидаете, что конкретная сцена будет медленной, вы можете обработать ее через Интернет и визуализировать все остальное локально.
Владимир

4

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

Аниматоры могут, например, использовать традиционные методы ручной анимации, которые обычно не используются при рендеринге в реальном времени, такие как размытие, кратность или деформация, чтобы создать более плавное изображение, несмотря на более низкую частоту кадров, чем фильмы (были во всяком случае, до недавнего времени). ) отображается в. В частности, использование мазков и мультипликаторов осложняется использованием сеток - вам нужно создавать деформации сетки для такого рода искажений сетки, и я не думаю, что я видел это в любых трехмерных видеоиграх.

Кадры с быстро движущимися объектами, проходящими через них, могут отображаться с другой частотой кадров, а затем снова объединяться, чтобы создать размытость при движении по сцене. Motion Blur является довольно распространенной техникой в ​​3D графике в реальном времени в наши дни. Эффект обычно не в том высоком качестве, которое получит анимационный дом с десятками процессоров (см. Ответы «время» выше) в значительной степени из-за того, что для фальсификации размытия движения действительно требуется несколько этапов постобработки на слой, и большое количество промежуточных кадров должно быть действительно плавным.

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

Чтобы ответить на один аспект вашего вопроса:

А как насчет рендеринга анимационных фильмов, который часами и часами делает их такими красивыми, в то время как рендеринг в игре менее красив (с общей точки зрения)?

Ремесленники, в основном. Художники в реальном времени не имеют возможности точно настроить каждый кадр или создать одноразовые трюки, чтобы улучшить общий вид сцены или реакции, не только из-за временных ограничений (как в процессе разработки, так и в рендеринге), но и потому, что практических ограничений. Как отмечается в комментарии об интерактивности, игрок, вероятно, не будет делать одно и то же каждый раз, но фильм будет проигрываться одинаково каждый раз.

Это означает, что художник видеоигр имеет совершенно иной набор приоритетов, когда он касается качества модели и конечного качества рендера, чем художник фильма. Оба требуют огромного количества навыков, но каждый требует различных методов. Я ожидаю, что эти методы будут все больше сходиться по мере того, как аппаратное обеспечение рендеринга на потребительском уровне будет продолжать развиваться, и в ваших SIGGRAPH и ваших GDC продолжают появляться математические гении.


1
Ооо, ты только что обсудил то, о чем я хочу поговорить. Деформация сетки? это также называется модификатором сетки? Есть модификатор, который я использовал, когда я возился с Unity 3D, он называется мега-фиерами ( west-racing.com/mf/?page_id=2 ). Хотя Unity 3D поддерживает только анимацию на основе костей, как вы думаете, игровые технологии наконец справятся с этой задачей? Я понятия не имею о других игровых движках, хотя!
Cowboysaif

1
Подобный эффект должен быть совместим с любой техникой анимации, если вы используете математические искажения целой модели с вершинным шейдером (вероятно, то, что делают «мегафиры»). Несколько других подходов: * наличие «целевой» сетки, которая является второй сеткой, которая полностью искажена, и использование вершинного шейдера для перемещения вершин в вашей сетке к их совпадающим вершинам во второй сетке; * запечатлеть деформации в самой вашей модели и использовать ключевую анимацию; * Делая свои искажения, используя скелетную анимацию, исключительно размещая дополнительные кости по мере необходимости ...
Том Б

1
Я уверен, что такого рода анимация была возможна некоторое время, и в некоторой степени уже использовалась, хотя в основном я могу вспомнить только случаи в играх с живыми существами и гибкими моделями (такими как Gish, Tower of Goo, Octodad) , Трудная часть заключается в том, чтобы выяснить, когда использовать эффекты, особенно когда речь идет об использовании кратных или мазков. Направление движения камеры влияет на то, как должно выглядеть полученное изображение или мазок. Я подозреваю, что руководящие принципы, которые используют ручные аниматоры, были бы хорошей отправной точкой, но подумайте обо всем веселье, которое можно получить в экспериментах!
Том Б

3

Один анимационный фильм может занять много лет, чтобы воспроизвести на одном зверьке машины. Так как он предварительно визуализирован, не имеет значения, сколько дорогостоящих эффектов, таких как отражения света, тени и т. Д., Мы добавляем в сцену. Эти фильмы обычно обрабатываются фермами рендеринга, где тысячи компьютеров связаны друг с другом, работая над одной и той же работой.

Причина, по которой мы не можем добиться такого же качества в режиме реального времени, заключается в том, что машине нужно визуализировать текущий кадр примерно за 16 мс, чтобы достичь FPS 60. Один кадр для анимационного фильма может занять несколько часов для рендеринга на одном ПК.

В игре, помимо графики, происходит масса других вещей. В каждом кадре есть тонны расчетов. Проще говоря, анимационный фильм не должен рассчитывать урон, нанесенный игроку от ракетной установки, вы просто анимируете гибы и полигоны рендерится.

К счастью, на этой планете ходят гениальные люди. Помимо более качественных ПК, которые могут рендерить больше полигонов и более крупные текстуры, есть несколько изобретательных изобретений, таких как карты нормалей, которые могут очень дешево анимировать свет / тень на плоском полигоне, делая скучный 3D-объект необычайно детализированным.

Некоторые из этих дорогих эффектов, которые делают фильмы, имеют дополнительную вспышку.

  • Свет отскакивает. В реальной жизни свет отражается, пока он не будет полностью поглощен отраженными поверхностями. Для каждого источника света должны быть выполнены расчеты. Попробуйте подержать цветной предмет рядом с листом белой бумаги, и вы увидите, как цвет расплылся на бумаге.
  • Игры имеют жесткие ограничения по количеству используемых полигонов, фильмы с предварительным просмотром не имеют этих ограничений, рендеринг занимает больше времени. Возвращаясь к легкому подпрыгиванию, если у нас будет больше полигонов, тогда будет больше легких вычислений для еще лучшего визуального эффекта, но за счет экспоненциально растущих затрат.
  • Размер текстуры, графические карты могут содержать только определенное количество данных в них, и переключение этих данных стоит дорого. Обычная текстура 1024x1024, включающая все карты шейдеров, может легко занять пару процентов вашей 1 ГБ карты GFX. Когда карта должна переключать данные, это обходится дорого. Очевидно, мы не очень заботимся об этом, когда снимаем фильм. Кроме того, в фильме нам просто нужны текстуры с высоким разрешением, когда камера приближается, для игры мы хотим, чтобы это было для каждого объекта, к которому игрок может приблизиться.
  • Поиск пути очень требователен к процессору. Например, алгоритмы поиска пути заставляют врагов находить маршруты к вам или заставляют вашего игрока идти по пути, когда вы щелкаете куда-то. Такое нахождение пути может быть дорогостоящим, когда имеется 10000 путевых точек (что составляет каждый квадратный метр на карте размером 100 х 100 м), тогда возможно, что нам нужно будет пересечь все эти путевые точки много раз в одном кадре. Есть много способов сделать это дешевле в зависимости от потребностей, но факт в том, что нам это не нужно для предварительно обработанных сцен.

Проще говоря, нам нужно придумать «дешевые» приемы, чтобы игра выглядела хорошо. Но человеческий глаз трудно обмануть.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.