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

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

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

Повинно бути вказано чи є тінь, яка відкидається, динамічною або статичною. Стіна з тінню на ній - це статична тінь. Стіна не рухається, і тому її геометрична форма не буде переміщуватися або змінюватися в сцені. Динамічна тінь - це та, що має свої геометричні зміни всередині сцени.

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

МетодиРедагувати

Поле висоти самозатіненняРедагувати

Був створений метод, при якому можна швидко обчислити тінь на шорсткій поверхні, знайшовши високі точки вздовж від джерела світла та ігноруючи будь-які інші геометричні точки під піками. Уявіть собі схід сонця в горах, де світло досягає піку позаду вас, але ви все ще в темряві. Комп'ютер не повинен турбуватися про те, що вам потрібна тінь або світло, оскільки ви нижче піку позаду вас. «Поле висот самозатінення» відображає власні тіні на динамічних полях висот в динамічних середовищах в режимі реального часу.[1]

3D волоссяРедагувати

Самозатінення можна використовувати для інтерактивної анімації волосся, що зазвичай дуже складно для комп'ютерів при рендерингу через велике збільшення індивідуальних геометричних фігур, яке може приймати волосся. Самозатінення - основна частина 3D-додатку, яка вносить вклад у враження взагалі.[2]

Об'єм тініРедагувати

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

Тіньове відображенняРедагувати

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

Radiosity Normal MappingРедагувати

Кріс Грін з Valve, розробник відеоігор, каже, що дані карти рельєфу засновані на геометричних описах об'єктів. Значні світлові сигнали поверхні через оклюзії освітлення по деталях поверхні не обчислюються.[3] Загальним виправленням є використання додаткового каналу текстури для створення навколишнього ambient occlusion (модель затемнення) поля. Це забезпечує ефект затемнення, який не пов'язаний з напрямком джерела світла при впливі на поверхню.[3] A common fix is to use an additional texture channel to create an ambient occlusion field. This only provides a darkening effect that is not connected to the direction of the light source on acting on the surface.[3]

ІсторіяРедагувати

Метод використовування тіньового об'єму був запропонований Френком Кроу в 1977 році.[4] Перевага тіньового об'єму полягала в тому, що його можна було використовувати для створення точних копій усього, в тому числі і самого себе.

Дивіться такожРедагувати

ПриміткиРедагувати

  1. Timonen, V., & Westerholm, J. (2010). Scalable Height Field Self-Shadowing. Computer Graphics Forum, 29(2), 723-731. doi:10.1111/j.1467-8659.2009.01642.x
  2. Bertails, F., Ménier, C., & Cani, M.-P. (2005, May). A practical self-shadowing algorithm for interactive hair animation. Retrieved from http://www-evasion.imag.fr/Publications/2005/BMC05a/BertailsHairRendering.pdf
  3. а б в Green, Chris. Efficient self-shadowed Radiosity normal mapping. Архів оригіналу за 21 грудень 2008. 
  4. Crow, Franklin C: "Shadow Algorithms for Computer Graphics", Computer Graphics (SIGGRAPH '77 Proceedings), vol. 11, no. 2, 242-248.