Чому тіньове відображення є стандартом?


41

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

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

Doom 3, зроблений 11 років тому, використовував тіньові томи, які виглядали набагато краще, ніж будь-яка реалізація тіньової карти, яку я коли-небудь бачив, що включає ігри AAA, випущені в той же тиждень, що це питання публікується. Сторонні модники для Doom 3 навіть пом’якшили краї тіней, роблячи їх ще більш візуально вражаючими.

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

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

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


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

1
Doom 3 був на роки попереду свого часу, коли почалася розробка (принаймні, враховуючи вибір графічного API). У нього було кілька резервних копій для обробки поколінь апаратних попередніх шейдерів Модель 2.0, і це означало, що приблизно 1/4 двигуна ледве переносяться (він датується навіть GLSL), а решта 3/4 - кодові шляхи для давніх апаратних розширень NV та ATI які не мали значення до моменту надходження гри. Вибір обсягу тіньових трафаретів був чи не найменшою його проблемою.
Андон М. Коулман

Відповіді:


48

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

Недоліки тіньового трафарету

  1. Тіні відповідають формі сітки для лиття. Це дуже обмежує і, мабуть, найбільша технічна причина не використовувати трафаретні тіні . Листя дерев, кущі, дротяні огорожі, розриви в тканині та інші поширені ігрові елементи, що відливають тінь, використовують альфа-прозорість для визначення форми предмета. Але оскільки тіні трафарету відповідають сітці і не є чітко видимими частинами текстури на сітці, їх не можна використовувати для таких об’єктів. Наприклад, скупчення листя на дереві зазвичай буде текстурою скупчення листя на квадраті. Тіні трафарету зможуть показати лише тінь самого квадрата (і у нього виникнуть проблеми, оскільки квадратик не є закритою сіткою, але це незначна деталь, яку я пропускаю для цієї відповіді, оскільки це як правило, можна обійтися).
  2. Не можна робити точні м'які тіні. Ви вказали, що Doom 3 був модифікований для отримання м'яких тіней. Ця версія тут , принаймні, використовує картування тіней для м'яких тіней. Я також бачив методи екранного простору для пом’якшення жорстких тіней, але вони схильні до всіляких проблем.
  3. Не можна робити тіні на прозорих об'єктах. Для цього є обхідні шляхи - відтворення тіней для прозорих предметів в окремі проходи та складання їх згодом. Але крім складних обхідних шляхів, природа трафаретного тіні така , що кожен піксель на екрані знаходиться або в тіні чи ні. Це також причина відсутність м'яких тіней, як згадувалося раніше.
  4. Взагалі переважна і найміцніша реалізація трафаретних тіней, яку часто називають "Реверс Кармака", насправді запатентована, як в коментарях зазначив Ендже. (Не запатентований Carmack; він повинен був обійти його для відкритої версії Doom 3)

На користь тіньового картографування

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

  1. Масштабованість. Хоча тіньове картографування не є ні дешевим, ні ідеальним ( ред .: але трафаретні тіні теж не дешеві ), відносно легко торгувати вірністю для виконання, змінюючи роздільну здатність тіньових карт або змінюючи фільтрування тіней. Це дозволяє порівняно легко налаштувати якість / продуктивність тіней для різних систем. Як ви вже зазначали, це часто не є ідеальним, але багато цього буде залежати від сприйнятливості гравця, а також роздільної здатності, на якій вони грають (більша роздільна здатність екрана полегшить побачення непомітності тіні картографування). Деякі ігри AAA (наприклад, Fracture ) роблять дивовижну роботу з картографуванням тіней, лише підбираючи потрібні фільтри та налаштовуючи потрібні ручки, в той час як багато хто просто забиває їх там і кажуть "досить добре".
  2. Печиво (текстуровані тіні): додайте текстуру прожектора чи вітража, і ви можете імітувати всілякі джерела світла в реальному світі. Це можливо зробити з трафаретними тінями, до речі, але передбачає майже все налаштування тіньового відображення в будь-якому випадку (ті ж матриці проекцій, які використовуються для проектування текстури світла на об'єкти, є ті, які використовуються для тіньового картографування).
  3. Прозорі тіні: Більшість ігор з цим не намагаються багато, але прозорі тіні можливі при відображенні тіней. Я не просто маю на увазі альфа-вирізи, як дерева та огорожі, як я згадував раніше, але маю на увазі частково прозорі тіні, як від диму та пилу.

Жоден із цих списків не є вичерпним.

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


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

1
Немає проблем :) Деякі з них легко пропустити!
Jibb Smart

8
Я б сказав, що додатковою проблемою з тіньовими обсягами є те, що пропуск по глибині не подобається, що камера знаходиться в тіні, і глибинна помилка запатентована.
Відновіть Моніку

Добрий момент, Енджу. Я додав, що з причин не використовувати трафаретні тіні, і я уточнив головну причину не використовувати трафаретні тіні як "найбільшу технічну причину" не використовувати їх, оскільки випуск патенту сам по собі міг стати шоу-пробкою.
Jibb Smart
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.