Loading AI tools
поширення світла через напівпрозорі тіла З Вікіпедії, вільної енциклопедії
Підповерхневе розсіювання (англ. Subsurface scattering, SSS) - програмна техніка (методика) в тривимірній комп'ютерній графіці, яка описує поширення світла через напівпрозорі тіла.
Суть підповерхневого розсіювання полягає в симуляції поширення світла в напівпрозорих суцільних тілах (об'єктах, матеріалах). Підповерхневе розсіювання описує механізм поширення світла, за якого світло, проникаючи всередину напівпрозорого тіла через його поверхню, розсіюється всередині самого тіла, багаторазово відбиваючись від частинок тіла у випадковому напрямку і на неоднакові кути. Як наслідок, світло виходить з об'єкта у вихідний точці, відмінній від точки входження в об'єкт. Підповерхневе розсіювання грає важливу роль у тривимірній комп'ютерній графіці як реального часу, так і в офлайнових обчисленнях. Підповерхневе розсіювання необхідне для коректного рендерингу таких матеріалів, як мармур, шкіра, молоко, нефрит, віск (парафін) і багато інших.
Більшість матеріалів, що використовуються в сучасній комп'ютерній графіці, враховують тільки взаємодію світла з поверхнями об'єктів. Насправді безліч матеріалів є дещо напівпрозорим. Світло проходить через поверхню матеріалу, всередині якого частково поглинається, частково відбивається і розсіюється, після чого якась його частина залишає матеріал, але вже під іншим кутом, з іншого інтенсивністю і в іншому місці. Шкіра є гарним прикладом: тільки близько 6% світла, що потрапляє на поверхню шкіри, відбивається безпосередньо; 94% зазнають описаних вище перетворень.[1] Природженою властивістю напівпрозорих матеріалів є поглинання. Що більший шлях проходить світло крізь матеріал, то більшу частину світла він поглинає. Для симуляції цього ефекту слід отримати міру відстані, яку світло пройшло через матеріал.
Існує кілька методів реалізації підповерхневого розсіювання. Перший метод заснований на використанні карти глибини (англ. depth map) Другий метод використовує текстурний простір. Третій метод - це всілякі фейкові (несправжні) підходи, які імітують використання алгоритму підповерхневого розсіювання, але досягають цього ефекту іншими шляхами.
У методі карт глибини шукається відстань, пройдена променем світла всередині об'єкта, і на її основі обчислюється розсіювання. Суть методу полягає у зчитуванні значення з текстури глибини (з позиції джерела світла). Цим метод карт глибини схожий на метод тіньових карт.[2] Сцена рендериться з точки зору джерела світла в карту глибини; таким чином, відстань до найближчої поверхні збережено. Потім карта глибини проєктується на поверхню з використанням стандартного проєктивного текстурного мапінгу[en], і після цього сцена рендериться знову. У цьому проході, коли відтінюється ця точка, відстань від світла в точці, де промінь світла перетнув поверхню, може бути отримана простим текстурним пошуком. Віднімаючи це від значення точки, де промінь залишив об'єкт, можна отримати відстань, пройдену променем усередині об'єкта.
Значення відстані, отримуване цим методом, можна використати декількома способами. Одним з них є використання значення відстані в індексі, який безпосередньо використовує художник при створенні одновимірної текстури, яка буде експоненційно спадати з відстанню. Цей підхід у комбінації з іншими традиційними моделями освітлення дозволяє створювати різні матеріали, такі як жад і віск.
Якщо моделі, до яких застосовується підповерхневе розсіювання, не опуклі, то може виникнути проблема. Однак ця проблема вирішується за допомогою методики «відшаровування глибини[en]» (англ. depth peeling)[3]. Аналогічно «відшаровування глибини» можна використати для врахування матеріалів різної щільності під поверхнею, таких як кістки або м'язи, щоб потім дати точніші моделі розсіювання.
Одним з найочевидніших ефектів підповерхневого розсіювання є загальна розмитість розсіяного (дифузного) світла. Замість того, щоб довільно змінювати функцію розсіювання, можна точніше змоделювати розсіювання, симулюючи її в текстурному просторі. Цю методику вперше використано для рендерингу облич у фільмі Матриця: Перезавантаження[4], а потім вона стала використовуватися і в інтерактивній тривимірній графіці.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.