Як працює світло та типи тіней
Що таке Світло?
Якщо ми хочемо навчитися відтворювати світло, ми повинні знати, як світло працює в реальному світі.
Справа в тому, що це дуже складно. Якщо ми спробуємо відтворити його точно, це займе занадто багато часу, тому загальний підхід полягає в тому, щоб шукати спосіб отримати досить хороший результат, аналізуючи різні ефекти, що формують освітлення, розкладаючи їх на частини і комбінуючи їх, щоб отримати досить хороший результат.
У цій статті я постараюся узагальнити ці ефекти і трохи вивчити їх, щоб ми зрозуміли, як вони працюють, та покращили способи рендерингу. Я також намагатимусь не ускладнювати та розповісти про те, як ми підходимо до висвітлення у нереалістичному CGI, CGI у реальному часі та ілюстраціях, щоб кожен міг щось почерпнути з цього.
Давайте розглянемо світло як серію променів (це не так, але це досить близько для того, що нам потрібно). Джерела світла випромінюють промені, які розсіюються світом. Коли ці промені досягають наших очей, ми бачимо світло, що відбивається від об'єктів. Виходячи з цієї поведінки, ми можемо визначити емісію (світло випромінюється джерелом світла), відображення (світло відбивається від об'єктів), передачу (світло проходить через об'єкт) та поглинання (світло поглинається об'єктом, нагріваючись).
Емісія (Emission)
Світло випромінюється з джерела світла, коли це джерело перебуває в стані високої енергії і випромінює світло, щоб перейти в стан нижчої енергії.
У більшості випадків випромінювання відбувається при розжарюванні: ми заряджаємо речовину електричною енергією, і воно виділяє енергію у вигляді світла, але існують і інші джерела (випромінювання чорного тіла, флуоресценція, фосфоресценція, прискорення частинок, радіоактивний розпад, лазери, вогонь і т.д.)
Візуально джерела світла дуже схожі, і зазвичай вони змінюють лише інтенсивність і колір, а не те, як вони взаємодіють із речовиною.
Відображення (Reflection)
Світло може відбиватися від об'єкта, даючи нам відбите світло. Ми поділяємо відображене світло на 2 різних типи відображення:
- Дифузне відбиття: промінь світла може злегка проникати через поверхню об'єкта, взаємодіючи з його молекулами та відображаючись у випадковому напрямку. Оскільки світло інтенсивно взаємодіє з об'єктом, деяка його частина поглинається, і світло відображається кольоровим. Більшість відображень у матеріалі працює саме так.
- Дзеркальне відображення: світло може відображатися під певним кутом і прямувати до спостерігача, створюючи дзеркальне відображення. Оскільки світло взаємодіє з об'єктом дуже короткочасно, дзеркальні відображення зазвичай зберігають колір джерела світла, ігноруючи колір об'єкта.
Пропуск (Transmission)
Якщо промінь світла може проходити через об'єкт, ми отримуємо деякі ефекти, такі як:
- Прозорість (Transparency): промінь світла проходить через об'єкт, і його напрямок не змінюється. Це те, що відбувається у реальному житті з більшістю газів.
- Пропускання світла (Translucency): оскільки світло може переміщатися з різними швидкостями в залежності від середовища, через яке воно проходить, коли воно проходить через різні середовища з різними властивостями, воно здається згинальним. Це відбувається в реальному житті з водою, склом тощо.
Відносна швидкість, з якою світло переміщується через матеріал, називається показником заломлення цього матеріалу. Заломлення може викликати інші ефекти, такі як веселки, каустики або призми.
- Розсіювання внутрішнього світла (Subsurface Scattering): прозорий об'єкт може отримувати світло, яке інтенсивно взаємодіє з об'єктом (набуваючи колір) і відображається з нього, надаючи об'єкту вид випромінювання, особливо на тонких поверхнях, де світла більш можливо проникати через об'єкт.
Поглинання
Світло - це енергія, і коли віно потрапляє на об'єкт, його енергія може бути поглинена об'єктом, що призводить до його нагрівання. Фактично, об'єкти можуть поглинати не тільке видиме світло, а й інші види невидимого світла (ультрафіолетовий, інфрачервоний тощо. буд.). Поглинене світло невидиме і не впливає на наші зображення.
Пряме та непряме освітлення
Коли ми розглядаємо тільки первинне відображення світла, ми враховуємо тільки пряме освітлення: світло, що відбивається від об'єкта і направлене прямо в камеру. Однак світло відображається всюди (і відображається ще більше, якщо врахувати, що воно не є частинкою) і багато разів.
Тому ми також повинні включити додаткове світло в наші сцени, яке заповнює дуже темні частини тіней і є цими додатковими променями світла, що відображаються всюди. Це додаткове світло називається непрямим освітленням, що оточує освітленням або глобальною освітленістю.
Непряме освітлення є дуже слабким: якщо одне відображення зазвичай становить 18% вихідної інтенсивності світла, то два відображення становитимуть лише 3,24% вихідної інтенсивності світла. Проте воно дуже помітне, тому що навіть невелика кількість світла на повністю темній поверхні відразу кидається в око.
Коректна реалізація непрямого освітлення досить складна, оскільки нам потрібно враховувати всю сцену, як світло відображається між об'єктами, як додається колір до кожного об'єкта і т. д. Деякі з найбільш поширених підходів включають:
- Розрахуйте його точно, відстежуючи, як світло має відбиватися від сцени, і поєднайте його з прямим освітленням. Цей процес, очевидно, є найточнішим, але він дуже повільний у комп'ютерній графіці, і його дуже важко правильно зобразити на ілюстрації:
- Додати заповнювач/навколишній колір: замість того, щоб залишати затінені частини нашої сцени повністю темними, ми використовуємо базовий колір, який заповнює їх (зазвичай колір неба або колір найбільшого джерела світла), щоб уявити, як довкілля заповнює ці темні області своїм відбитим непрямим світлом.
- Використовуйте базовий колір кожного об'єкта: часто використовується в ілюстрації. Замість того, щоб починати з чорного полотна та додавати світло від кожного джерела, ми зазвичай починаємо з базових кольорів та додаємо на них тіні. Таким чином, затінені області зберігатимуть певний колір, який освітлення світлом непрямого освітлення висвітлило, дозволяючи нам бачити базовий колір поверхонь.
Якщо ми починаємо з базового кольору і потім затемнюємо його для затінених областей, зберігаючи сприйняття базового кольору, ми відтворюємо непряме світло, що досягає цих затінених областей.
Попередження: деякі люди також називають базовий колір об'єкта кольором альбедо або дифузним кольором. Технічно, дифузний колір повинен включати тіні (світло+тінь), а колір альбедо повинен бути плоским кольором (без світла або тіней), але ці терміни часто використовуються без відмінності.
- Додати заповнювальне світло: у комп'ютерній графіці ми можемо додати заповнююче світло (іноді воно збігається з навколишнім кольором), яке висвітлює всі об'єкти з усіх кутів.
Аналогічним підходом є захоплення довкілля у вигляді зображення 360º та використання його як заповнюючого світла для заповнення тіней кольором навколишнього середовища. Наприклад, ми можемо використовувати SkyLight в Unreal Engine для захоплення сцени та використання його для заповнення темних областей, імітуючи опосередковане освітлення у реальному часі.
Отже, як ми можемо сформувати образ, використовуючи те, що ми обговорили досі?
Починаючи з повної темряви, ми додаємо джерела світла в наше оточення і розраховуємо пряме освітлення: світло виходить із джерел світла, відбивається від оточення і потрапляє в камеру. Як ми бачили, є дифузне та дзеркальне відображення:
Це добре, але в реальному житті світло відображається більше одного разу - нам потрібно включити ці додаткові відображення (непряме світло) у нашу сцену:
І крім відображень, світло також може проходити через об'єкти (заломлення):
Коли ми з'єднуємо всі разом, ми отримуємо наш рендер:
Отже, те, що нам потрібно для представлення світла - це сума прямого освітлення (дифузного та дзеркального), пропускання та непрямого освітлення. Ми також можемо додати деякі додаткові ефекти, такі як каустика, забарвлення, розмиття руху і т.д., але це основні частини, які ми повинні мати на увазі.
Залежно від медіа, ми підходимо до цього по-різному:
- У CGI без реального часу ми кидаємо промені від джерел світла в сцену (трасування променів), відстежуємо, як вони відображаються, і складаємо їх разом для створення зображення.
- У CGI реального часу ми створюємо часові зображення сцени з необхідною нам інформацією (колір, шорсткість, глибина тощо) і використовуємо оптимізовані математичні формули, які розраховують колір кожного пікселя, використовуючи параметри сцени та ці часові зображення.
- В ілюстрації ми зазвичай починаємо з дифузного кольору, тому що він зазвичай є найважливішим компонентом, додаємо тіні (так ми отримуємо прямі дифузні відображення та основу для непрямого освітлення), поверх всього додаємо дзеркальні відображення і, нарешті, налаштовуємо все, поки не отримаємо бажаний результат.
Світло має кудись потрапити
Коли світло потрапляє на об'єкт, падаюче світло або відбивається, або передається (проходить через об'єкт), або поглинається; при цьому він зберігається: падаюче світло дорівнює сумі відбитого, переданого та поглиненого світла. У реальному житті існують інші процеси, які можуть впливати на світ, але для рендерингу вони незначні.
Оскільки поглинання невидимо, ми можемо зменшити кількість світла, відбитого від об'єкта, і вважати, що решта поглинена. Однак ми не можемо збільшити його, тому що в цьому випадку ми генеруватимемо світло з нічого. Це актуально, оскільки старі моделі освітлення в CGI не дотримувалися цього закону, і ми могли мати об'єкти, що відображають більше світла, ніж повинні.
Відображення деталей
Коли світло взаємодіє з непрозорим об'єктом, частина його поглинається об'єктом (який в результаті нагрівається), а решта відбивається. Коли відбите світло потрапляє в камеру або очі, ми бачимо об'єкт.
Відсоток світла, що відображається від матеріалу, називається альбедо, і він сильно варіюється між різними матеріалами.
Якби у нас був матеріал з альбедо 100, він би відбивав весь світ. Він був би не тільки ідеальним дзеркалом, але й дуже холодним, оскільки сонячне світло просто не нагрівало б його безпосередньо.
Зазвичай найвище альбедо спостерігається на новому чистому снігу - близько 80. Основний наслідок з цього полягає в тому, що ми повинні уникати використання чистого білого кольору в якості кольору, оскільки поверхня зі 100% чистотою білого кольору повинна була б активно випромінювати світло, а не просто відбивати його. Звичайно, є й інші фактори, які необхідно враховувати (баланс білого, експозиція, адаптація очей), але як загальне емпіричне правило слід уникати використання чисто білого і чисто чорного кольорів.
Існує два основних типи відбиття світла: дзеркальне та дифузне відбиття. Сума цих відображень дає нам альбедо.
Неметалічні матеріали (діелектрики) відображають від 2 до 5% світла (в середньому 4%) дзеркально і ширший спектр світла: 0,5-75% дифузно (в середньому 14%). Сума відбитого світла (дзеркальний + розсіяний) становить величину альбедо (загалом 18%). Решта поглинається матеріалом у вигляді тепла.
Метали дивні, вони відображають 50-99% світла спекулярно і не мають дифузного відбиття.
Дифузні відображення в деталях
Як ми бачили, при дифузному відображенні промінь світла може злегка проникати в поверхню об'єкта, взаємодіючи з нею, і випускатися назад у випадковому напрямку.
Дифузні відображення передають колір об'єкта.
При дифузному відображенні світло проникає у зовнішні шари об'єкта, об'єкт поглинає частину світла (внаслідок чого нагрівається) і випускає світло у всіх напрямках, яке тепер пофарбоване, оскільки частково поглинене об'єктом.
Дифузне відображення відкидає світло у всіх напрямках, скрізь.
Це означає, що певна точка об'єкта матиме однакову інтенсивність світла незалежно від того, звідки ми на неї дивимося.
Точка об'єкта, яка знаходиться ближче до світла, матиме найбільшу яскравість, а менш освітлені точки будуть темними. Це дуже важлива відмінність від дзеркального відображення, де кут огляду має значення.
Шорсткість поверхні не має значення для дифузних відображень.
Оскільки при дифузному відображенні світло розсіюється всюди, шорсткість поверхні не має значення для дифузного відображення: ми можемо відполірувати червону поверхню і зробити її більш гладкою, але вона завжди буде червоною.
Дзеркальні відображення в деталях
На мій погляд, дзеркальні відображення легше зрозуміти, тому що саме вони приходять нам на думку, коли ми думаємо про відображення.
Світло відображається від об'єкта під кутом і прямує до глядача, створюючи дзеркальне відображення, як м'яч, кинутий у стіну.
Дзеркальні відображення зберігають колір світла.
Оскільки світло взаємодіє з об'єктом дуже короткий час, дзеркальні відображення зберігають колір джерела світла, ігноруючи колір об'єкта. Це білий відблиск, який ми бачимо на гладкій пластиковій поверхні: не має значення, якого кольору пластик, це відображення завжди має колір світла (зазвичай білий), тому що це колір джерела світла, і дзеркальний відблиск не змінює його.
Дзеркальні відблиски (Specular highlights)
У дзеркальному відображенні відображається все навколишнє середовище, але джерела світла є набагато яскравішими за навколишнє середовище, тому часто ми помічаємо тільки ці джерела світла у вигляді дзеркального відображення. Ці відбиті джерела світла зазвичай називаються дзеркальними відблисками (specular highlights).
Дзеркальні відображення залежать від вигляду.
Цей вид відображення залежить від кута зору глядача: ми бачимо тільки те світло, яке перпендикулярне поверхні, на яку ми дивимося. Якщо ми змінимо кут огляду, відблиск буде "переміщатися (щодо об'єкта)". Інтенсивність відображення буде тим більшою, чим паралельніший кут огляду до поверхні.
Дзеркальні відображення виглядають по-різному в залежності від шорсткості поверхні.
Якщо поверхня ідеально гладка, відбите світло буде дуже схоже на вихідне (як дзеркало), а якщо шорстка, відбите зображення буде розмитим. Замість того, щоб моделювати мікроскопічні деталі для представлення цих поверхонь, комп'ютерні шейдери зазвичай мають спосіб моделювання цих деталей, зазвичай це значення шорсткості чи гладкості, яке ми можемо регулювати за допомогою значення чи текстури.
Зверніть увагу, що всі кулі завжди червоні: колір об'єкта залежить від дифузного відображення, яке не залежить від шорсткості поверхні (скільки б ми не полірували червону кулю, вона все одно залишається червоною). Шорсткість поверхні впливає лише на дзеркальне відображення.
Спекулярний відблиск на гладкій поверхні виглядає яскравіше, ніж спекулярний відблиск на шорсткої поверхні, тому що шорстка поверхня розсіює світло всюди, а гладка поверхня направляє його до глядача. Кількість відбитого світла однакова, просто шорстка поверхня розсіює його, роблячи відблиск більшим і тьмянішим.
Ефект Френеля
Тепер уявімо, що у нас є камінь та басейн, наповнений водою. Давайте кинемо камінь прямо у воду, просто дозволивши йому впасти з великої висоти. Чи відскочить він?
Звичайно, ні. Він просто пройде крізь воду та впаде на морське дно. Але що, якщо ми кинемо його під кутом? Під кутом 45º камінь, швидше за все, все одно впаде донизу, але під дуже малим кутом камінь відскочить (skipping stones). При деяких кутах, коли напрямок руху каменя майже горизонтальний, камінь швидше відскочить, ніж пройде крізь поверхню.
Те саме відбувається і зі світлом, коли йдеться про дзеркальні відскоки.
Якщо ми кинемо промінь світла перпендикулярно поверхні, він швидше за все буде поглинений поверхнею, ніж відскочить. Однак якщо ми кинемо промінь майже паралельно поверхні, він з більшою ймовірністю відобразиться і створить дзеркальний відблиск.
Цей ефект називається ефектом Френеля, і він означає, що при погляді під екстремальним кутом поверхні стають більш дзеркальними. У зв'язку з цим дзеркальність розраховується при перпендикулярному куті огляду, що називається f0, а не за будь-якого кута.
Одним із найяскравіших прикладів цього є вода: коли ми дивимося на поверхню води прямо вниз, вона прозора, і ми можемо бачити те, що знаходиться всередині води; а коли ми дивимося на неї горизонтально (дивлячись на море біля горизонту), то спекулярні відскоки набагато вірогідніші, і вода відбиває світло як дзеркало.
На цьому зображенні ми бачимо воду крізь воду, коли дивимося на прилеглі камені, але далекі зони виглядають більш відбивними, тому що вода має ефект Френеля: вона набагато більш дзеркальна, якщо дивитися на неї під паралельним кутом, і менш дзеркальна, якщо дивитися під перпендикулярним кутом.
Метали
Металеві об'єкти дивні. Метали дуже щільні. Настільки щільні, що в реальному світі практично неможливо зробити метал прозорим (золоте листя може бути шириною в сотню атомів і все одно залишатися непрозорим).
Коли світло потрапляє на поверхню металу, більша його частина відскакує: в той час як більшість матеріалів мають багато дифузних відбитків і кілька дзеркальних відбитків, метали мають багато дзеркальних відбитків і жодного дифузного відбиття. Світло просто не може проникнути всередину металевої поверхні, щоб взаємодіяти з атомами металу, частково поглинутись і вийти назовні у вигляді дифузного відбиття. Натомість він просто відскакує. У металевому об'єкті близько 50-99,8% світла відбивається дзеркально, а решта поглинається.
Якого кольору дзеркало? Важко сказати, тому що дзеркала зроблені з металів, і вони відображають більшу частину світла дзеркально.
Деякі метали також можуть додавати трохи кольору до відбитого світла, створюючи враження, що вони мають колір (золото, мідь і т.д.), але насправді вони просто змінюють колір відбитого світла: дзеркальні відблиски зберігають колір світла в неметалічних поверхнях, але можуть бути змінені на металевих поверхнях.
У разі металевих поверхонь, оскільки більша частина їх поверхні відображає навколишнє середовище, їх зовнішній вигляд може сильно змінюватися в залежності від навколишнього середовища та кута огляду. В результаті їх важко намалювати, а якби ми хотіли правильно відобразити їх у 3D, нам довелося б "рендерувати заново" всю сцену.
Звичайне рішення - зробити ці металеві деталі дуже грубими, щоб зробити відображення досить розмитим і уникнути помітних деталей, які можуть не вписатися в будь-яке оточення.
Пропуск (Transmission)
Коли промінь світла досягає об'єкта, він може пройти крізь нього. Цей процес має багато назв. Я вирішив використати термін "передача", який використовується в трасуванні променів у CGI.
Слід пам'ятати, що світло має бути збережене: якщо прозорий об'єкт має відображення або він кольоровий, світло має бути тьмянішим, коли воно проходить через нього. Наприклад, коли поверхня намокає, вона може мати сильніше спекулярне відображення через воду, що знаходиться на ній. Світло, що відображається дзеркально, не досягає об'єкта і не сприяє дифузному відображенню, внаслідок чого об'єкт виглядає темнішим.
Пропуск може приймати різні форми.
Прозорість (Translucency)
Коли світло проходить через різні середовища з різними властивостями, здається, що воно згинається. Саме це відбувається у реальному житті з водою, склом тощо.
Світло може рухатися з різною швидкістю в залежності від середовища, через яке воно проходить. Можливо, ви пам'ятаєте, що швидкість світла дорівнює 299792458 м/с, але вона вимірюється у вакуумі. При проходженні через середу він може рухатися повільніше (це не 100% правда, але пропустимо теорію відносності) залежно від коефіцієнта заломлення цього середовища.
У деяких середовищах світло проходить швидше або повільніше, ніж у повітрі, і це може призвести до того, що падаючі промені світла будуть згинатися при проходженні через середовище в явищі, що називається заломленням.
Сильно стиснене повітря щільніше звичайного, і світло проходить через нього повільніше. Саме тому вибухи можуть створювати візуальні ударні хвилі: повітря тут набагато щільніше, і ми отримуємо ефект заломлення між звичайним і стисненим повітрям.
Повністю прозорий об'єкт невидимий, проте його все одно можна сприймати, тому що він згинає світло, змінюючи вигляд об'єктів за ним.
Заперечення може викликати й інші ефекти, такі як веселка, призми, райдужні переливи тощо.
Прозорість (Transparency)
Промінь світла проходить крізь об'єкт, і його напрямок залишається незмінним. Саме це відбувається у реальному житті з більшістю газів. Візуально повністю прозорий об'єкт невидимий. Однак, частково прозорий об'єкт можна побачити.
Частково прозорий об'єкт забарвлюватиме об'єкти позаду нього своїм дифузним кольором. Цей тип пропускання в основному використовується як дешевий спосіб отримання прозорості в CGI: у реальному житті майже всі об'єкти мають показник заломлення, відмінний від 1 (повітря), і тією чи іншою мірою викривлятимуть світло.
Підповерхневе розсіювання (Subsurface Scattering)
Підповерхневе розсіювання - це суміш дифузного відображення та прозорості: світло може проникнути крізь об'єкт, почати відображатися всередині об'єкта з дифузними відображеннями і вийти з іншого боку об'єкта, особливо на тонких поверхнях, де ймовірність проходження світла крізь об'єкт вище.
Підповерхневе розсіювання забарвлене, його колір є сумішшю між дифузним кольором об'єкта (через дифузно розсіяних променів світла) і кольором світла (через промені світла, що проходять через об'єкт). Це може змусити поверхні виглядати випромінюючими, якщо дивитися на них із затіненої сторони, і іноді це імітується за допомогою випромінюючих матеріалів.
Комбінування джерел світла (Combining Light Sources)
Що якщо ми маємо різні джерела світла? Як вони складаються?
Якщо ми зробимо фотографію з 4 різними увімкненими джерелами світла та 4 фотографії (або рендери) з кожним окремим увімкненим джерелом світла, а інші вимкнені, чи можемо ми просто скласти окремі фотографії, щоб отримати той самий результат?
Так.
Якщо ми порівняємо згенероване зображення із зображенням, на якому включені всі джерела світла, ми побачимо, що вони практично однакові. Це означає, що ми можемо працювати над кожним джерелом світла окремо і додавати їх; джерела світла можна додавати лінійно.
Ну, по типу того. Хоча світло від різних джерел світла можна додавати, майте на увазі, що наші очі налаштовуються на кількість світла, яке ми бачимо, і після певного порога наші очі переналаштовуються подібно до того, як ми перестаємо сприймати сильний запах через деяке час, щоб зосередитись на інших запахах (також може втрутитися гамма-корекція та інші ефекти).
Це ще одна причина, через яку слід уникати 100% білого кольору: наші очі адаптуються, щоб не втратити інформацію, яку ми не можемо побачити через переповнення світлових рецепторів.
Тіні (Shadows)
У CGI ми зазвичай починаємо з чорного кольору для всієї сцени і починаємо додавати світло. Однак при малюванні ми зазвичай починаємо з розсіяного кольору і додаємо як світло, так і тіні.
Тінь - це відсутність світла. Залежно від зовнішнього вигляду тіні можна поділити на три групи:
- Тіні форми - тіні, що виникають на поверхні предметів просто тому, що вони менше схильні до впливу світла. Тіні форми виникають через відсутність розсіяного відображення: ті частини об'єкта, які освітлені світлом, відбивають його, а ті, які менш освітлені (навернені у бік від світла) – ні, і вони виглядають темнішими. Ці тіні зазвичай плавні та тонкі і дають нам багато інформації про обсяг об'єкта.
- Литі тіні - тіні, що створюються, коли об'єкт або частина об'єкта виявляється між джерелом світла та іншим об'єктом. На відміну від тіней форми, які впливають тільки на той самий об'єкт, тіні, що відкидаються, можуть впливати на сусідні об'єкти, закриваючи їх від джерела світла. Ці тіні зазвичай більш жорсткі та менш тонкі, ніж тіні форми, і вони дають нам інформацію про розташування об'єктів у нашій сцені.
- Ambient Occlusion: коли об'єкт наближається до іншого, світло з меншою ймовірністю потрапляє в простір між об'єктами, і цей простір виглядає темнішим. Ми можемо імітувати цей ефект, затемняючи ці зони, зазвичай у середовищах реального часу, як дешевий спосіб імітації світла, що відбивається від сцени, що є дуже дорогим ефектом.
Насправді Ambient Occlusion - це суміш тіней, що відбиваються і формених, але ми поділяємо їх, щоб мати більше творчого контролю над нашими сценами.
Так само, як кілька джерел світла можна об'єднати разом, тіні від кількох джерел світла можуть накладатися один на одного і ставати темнішими.
Однак одне джерело світла не може створювати тіні, що перекриваються (помилка, яку ми іноді допускаємо при малюванні світла). Кожне джерело світла генерує власний набір тіней. Тінь від форми і тіні, що відбиваються, утворені одним і тим же світлом, не накладаються один на одного, а поєднуються.
Тіні не завжди темні.
Світло відображається всюди (завдяки непрямому освітленню). Частина цього світла, ймовірно, потрапить на затінені ділянки і відіб'ється від них, дозволяючи нам побачити колір ділянок у тіні.
Яскравість затінених ділянок залежить від кількості непрямого світла в нашій сцені: у пустелі є тільки одне джерело світла і немає будівель, дерев або інших об'єктів, які можуть відбивати світло та наповнювати тіні кольором: у нас дуже мало непрямого освітлення (у нас завжди буде небагато), і тіні виглядають темними та мають дуже мало кольору.
Тінь цієї дівчини дуже темна, тому що є тільки одне джерело світла (сонце) і немає поверхонь, де сонячне світло може відобразитися, щоб заповнити її.
З іншого боку, у похмурий (хмарний) день хмари відбивають світло всюди, тіні заповнюються відбитим світлом, і ми навіть можемо дійти до того, що тіні зникнуть.
У цієї жінки майже немає тіні: будівлі, хмари та дощ відбивають світло всюди.
Коли ми маємо окремі джерела світла, що відкидають тіні, ці тіні можуть накладатися один на одного. У реальному житті в нас в основному одне джерело світла (сонце), тому кілька тіней, що перекриваються, від декількох джерел світла виглядають неприродно, і ми зазвичай намагаємося уникати їх або пом'якшувати ці тіні.
Щоб уникнути цього ефекту, фахівці з освітлення використовують більші джерела світла, що формують більш м'які тіні (наприклад, вікна або великі світильники), або застосовують відбивачі, що розсіюють світло у всіх напрямках.
Тіні можуть мати гладкі або жорсткі краї.
Литі тіні можуть мати різний ступінь гладкості кордонів. Раніше я думав, що це залежить від відстані між тінню та об'єктом, що відкидає тінь, але я трохи помилявся.
У разі спрямованого світла, наприклад, сонця, всі промені світла паралельні (сонце знаходиться так далеко від Землі, що коли промені світла досягають нас, вони майже паралельні). Це створює жорсткі тіні:
Однак, коли джерело світла знаходиться ближче до об'єкта, тіні виглядають більш плавними.
Коли ми наближаємося до об'єкта, промені світла підходять до нього під різними кутами, згладжуючи тіні. Чим далі від джерела світла, тим згладженішими будуть тіні, тому що промені світла по краях пройшли більшу відстань і, оскільки вони йдуть під різними кутами, вони сильніше розходяться.
Для порівняння, промені світла від сонця майже повністю паралельні, але мають невеликий розкид в 1-1,5º, тому ми повинні бачити м'які тіні від прямого сонячного світла, особливо на великих відстанях від об'єкта, що відкидає тінь. Збільшення розміру джерела світла також пом'якшує тіні.
Можна подумати, що якщо промені сонячного світла в основному паралельні, то вікно буде пропускати світло в кімнату також у вигляді паралельних променів. Однак необхідно враховувати непряме світло, що проходить через вікно з усіх боків, а також дифракцію.
Висновок
Отже, у цьому посібнику ми розглянули основні світлові ефекти, про які слід пам'ятати при рендерингу сцени: випромінювання, прямі та непрямі відображення світла (як дзеркальні, так і розсіяні), передача та поглинання.
Ми також розглянули деякі супутні ефекти, такі як металеві об'єкти, заломлення, об'єднання кількох джерел світла та тіні.
Тепер, коли ми уявляємо різні частини, необхідні для рендерингу сцени, я хотів би докладніше розглянути, як ми підходимо до цих різних частин з точки зору нереального часу (використовуючи трасування променів), реального часу (використовуючи растеризацію) та ілюстративного підходу ( розглянувши основні техніки затінення, що використовуються в ілюстрації).
Переклад з англомовного сайту, Tutorial: How Light Works & Types of Shadows