630 likes | 809 Views
Осветление в игрите. Какво ще представим?. Математически модел за осветление на Kajia Phong, Gourad shading Ambient Occlusion Precomputed Radiance Transfer High Dynamic Range. Rendering. Най-общо да определи цвета на даден пиксел на екрана (RGB), който е асоцииран с даден обект
E N D
Какво ще представим? • Математически модел за осветление на Kajia • Phong, Gourad shading • Ambient Occlusion • Precomputed Radiance Transfer • High Dynamic Range
Rendering • Най-общо да определи цвета на даден пиксел на екрана (RGB), който е асоцииран с даден обект • Цвета на дадена точка от обект зависи от: • Геометрията на обекта (нормалата) • Позиция, цвят и тип на светлините • Позиция на наблюдателя • Повърxността на обекта в точката • Среда на разпространение (вода, пушек, мъгла)
Rendering • Всички повърности на сцената излъчват или отразяват светлина • Цвета на всяка точка се определя от светлината, която влиза в нея от различните посоки и материалът, от който е направена • Процесът на изчисление на осветеността на точка от повърността може да е рекурсивен (color bleeding)
Rendering Equation • Kayia 1986 - Интензитет на светлината, от x към x’ - Visibility function. Показва дали x вижда x’ - Emittance function. Ако x свети в посока x’ - Материал на повърността (BRDF) Интегралът е по всички повърхности в сцената
ако не се виждат ако се виждат Получава различни представяния и опростявания в литературата, например факториация.
Алгоритми • За да се реши това уравнение за крайно време, се правят различни предположения и опростявания • Алгоритмите се делят на два вида • Локални – осветлението точката, зависи само светлината, която влиза от светлнинните източници и материала, от който е направена • Глобални – взима предвид и светлината, която идва от другите обекти от сцената (получават се сенки например) • Зависят от гледната точка – Само за едни настройки на камерата • Не зависят от гледната точка
Алгоритми Локално осветление Глобално осветление
Алгоритми Видове повърхности: • Дифузни (diffuse) – Как изглежда не зависи от наблюдателя • Спекуларни (specular) – С промяната на наблюдателя се променя и вида
Алгоритми Спекуларни повърхности: • Светлината се разпространява в малка област около, близка до ъгъла на отражение на светлината • Огледалата са перфектни спекуларни повърхности, светлината се отразява само в посоката на отражение • Изглеждат “блестящи”
Алгоритми Дифузни повърхности: • Светлината се разпространява във всички посоки • Идеално дифузните повърхности я разпространяват равномерно • Изглеждат матови.
Алгоритми Полупрозрачни повърхности: • Част от светлината прониква под слоя на отражение • Трудно се симулира в реално време
Алгоритми Три вида повърхности:
Линеен оператор Уравнението тогава става: Как се решава това?
Редици на Нюман Итеративен подход:
Редици на Нюман Примери: Изчертават се само повърхностите: Локално осветление: Локално осветление и сенки:
Няколко термина Solid angle – концепцията на двумерния ъгъл, разширена в тримерното пространство. Както окръжността има 2Pi радиана, Така сферата има 4Pi стерадиана
Няколко термина Проекция на безкрайно малка площ върху сфера.
Функции върху сферата Уравнението на Kayia в друг вид: Или g e visibility function
Локално осветление Локално осветление Да си представим, че имаме две светлини от w1 и w2
Локално осветление • Gourad/Phong/Blinn, разделят осветлението на три компонента • Ambient – грубо приближава индиректното осветление • Diffuse и Specular – приближават BRDF • Емпирични модели, не са физически коректни
Gourad Интерполиране в GPU: Всеки атрибут, който излезе от вертексния Шейдър се интерполира за тригъгълник Картинка интерполация на вертекси
Gourad/Phong • Цветът се изчислява за всеки вертекс и • Изчисления цвят се интерполира за триъгълника • Phong – Интерполира нормалата на вертекса и се изчислява осветлението за всеки пиксел
Компоненти Амбиент – приближава индиректното осветление.
Компоненти Дифузен стойностиза k 0,0.25,0.5,0.75,1
Компоненти Спекуларен k=0,0.25,0.5,0.75,1 =5,25,75,125,255
Компоненти • Blinn • Основно предимство – H се изчислява само веднъж на кадър
Ambient Occlusion • Ambient е груба апроксимация на индиректното осветление в сцената. Аналогично на това да апроксимирате една функция с константа. • AO заменя Ambient за всяка точка, може да се изчислява за вертекс или за пиксел
Ambient Occlusion • Изчислява се offline с рейтресър. От полусферата над точката се изстрелват лъчи и се брои • Колко от тях се пресичат с геометрията. • Накрая се формира
Ambient Occlusion • 1.occlusion • 2. локално осв. • 3. комбинирано
Ambient Occlusion • Изисквания: • Дифузни повърхности • Статична геометрия • Константно осветление Ambient Occlusion map
Сферични хармоници • За пръв път показан от Peter Sloan (2002) • Осветлението е далечно (от слънцето) • Работи бързо за дифузни повърхности • Основната идея е да се приближи пак индиректното осветление • Комбинира се други методи (shadow maps) • Осветлението може да се сменя динамично (ден/нощ)
Сферични хармоници • За дифузни повърхности предполагаме, че не зависят от наблюдателя • Останалите две функции се разлагат по базис • За всеки вертекс/пиксел
Ортонормални полиноми • Полиноми дефинирани в област, такива че: • Такива полиноми образуват базис в пространството от непрекъснати функции в тази област, така че всяка функция е изпълнено
Дефиниция • Некаединичната сфера е параметризирана • Сферични хармоници • са асоциираните полиноми на Льожандр
Полиноми на Льожандр • Некаединичната сфера е параметризирана
Дефиниция • В графиката се задават като реална и имагинера част • Ако m=0 полиномите се казват Зонални хармоници • l- се нарича “band” • 2l+1 функции в “band”
Дефиниция • Сферичните хармоници образуват базис върху сферата
Пример • Повърхнина на функция • Като преминем към сферични координати
Пример • Това може да се изчисли приближено • Квадратурни формули • Монте Карло алгоритъм (за 10000 точки върху сферата)
Пример [0.39925, -0.21075, 0.28687, 0.282277, -0.31530, -0.00040, 0.13159, 0.00098, -0.09359, -0.00072, 0.12290, 0.30458, -0.16427, -0.00062, -0.09126] • И когато реконструираме с тези коефициенти, получаваме:
Пример • Сферичните хармоници са ротационно инвариантни • Това основно означава, че когато въртим светлинните източници, можем да въртим техните проекции
SH SH Пример ротация ротация