Чому ігрова графіка не така красива, як анімаційні фільми?


60

Я пам'ятаю, як дивився попередньо зроблений трейлер Tomb Raider, і хотів, щоб ця графіка могла бути в самій грі.

Чому існує така велика різниця між трейлером та фактичною грою? Я розумію, що гра - це зовсім інша концепція, вона має різний конвеєр, вона має проходити через різні види взаємодій гравців тощо.

Поки я знаю, що створення гри та мультфільму поділяють основне навантаження, наприклад, виготовлення 3d-моделей, рендерінг (лише в грі це відбувається в прямому ефірі). Анімаційні фільми відображаються на тривалий час, і ми бачимо лише попередньо відтворені сцени. Це все, що я знаю, тож сподіваюся, що ви відповісте з цього погляду!

Що з рендерінгом мультиплікаційних фільмів годинами та годинами робить їх такими прекрасними, тоді як ігровий рендер в грі менш красивий (із загальної точки зору)?


1
Я дійсно не бачу, як прийнята відповідь насправді відповідає точкам вашого питання. Чи можете ви залишити коментар тут як резюме того, що ви зрозуміли з нього, тобто які новини вам це принесли, щоб тепер ви зрозуміли проблему, якої раніше ви не зробили?
Богдан Олександру

4
Не впевнений, у чому вас плутають. Питання - назва; прийняте повідомлення відповідає на це запитання.
поштовх

2
Насправді я зрозумів 80% з відповіді. Решта покривала 20%, спеціально я багато чого дізнався з відповіді @ Володимира (див. Нижче). Деякі відповіді навіть обговорювали речі, про які я не думав, наприклад додавання деталей після надання. І щоб відповісти на ваше запитання, я вибрав відповідь, тому що я думаю, що це принесло глибший рівень розуміння (не тільки він згадав моменти, але й алгоритми / концепції, що працюють за ним). І до того часу я закінчив це читати, інші відповіді також були дивовижними! Важко було вибрати, хто з них найкращий, але людям, здається, він теж подобається! Я б позначив їх усіх!
ковбойсайф

Можливо, тому, що розробники ігор не зацікавлені витрачати 50 000 000 доларів + на ефекти - те, що виробники кіно сьогодні роблять звичайно.
Пітер Геркенс

Відповіді:


109

Ви вже згадали один із центральних моментів: Час .

У процесі надання анімації з високою точністю використовуються безліч різних підходів і алгоритмів (які зазвичай поєднуються під терміном "Глобальне освітлення" ), причому Ray-Tracing є одним з найпоширеніших (серед інших, наприклад, Radiosity і Ambient Occlusion). ).

Ray-Tracing передбачає моделювання (як правило, високої) кількості світлових променів, що проходять через сцену, та обчислення їхніх шляхів, їх відбиття та заломлення при попаданні предметів різними матеріалами. У відповідь різні матеріали мають різні фізичні властивості, які призводять до конкретних реакцій на промені (кількість світла, яке відбивається, наприклад, від одного об'єкта, вище для блискучих предметів порівняно з глянсовим).

Ще один момент - фізика : імітація тисяч штамів волосся фізично правильним способом займає багато часу. Ось чому в старих іграх волосся часто наближаються до дуже грубої сітки, яка потім текстурується, щоб створити враження волосся, можливо, з деякими додатковими рухомими предметами, щоб зробити вигляд трохи реалістичнішим.

Також слід враховувати: Пам'ять і пропускна здатність . Чим вище якість текстури, застосованої до об'єкта в сцені, тим більше пам'яті потрібно завантажувати та використовувати в грі. Але не тільки системі потрібно мати достатню кількість пам'яті для зберігання даних, але й ці дані також потрібно перенести навколо, яка використовує наявну пропускну здатність. Оскільки пам'ять і пропускна здатність обмежені, то можна досягти максимуму.

Ігри часто обманюють, лише використовуючи текстури високої роздільної здатності для близьких об’єктів, а також використовують зображення нижчої роздільної здатності для далеких об'єктів (термін: MipMapping ), таким чином зменшуючи необхідну пропускну здатність, оскільки потрібно отримати меншу кількість текселів, що взамін збільшує продуктивність (див. розділ про MipMapping в посібнику з програмування OpenGLES від Apple).

Так само ігри часто використовують різні сітки для об'єктів залежно від того, наскільки далеко вони знаходяться, а далекі об'єкти мають менш детальну інформацію (термін: LoD = рівень деталізації ).

Висновок: У графіку в реальному часі (наприклад, ігри та симуляції) цей детальний і складний процес візуалізації, звичайно, не спрацює для створення плинних / плавних сцен. Вам потрібно щонайменше 20 виведених кадрів в секунду, щоб досягти ефекту анімації та руху рідини для людського ока. З іншого боку, візуалізація одного кадру (!) В анімаційному фільмі може легко зайняти що-небудь від кількох годин до декількох днів, залежно від багатьох факторів, таких як кількість використаних променів у програмі Ray-Tracing або кількість зразків для Ambient Оклюзія (див. Ці Pixar сторінка 1 / Pixar сторінка 2 для знімків екрану 16 проти 256 зразків), а також бажане дозвіл фільму (більше пікселів = більше інформації, яку потрібно обчислити). Також дивіться цю статтюпро процес, що стоїть за анімаційним фільмом Pixar's Monsters University , який дає цікаву інформацію, а також згадує 29 годин візуалізації за кадр.

Взагалі: чим вище вірність / реалізм, який потрібно досягти, тим більше ітерацій / відмов / зразків зазвичай потрібно, що взамін вимагає більше ресурсів (і часу, і / або обчислювальної потужності / пам'яті). Щоб візуалізувати різницю, див. Отриманий рендер на основі кількості відмов для обчислення заломлення в цьому прикладі: Diamond Bounces from Keyshot

Але, звичайно, якість додатків у режимі реального часу постійно зростає з двох причин:

  1. Більш міцне обладнання: У міру того, як (ігрові) комп’ютери покращуються (= більше [паралельна] обчислювальна потужність, вища передача даних між компонентами комп'ютера, більша та швидша пам'ять тощо), зростає і візуальна вірність, оскільки фактично більш трудомісткі обчислення стають здійсненими в системі реального часу.
  2. Розроблені та впроваджені більш розумні методи / формули, які здатні створювати досить фотореалістичні ефекти, не потребуючи проміння. Це часто включає наближення, а іноді і попередньо обчислені дані. Деякі приклади:


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

4
Існує багато інших прийомів, ніж променева стрічка, яка використовується в режимі офлайн-рендерінгу під час створення професійних кінотеатрів якості. Але, як ви кажете, вони використовують дорогі методи візуалізації, освітлення та затінення, які просто не практичні для візуалізації в режимі реального часу.
MrCranky

40
Ця відповідь пояснює, чому попередньо виведена анімація займає набагато більше часу, але насправді не дає відчуття масштабу. Різниця величезна ! Гра повинна відображати кадр за 1/30-ту секунду, тоді як для фільмів звичайно потрібно кілька днів, щоб відобразити кожен кадр.
поштовх

9
"Дні", безумовно, найвищий кінець часової шкали, але так, фільми іноді потребують більше одного дня, щоб відобразити один кадр (див. Тут, наприклад, venturebeat.com/2013/04/24/… ) І навіть у середньому Час візуалізації - це все одно, як півдня на кадр, що все-таки довше, ніж гра повинна виводити. Причина, чому весь фільм не потребує десятиліття, - це те, що у них є ферма візуалізації, тобто. сотні машин, що надають одночасно.
поштовх

7
Кілька фактів: Raytracing використовується скрізь, це абсолютно не ніша техніка. VRay - це лише процесор. VRayRT - це лише GPU. Графічний процесор не дуже підходить для виробництва, тому що сцени зазвичай займають багато ГБ оперативної пам’яті і не підходять до GPU (але іноді це допомагає). Наші власні знімки займають 1-2 години / кадр на високоякісних процесорах, і це не так довго. JackAidley абсолютно помиляється.
Calvin1602

44

Окрім фактора часу, варто зазначити, що у фільмі художник має повний контроль над тим, що глядач буде робити, а що не буде дивитись.

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

Якщо вся сцена відбувається з однієї точки зору, віртуальний набір (як справжній набір фільмів) не повинен включати частини, які знаходяться позаду камери. У більшості ігор гравець може вільно шукати куди завгодно в будь-який час. Це означає, що бюджет якості може бути зосереджений на тому, що насправді спостерігається. (Деякі ігри третіх осіб, наприклад, серія God Of War, використовують камеру з обмеженим доступом; їх візуальні зображення, як правило, значно кращі, ніж у більшості ігор з вільною камерою.)


12
Точка, яку не варто недооцінювати. Відображення фіксованого набору кадрів дозволяють повністю зосередитись лише на тих кадрах, все, що спричиняє проблему в окремому кадрі, можна опікувати вручну.
aaaaaaaaaaaa

9
Чорт забирай, це часто використовується в іграх, які роблять їхні "камери" в двигуні ", тому сцени крою все ще можуть виглядати краще.
trlkly

Одна гра, яка порушує це правило, IMHO - Брати: Казка про двох синів . Деви розібралися, щоб переконатися, що камера потрапляє в потрібне місце і теж почувається природною.
Основний

12
Що з рендерінгом мультиплікаційних фільмів годинами та годинами робить їх такими прекрасними, тоді як ігровий рендер в грі менш красивий (із загальної точки зору)?

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

Якщо у вас є можливість, викопайте один із DVD-дисків "Roughnecks: The Starship Trooper Chronicles", оскільки вони мають коментарі редактора та аніматорів про хитрощі, які їм довелося робити, коли вони почали відставати від розкладу доставки - такі речі переробляти постріли, але перевертати вісь, щоб це було не так очевидно, кольорові корективи, маскування речей, які їм не сподобалися, додавання вибухів тощо


Ігрові двигуни теж роблять це! ;-)
Адріан Мейр

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

10

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

Ігри, з іншого боку, не мають в них настільки багато деталей, тому що сцену потрібно показувати 30 і більше разів за секунду. Ось чому розробники намагаються повторно використовувати якомога більше ресурсів (текстур, моделей тощо), адже надання одного і того ж об'єкта у двох положеннях відбувається набагато швидше, ніж якби все було б унікальним. Вони також повинні стежити за тим, щоб не використовувати занадто багато багатокутників у своїх моделях, а натомість намагатися домогтися враження глибини за допомогою освітлення, текстур, картографування та інших методів.

Фільми не мають такої проблеми; вони роблять сцену так, як вони хочуть, і використовують стільки ж детальних текстур, моделей та геометрії, скільки потрібно для досягнення сцени, яку вони шукають.

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


1
Люблячі відповіді! То хто ж повинен бути головним винуватцем? Рівень полігону чи трасування променів? Чи схильні ігрові двигуни використовувати буфер z, оскільки він легший? Або трасування променів робить більшу роботу, ніж обчислення глибини?
ковбойсайф

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

2
Програмі відстеження променів також потрібно щось на зразок буфера Z, щоб визначити та зберігати, які об’єкти окклюжуються з іншими об'єктами. Але трасування променів набагато детальніше, ніж додаток у режимі реального часу, оскільки воно робить все те, про що ми з Крістіаном і я вже згадували, щоб отримати більш високу графічну вірність, посилаючи ці окремі світлові промені та обчислюючи фактичні заломлення / розсіювання, наприклад, у скляних предметах чи воді фізичне відведення волосся, непряме освітлення та забруднення навколишнього середовища тощо (хоча деякі з цих частин також можна наблизити до застосування в режимі реального часу, як я вже згадував).
Філіп Олґейер

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

2
ніколи раніше не чув про Закон
Бліна

8

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

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

Приклади цього з трейлера, про який йде мова, - коли терапевт киває і дарує посмішку «непогано» , а коли Лара стискає підлокітник, дрожить ногами або з побоюванням дивиться на печеру. Ці дрібниці (або їх відсутність, і "пластичні" символи) впливають на сприйнятий реалізм набагато більше, ніж на незначні покращення графіки.

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


8

Додаючи до інших чудових відповідей, які вже були розміщені, варто відзначити, що для досягнення швидких часів обробки, які потрібні іграм, розробникам ігор потрібно спекти багато своїх візуальних ефектів у вигляді простих текстур. Це означає, що слід бути дуже обережним, щоб уникнути ефекту, який не випікатиметься добре.

Одним з важливих ефектів, які важко приготувати для відеоігор, є Підземні розсіювання (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, буде набагато повільніше, але складність моделі взагалі не змінилася.


Моя якісна, але більш реальна причина:

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

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


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


2
Мій бог, це те, на що я полював. Хоча це було не моїм питанням (я трохи розгубився, що мені потрібно просити), я думаю, це все!
ковбойсайф

1
@cowboysaif Радий допомогти! :)
Володимир

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

2
Старий трюк із використання POVRay на 486 тому - якщо ви хочете дізнатися, які частини вашої сцени є найдорожчими, зробіть безліч переглядів всієї сцени з усіма акторами та реквізитами на місці та дивіться частини, які сповільнюються промінчик до повзання. Збільште масштаб цих частин і з'ясуйте найгірші показники та показники витрачання більшості бюджету на відтворення на рамки, які містять ці елементи. Якщо у вас чіткий графік візуалізації, подумайте про зміну деяких кадрів.
Том Б

1
@TomB Гарна порада! Додаю до нього, що якщо ви очікуєте, що певна сцена буде повільною, ви можете її розробити в Інтернеті, а все інше візуалізувати на локальному рівні.
Володимир

4

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

Наприклад, аніматори можуть використовувати традиційні методи анімації руками, які зазвичай не використовуються в режимі рендерінгу, такі як мазки, кратні або викривлення для отримання більш рідинного руху, незважаючи на нижній кадр, який є фільмами (були у будь-якому випадку, до недавнього часу ) відображається в. Використання мазків та мультиплікацій, зокрема, ускладнено використанням сіток - вам потрібно створити деформації сітки для такого роду спотворень сітки, і я не вірю, що я бачив це в будь-яких 3d відеоіграх.

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

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

Щоб вирішити один із аспектів вашого питання:

Що з рендерінгом мультиплікаційних фільмів годинами та годинами робить їх такими прекрасними, тоді як ігровий рендер в грі менш красивий (із загальної точки зору)?

Майстерність, головним чином. Художникам у реальному часі не надається можливість налагодити кожен кадр або створити одноразові трюки, щоб поліпшити загальний вигляд сцени чи реакції не лише через часові обмеження (як у розвитку, так і в рендерінгу), а й тому, що практичних обмежень. Як зазначається в коментарі про інтерактивність, гравець, ймовірно, не збирається робити щойно те саме, але фільм буде грати те саме щоразу.

Це означає, що у виконавця відеоігор дуже різний набір пріоритетів, коли це стосується якості моделі та кінцевої якості візуалізації, ніж художник фільму. Обидва вимагають величезної кількості майстерності, але кожен вимагає різних прийомів. Я очікую, що ці методи все більше зближуються, оскільки апаратне забезпечення надання споживчого рівня продовжує прогресувати, і далі математичний геній продовжує з'являтися у ваших SIGGRAPH та ваших GDC.


1
Ооо, ти щойно обговорював те, про що я хочу поговорити. Деформація сітки? це також називається мережевим модифікатором? Існує модифікатор, який я використовував, коли я переймався єдністю 3d, його називають мегафієрами ( west-racing.com/mf/?page_id=2 ). Хоча єдність 3d підтримує лише анімацію на основі кісток, чи вважаєте ви, що ігрові технології нарешті це впораються? Я не маю уявлення про інші ігрові двигуни!
ковбойсайф

1
Цей ефект повинен бути сумісним з будь-якою технікою анімації, якщо ви використовуєте математичні спотворення в цілій моделі з вершинним шейдером (можливо, те, що роблять "мегафаєри"). Ще кілька підходів: * мати "цільову" сітку, яка є другою сіткою, яка повністю спотворена, і використовувати ваш вершинний шейдер для переміщення вершин у вашій сітці у напрямку їх узгоджених вершин у другій сітці; * утворення деформацій у самій вашій моделі та використання анімації ключових кадрів; * роблячи спотворення, використовуючи скелетну анімацію виключно, розміщуючи зайві кістки за необхідності ...
Том Б,

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

3

Один мультфільм може зайняти багато років, щоб відобразити одного звіра з машини. Оскільки він заздалегідь наданий, не важливо, наскільки дорогі ефекти, такі як відскоки світла, тіні тощо, ми додаємо на сцену. Ці фільми зазвичай отримують ферми візуалізації, де тисячі ПК пов'язані разом, працюючи на одній роботі.

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

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

На щастя, по цій планеті ходить кілька геніальних людей. Окрім кращих ПК, які можуть надавати більше полігонів і більші текстури, є деякі геніальні винаходи, зроблені як звичайні карти, які здатні дуже дешево оживляти світло / тінь на плоскому багатокутнику, завдяки чому нудний 3D-об’єкт виглядає надзвичайно детально.

Деякі з цих дорогих ефектів, які створюють фільми, мають додатковий спалах.

  • Світло відскакує. У реальному житті світло відскакує, поки воно повністю не поглинеться поверхнями, на які відскакує. Для кожного джерела світла необхідно проводити розрахунки. Спробуйте потримати кольоровий предмет поруч з аркушем білого паперу, ви побачите, як кольори відтікають на папері.
  • Ігри мають жорсткі обмеження щодо кількості використовуваних полігонів, фільми попереднього рендеру не мають цих обмежень, для їх відображення просто потрібно більше часу. Назад до підстрибування світла, якщо у нас більше полігонів, то більше світлих розрахунків для ще кращої візуальної картини, але за рахунок експоненціально зростаючих витрат.
  • Розмір текстури, графічні картки можуть зберігати в них лише певний обсяг даних, а комутація цих даних коштує дорого. Звичайна текстура 1024x1024, що включає всі карти шейдерів, може легко зайняти пару відсотків вашої картки GFX на 1 ГБ. Коли картці потрібно переключити дані, це коштує дорого. Очевидно, що ми не так сильно піклуємося про це під час перегляду фільму. Крім того, у фільмі нам просто потрібні текстури високої роздільної здатності, де камера наближається, для гри ми хочемо, щоб це було для кожного об'єкта, до якого може наблизитися гравець.
  • Pathfinding дуже вимогливий до процесора. Наприклад, алгоритми просування маршрутів змушують ворогів знаходити маршрути до вас або змушують гравця проходити шлях, коли кудись клацніть. Таке накладання маршрутів може бути дорогим, якщо на карті 100 м х 100 м є 10000 точкових точок (що становить лише кожен квадратний метр), то, можливо, нам потрібно багато разів пройти всі ці точки на одному кадрі. Існує багато способів зробити це дешевше залежно від потреб, але факт полягає в тому, що нам це не потрібно для попередньо створених сцен.

Простіше кажучи, нам потрібно придумати "дешеві" трюки, щоб гра виглядала добре. Але людське око важко обдурити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.