Програмування 3d

demo.design 3D programming FAQ

download

links

author

РІЗНЕ 7.8. Зворотне трасування променів

Зворотне трасування променів (вона ж рейкастинг, raycasting) - простий, хоч і досить повільний, метод отримання високореалістичних зображень. Цей метод часто плутають з прямим трасуванням променів (рейтрейсинг, raytracing), яке, насправді, практично ніколи і ніким не використовується через свою рідкісну неефективність. Втім, ці два терміни вже практично не розрізняють.

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

Для визначення освітленості, що привносить безпосереднє освітлення, з точки перетину випускаються промені до всіх джерел світла і визначається внесок усіх джерел, які не заслонені іншими об'єктами сцени. Для визначення відбитої і заломленої освітленості з точки випускаються відбитий і заломлений промені і визначається освітленість, що привноситься ними.

Безпосереднє освітлення джерела світла вважаємо, наприклад, за рівнянням Фонга (див. п.5.1). Насправді компоненти diffuse і specular у цьому рівнянні для більшої реалістичності з погляду фізики треба розділити на квадрат відстані до джерела світла, але зазвичай цим нехтують.

Ослаблення світла в прозорому середовищі враховується розподілом на коефіцієнт