Освітлення (комп'ютерна графіка): відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Немає опису редагування
Немає опису редагування
Рядок 2:
У [[Комп'ютерна 3D-графіка|3D комп'ютерній графіці]], '''освітлення''' є застосуванням [[Метод скінченних елементів|методу скінченних елементів]] для розв'язання [[рівняння рендерингу]] для сцен з поверхнями, які [[Дифузне відбиття світла|відбивають світло дифузно]]. На відміну від [[Рендеринг|візуалізації]] методів, які використовують [[Метод Монте-Карло|алгоритми Монте-Карло]] (таких як {{Нп|Трасування шляху|трасування шляху||Path tracing}}), які обробляють всі види легких шляхів, типове освітлення складають тільки шляхи (представлені кодом "LD*E"), які залишають джерело світла і відображаються дифузно деяке число раз (можливо нуль) до потрапляння в очі. Освітлення - це [[глобальне освітлення]] в тому сенсі, що освітлення потрапляє на поверхню не тільки безпосередньо від джерел світла, але і від інших поверхонь, що відбивають світло. Освітлення - це незалежна точка зору, яка збільшує необхідні розрахунки, але робить їх корисними для всіх точок зору.
 
Методи освітлення були вперше розроблені приблизно в 1950 році приблизно в інженерній галузі [[Теплообмін|теплообміну]]. Пізніше вони були удосконалені спеціально для задачі візуалізації комп'ютерної графіки в 1984 році дослідниками з [[Корнелльський університет|Корнелльського університету]]<ref>"Cindy Goral, Kenneth E. Torrance, Donald P. Greenberg and B. Battaile,[http://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S07/lectures/goral.pdf Modeling the interaction of light between diffuse surfaces]",, ''[[Computer Graphics (Publication)|Computer Graphics]]'', Vol. 18, No. 3.</ref> і [[Хіросімський університет|Хіросімського університету]].<ref>"T. Nishita, E. Nakamae,[http://nishitalab.org/user/nis/cdrom/japanese/mscan.pdf Half-Tone Representation of 3-D Objects with Smooth Edges by Using a Multi-Scanning Method]",,''Journal of IPSJ, Vol.25, No.5, pp.703-711,1984 (in Japanese)''</ref>
 
Відомі комерційні двигуни Enlighten від {{Нп|Geomerics|||Geomerics}} (використовується для ігор, включаючи [[Battlefield 3]] і [[Need for Speed: The Run|Need For Speed: The Run]]); [[Autodesk 3ds MAX|3ds Max]]; {{Нп|Form-Z|||Form-Z}}; {{Нп|LightWave 3D|||LightWave 3D}} і {{Нп|Electric Image Animation System|||Electric Image Animation System}}.
Рядок 10:
Включення розрахунків освітлення в процесі рендеринга часто надає додатковий елемент реалізму до готової сцени, тому що так вона імітує реальні явища. Розглянемо просту сцену кімнати.
 
Зображення зліва було винесено з типової '''візуалізації прямого освітлення'''. В цій сцені є три типи освітлення, які були спеціально обрані і поміщені художником в спробі створити реалістичне освітлення: '''точкове освітлення''' з тінями (поміщених за межами вікна, щоб створити світ, який сяє на підлозі), '''навколишнє освітлення''' (без якого будь-яка частина кімнати не освітлювалась безпосередньо від джерела світла, було б зовсім темно), і '''всенапрямлене освітлення''' без тіней (щоб зменшити площинністьплощину нерівномірністьнерівномірності освітлення).
 
Зображення справа було винесено використовуючи '''алгоритм освітлення'''. Є тільки '''одне джерело світла''': зображення неба, що розратшовано за межами вікна. Різниця відмічається. Номер сяє світлом. М'які тіні видно на підлозі, і тонкі ефекти освітлення помітні навколо кімнати. Крім того, червоний колір килима розплився на сірих стінах, надаючи їм злегка теплий зовнішній вигляд. Жоден з цих ефектів не був спеціально обран або розроблен художником.
 
== Обзор алгоритму освітлення ==
Кожна поверхня при візуалізації сцени ділиться на один або більше невеликих поверхонь (патчі). {{Нп|Коефіцієнт видимості |||View factor}}(також відомий як форм-фактор) обчислюється для кожної пари патчів; це коефіцієнт, що описує наскільки добре патчі можуть бачити один одного. Патчі, які знаходяться далеко один від одного, або орієнтовані під кутом по відношенню один до одного, будуть мати менші коефіцієнти. Якщо інші патчі в дорозі, коефіцієнт видимості буде зменшений або дорівнювати нулю, в залежності від того, є оклюзіїоклюзія частковою або повною.
 
Коефіцієнти видимості використовуються як коефіцієнти лінійної системісистеми рендеринга рівнянь. Рішення цієї системи дає освітлення, або яскравість кожного патча, враховуючи м'які тіні.
 
Прогресивне освітлення вирішує систему ітеративно з проміжними значеннями освітлення для патча, відповідними до рівнів відмов. Тобто, після кожної ітерації, ми знаємо, як сцена виглядає після того, як одне освітлення відмовило, після двох проходів, два відмовило, і так далі. Це корисно для отримання інтерактивного перегляду сцени. Крім того, користувач може зупинити ітерації після того, як зображення виглядає досить добре, а не чекати обчислення чисельного збігу.
 
[[Файл:Radiosity_Progress.png|міні|680x680пкс|Оскільки алгоритм повторюється, то світло можна розглядати як потік на сцену, у той час, як декілька відскоків обчислюються. Окремі плямипатчі видно як квадрати на підлозі і стінах.]]
 
Інший розповсюджений метод для вирішення рівняння освітлення є "зйомка освітлення", який ітеративно вирішує рівняння освітлення шляхом "зйомки" світла з патч, який має більшу помилку на кожному кроці. Після першого проходу, будуть освітлені тільки ті патчі, які знаходяться в прямій видимості від світловипромінюючих патч. Після другого проходу, більше патчів будуть освітлюватися. Сцена продовжує зростати яскравіше і в кінцевому рахунку досягає стійкого стану.
Рядок 30:
Після цього розподілу, кількість світла передачі енергії може бути обчислена з використанням відомої дзеркальною здатність, що відображає патч, в поєднанні з фактором урахуванням двох патчів. Ця [[Безрозмірнісна фізична величина|безрозмірна величина]] обчислюється з геометричної орієнтації двох патчів, і може розглядатися як частина загально можливої випромінювальної області першого патча, яка покрита другим.
 
Вірніше, освітлення ''B'' є енергією на одиницю площі, залишаючи поверхню патчіпатча, за дискретний інтервал часу, і являє собою поєднання випромінюваної і відбитої енергії:
 
: <math>B(x)\, dA = E(x) \, dA +\rho(x) \, dA \int_{S}B(x') \frac{1}{\pi r^2} \cos\theta_x\cos\theta_{x'} \cdot \mathrm{Vis}(x,x') \,\mathrm dA'</math>