Існує кілька методів генерації реалістичних зображень, таких як пряма трасування променів (трасування фотонів) і зворотна трасування променів.
Методи трасування променів на сьогоднішній день вважаються найбільш потужними і універсальними методами створення реалістичних зображень. Відомо багато прикладів реалізації алгоритмів трасування для якісного відображення самих складних тривимірних сцен. Можна відзначити, що універсальність методів трасування в значній мірі обумовлена тим, що в їх основі лежать прості і ясні поняття, що відображають наш досвід сприйняття навколишнього світу.
Навколишні нас об'єкти володіють по відношенню до світла такими властивостями:
- відображають і поглинають;
- пропускають крізь себе.
Кожне з цих властивостей можна описати деяким набором характеристик.
Випромінювання можна охарактеризувати інтенсивністю та спектром.
Властивість відображення (поглинання) можна описати характеристиками дифузного розсіювання і дзеркального відображення. Прозорість можна описати ослабленням інтенсивності і заломленням.
З точок поверхні (обсягу) випромінюючих об'єктів виходять промені світла. Можна назвати такі промені первинними - вони висвітлюють все інше. Від джерел випромінювання виходить з різних напрямків незліченна безліч первинних променів. Деякі промені йдуть у вільний простір, а деякі потрапляють на інші об'єкти.
В результаті дії на об'єкти первинних променів виникають вторинні промені. Деякі з них потрапляють на інші об'єкти. Так, багато разів відбиваючись і заломлюючись, окремі світлові промені приходять в точку спостереження. Таким чином, зображення сцени формується деякими безліччю світлових променів.
Колір окремих точок зображення визначається спектром і інтенсивністю первинних променів джерел випромінювання, а також поглинанням світлової енергії в об'єктах, які зустрілися на шляху відповідних променів.
Безпосередня реалізація даної променевої моделі формування зображення представляється скрутною. Можна спробувати побудувати алгоритм побудови зображення зазначеним способом. У такому алгоритмі необхідно передбачити перебір всіх первинних променів і визначити ті з них, які потрапляють в об'єкти і в камеру. Потім виконати перебір всіх вторинних променів, і також врахувати тільки ті, які потрапляють в об'єкти і в камеру. І так далі. Такий алгоритм називається прямий трасуванням променів. Головний недолік цього методу - багато зайвих операцій, пов'язаних з розрахунком променів, які потім не використовуються.
Саме цим методом генерації реалістичних зображень присвячена ця робота.
Метод зворотного трасування променів дозволяє значно скоротити перебір світлових променів. Метод розроблений в 80-х роках, основними вважаються роботи Уиттед і Кея. Відповідно до цього методу відстеження променів проводиться не від джерел світла, а в зворотному напрямку - від точки спостереження. Так враховуються тільки ті промені, які вносять вклад у формування зображення.
Площина проектування розбита на безліч пікселів. Виберемо центральну проекцію з центром сходу на деякій відстані від площини проектування. Проведемо пряму лінію з центру сходження через середину піксела площині проектування. Це буде первинний промінь зворотного трасування. Якщо цей промінь потрапить в один або кілька об'єктів сцени, то вибираємо найближчу точку перетину. Для визначення кольору пікселя зображення потрібно враховувати властивості об'єкта, а також те, яке світлове випромінювання припадає на відповідну точку об'єкта.
Якщо об'єкт дзеркальний (хоча б частково), то будуємо вторинний промінь - промінь падіння, вважаючи променем відображення попередній, первинний трассируемого промінь.
Для ідеального дзеркала досить потім простежити лише чергову точку перетину вторинного променя з деяким об'єктом. У ідеального дзеркала ідеально рівна відполірована поверхня, тому одному відбитому променю відповідає тільки один падаючий промінь. Дзеркало може бути затемненим, тобто поглинати частина світлової енергії, але все одно залишається правило: один промінь падає - один відбивається.
Якщо об'єкт прозорий, то необхідно побудувати новий промінь, такий, який при ламанні давав би попередній трассируемого промінь.
Для дифузного віддзеркалення інтенсивність відбитого світла, як відомо, пропорційна косинусу кута між вектором променя від джерела світла і нормаллю.
Коли з'ясовується, що поточний промінь зворотного трасування не перетинає який-небудь об'єкт, а йде у вільний простір, то на цьому трасування для цього променя закінчується.
При практичній реалізації методу зворотного трасування вводять обмеження. Деякі з них необхідні, щоб можна було в принципі вирішити задачу синтезу зображення, а деякі обмеження дозволяють значно підвищити швидкодію трасування.
Обмеження при реалізації трасування
Серед усіх типів об'єктів виділимо деякі, які назвемо джерелами світла. Джерела світла можуть тільки випромінювати світло, але не можуть його відображати або заломлювати. Будемо розглядати тільки точкові джерела світла.
Властивості поверхонь, що відбивають описуються сумою двох складових - дифузійної і дзеркальною.
У свою чергу, дзеркальність також описується двома складовими. Перша (reflection) враховує відбиття від інших об'єктів, які не є джерелами світла. Будується тільки один дзеркально відбитий промінь r для подальшої трасування. Другий компонент (specular) означає світлові відблиски від джерел світла. Для цього направляються промені на всі джерела світла і визначаються кути, утворені цими променями з дзеркально відбитим променем зворотного трасування (r). При дзеркальному відображенні колір точки поверхні визначається власним кольором того, що відбивається.
При дифузному відображенні враховуються тільки промені від джерел світла. Промені від дзеркально відображають поверхонь ігнорують. Якщо промінь, спрямований на дане джерело світла, закривається іншим об'єктом, значить, дана точка об'єкта знаходиться в тіні. При дифузному відображенні колір освітленій точки поверхні визначається власним кольором поверхні і кольором джерел світла.
Для прозорих (transparent) об'єктів не враховується залежність коефіцієнта заломлення від довжини хвилі. (Іноді прозорість взагалі моделюють без заломлення, тобто напрямок переломленого променя t збігається з напрямком падаючого променя.)
Для обліку освітленості об'єктів світлом, розсіяним іншими об'єктами, вводиться фонова складова (ambient).
Для завершення трасування вводиться обмеження кількості ітерацій (глибини рекурсії).
Висновки по методу зворотного трасування
Універсальність методу, його застосовність для синтезу зображень досить складних просторових схем. Втілює багато законів геометричної оптики. Просто реалізуються різноманітні проекції.
Навіть усічені варіанти даного методу дозволяють отримати досить реалістичні зображення. Наприклад, якщо обмежитися тільки первинними променями (з точки проектування), то це дає видалення невидимих точок. Трасування вже одного-двох вторинних променів дає тіні, дзеркальність прозорість.
Всі перетворення координат лінійні, тому досить просто працювати з текстурами.
Проблеми з моделюванням дифузного віддзеркалення і заломлення.
Для кожної точки зображення необхідно виконувати багато обчислювальних операцій. Трасування відноситься до числа самих повільних алгоритмів синтезу зображень.