Conference PaperPDF Available

ФОТОРЕАЛИСТИЧНА КОМПЮТЪРНА ГРАФИКА В ОБУЧЕНИЕТО ПО ИНФОРМАТИКА

Authors:

Abstract

В доклада се обсъждат ползите от включването на фотореалистичната компютърна графика и визуализирането на данни в обучението по информатика. Разглежда се практическото приложение на метода за проследяване на лъчи в различни научни направления. Описания подход се илюстрира практически от опита, добит при провеждане на факултативната дисциплина „Ray Tracing – фотореалистични изображения” във ПУ "Паисий Хилендарски".
Н
На
ац
ци
ио
он
на
ал
лн
на
а
к
ко
он
нф
фе
ер
ре
ен
нц
ци
ия
я
О
Об
бр
ра
аз
зо
ов
ва
ан
ни
ие
ет
то
о
в
в
и
ин
нф
фо
ор
рм
ма
ац
ци
ио
он
нн
но
от
то
о
о
об
бщ
ще
ес
ст
тв
во
о
2
20
01
10
0
ФОТОРЕАЛИСТИЧНА КОМПЮТЪРНА ГРАФИКА
В ОБУЧЕНИЕТО ПО ИНФОРМАТИКА
докторант Христо Лесев
ПУ „Паисий Хилендарски” ФМИ
бул. "България" 236, Пловдив, България
hristo.lesev@gmail.com
Резюме: В доклада се обсъждат ползите от включването на фотореалистичната компютърна графика и
визуализирането на данни в обучението по информатика. Разглежда се практическото приложение на метода за
проследяване на лъчи в различни научни направления. Описания подход се илюстрира практически от опита,
добит при провеждане на факултативната дисциплина „Ray Tracing фотореалистични изображения” във ПУ
"Паисий Хилендарски".
Ключови думи: Компютърна графика, ray tracing,обучение, информатика
1. Въведение
Визуализирането на данни е област в която от дълги години се извършват задълбочени проучвания.
Областта като цяло е комплексна и се възползва интензивно от сложен математически апарат.
Независимо дали става дума за визуализиране на математически повърхности, молекули, автоматизация
на проектантската дейност, развлекателен софтуер, мултимедия, анимационни филми, всичко това са
дейности присъщи на областта компютърна грфика. Тя е сложен и разнороден дял от информатиката,
който е особено актуален за научни изследвания през последните двадесет години. Тези изследвания
доведоха до създаването на множество информатични модели, бурно развитие на специализирания
хардуер и обособяването на нови образователни направления. Методите за визуализация са едно от
множеството направления от областта на компютърната графика [1]. Най-общо можем да я разгледаме
като съвкупност от следните дялове:
Геометрично моделиране: методи за описване и представяне на геометричната форма на сцени
(двумерни и тримерни) и тяхното обработване от приложния софтуер;
Генериране на образи и фотореалистични изображения: алгоритми и методи за изобразяване на
обекти, създаване на реалистични картини с отчитане на различни оптически ефекти,
осветление, оцветяване и други;
Графично взаимодействие: методи за организиране на комуникацията между човек и компютър, с
помощта на визуални средства;
Перцептивна компютърна графика: изследват се възприятията на наблюдателя, изграждат се
абстрактни модели и връзки между тях и обектите в сцената;
Изчислителна геометрия: алгоритми за решаване на геометрични комбинаторни задачи;
Анализ на изображения: оценка на изображения, разпознаване на образи.
2. Мотивация
В основния курс на обучение по информатика в ПУ "Паисий Хилендарски", в предмета Компютърна
Графика, освен теоретичната подготовка, която се придобива от лекциите се набляга на практическото
изграждане на диалогова система за геометрично моделиране [2]. Системата се изгражда чрез
съвременни среди за програмиране и обектно ориентирани езици C#, C++, Java, Object Pascal. Упражняват
се на практика шаблони за дизайн, като Модел-Изглед-Контролер (Model-View-Controller). За разработката
се използват графични библиотеки, като тук акцента е поставен главно върху проектиране на интерфейс
за комуникация с потребителя (GUI) и създаване и манипулиране на параметризирани геометрични
обекти.
При разработката на визуализиращия модул, студентите се научават да използват стандартни
графични библиотеки, като OpenGL, това им позволява да концентрират услията си върху работа по
модела на сцената. От друга страна стандартните графични програми интерфейси (API), имат ограничени
възможности за визуализация на геометрични примитиви и използват предимно локален модел на
осветяване. Това пречи на студента да получи задълбочена практическа представа за процеса на
генериране на изображения и симулирането на физически феномени, като отражения, прозрачност,
глобално осветяване и други.
За да се запълни тази празнина, преди три години, започна да се провежда факултативен курс „Ray
Tracing фотореалистични изображения”, който допълва основното обучение по Компютърна графика.
Курсът е насочен към изучаване на поведението на светлината в природата и създаването на негов
математически модел. В практическата част студентите усвояват уменията нужни за софтуерното
Н
На
ац
ци
ио
он
на
ал
лн
на
а
к
ко
он
нф
фе
ер
ре
ен
нц
ци
ия
я
О
Об
бр
ра
аз
зо
ов
ва
ан
ни
ие
ет
то
о
в
в
и
ин
нф
фо
ор
рм
ма
ац
ци
ио
он
нн
но
от
то
о
о
об
бщ
ще
ес
ст
тв
во
о
2
20
01
10
0
проектиране на графична библиотека рамка (framework) и реализирането на математическия модел на
светлината, надграждайки рамката. Реализацията се базира на метода на проследяване на лъчите (ray
tracing).
3. Метод на проследяване на лъчите
В огромната си част, фотореалистичните графични системи използвани във индустрията се базират на
метода на проследяване на лъчи. Преди да опишем механизма на работа, ще разгледаме основните
компоненти [3] :
Сензор/Камера: модел на наблюдател на сцената;
Сцена: съвкупност от геометрични обекти описващи реални такива;
Светлинни източници: излъчват светлинна енергия през сцената към сензора;
Крайно изображение: модел на това как сензора възприема светлинната енергия;
Материали: модел на визуалните характеристики на дадена повърхност.
Изображението се разглежда като съвкупност от множество елементи (pixels). Построява се лъч с
начало позицията на наблюдателя и минаващ през даден елемент, лежащ в равнината на изображението.
Лъчът се проверява дали има пресечни точки с обектите от сцената. Ако пресечните точки са повече от
една, като резултат от пресичането се взема най-близката точка спрямо позицията на наблюдателя. След
това се установява цвета и геометричните характеристики на обекта в точката и получения цвят се записва
в дадения елемент от крайното изображение. Алгоритъмът дава незабавно решение на проблема с
отстраняването на невидимите повърхности в сцената и проблема с дискретизацията на геометричния
обект върху равнината на изображението. Проследяването на лъчи има едно много важно предимство
пред растеризиращите алгоритми използвани в библиотеки като OpenGL, той не налага ограничения на
типа геометричени примитиви, които може да изобразява. Единственото условие, на което трябва да
отговаря обекта е да знаем, как да го пресечем с лъч. На Фиг.1 е показан схематично процеса на
проследяване на лъчи в сцена.
Фиг. 1
За да можем да симулираме различни физични феномени, като отражение, пречупване на светлината,
различни видове материали (например дърво, бетон, метал и др.), всеки обект трябва да съдържа
описание на съставящия го материал. Материалът определя количеството светлинна енергия, отразено от
повърхността, което ще достигне наблюдателя. Той определя и посоката в която ще се отрази лъча.
Моделите на взаимодействие на светлината повърхност са добре параметризирани за да може да
симулират разнообразни материали от реалния свят.
Проследяването на лъчите обединява изчисленията по пресмятане на видимите части на обектите и
осветяването на сцената. Например сенките се пресмятат като част от енергията която достига (е видима)
от светлинния източник до точка от повърхност, огледалното отражение съответно е енергията получена
от видимите повърхности по посока на отразения лъч. Това е огромно предимство на този метод пред
растеризацията. Това позволява да симулираме ефекта на глобално осветление, при който светлината се
предава индиректно между обектите в сцената, без да се налага да правим каквито и да било промени в
метода моделите и реализацията.
4. Графична рамка RayTracer
Основната цел на курса е придобиването на практически умения при разработването на инструменти
за генериране на фотореалистични изображения. Това се постига, като още в самото начало на студентите
се дава базова реализация на графичната рамка RayTracer, предварително подготвена специално за
целите на курса. В нея е реализирана базовата инфраструктура на алгоритъма за проследяване на лъчи,
отделните етапи на работа на алгоритъма са отделени смислово, като различни модули. Основните
свойства, които системата притежава са:
Н
На
ац
ци
ио
он
на
ал
лн
на
а
к
ко
он
нф
фе
ер
ре
ен
нц
ци
ия
я
О
Об
бр
ра
аз
зо
ов
ва
ан
ни
ие
ет
то
о
в
в
и
ин
нф
фо
ор
рм
ма
ац
ци
ио
он
нн
но
от
то
о
о
об
бщ
ще
ес
ст
тв
во
о
2
20
01
10
0
Отвореност: възможността за разширение на системата в едно или повече направления;
Модулност: ясното обособяване на компонентите като независими софтуерни единици;
Разпределеност: едновременната работа на части от приложението на различни изпълнители.
Избраната архитектура силно набляга на модулността (plug-in). Това помага още в самото начало, да
се добие ясна представа за етапите на генериране на изображението. Архитектурата подпомага и
поетапното изграждане на графичното приложение по време на курса. По време на различните заниятия
студентите се концентрират само върху даден вид модул и го разширяват с все повече компоненти.
Слабата свързаност допуска и възможност за работа на няколко разработчика върху различни модули,
което поощрява екипната работа и води до постигане на по-сложни визуални резултати при студенти с
изявен интерес към графиката.
5. Приложение
Приложението което има RayTracer могат да се обобщят в следните няколко направления: учебно,
изледователско, приложно. Някой от възможните му прилженния в обучението са:
Илюстриране на учебен материал с помощта на визуализация на обемни повурхнинни модели в
различни области (математика, биология, химия, физика, информатика и др.);
Практически опит с модулна (plug-in) софтуерна архитектура;
Разработване на приложения в областта на генеративната компютърна графика [4];
Изледвания върху нови алгоритми за апроксимационно пресмятане на осветеност [4];
Проектиране и практическа работа с разпределено приложение;
Пренасяне на графичната рамка върху различни хардуерни архитектури [5].
Конкретни дисциплини в обучението по информатика също могат да извлекат голяма полза от
прилагането на RayTracer в обучителния процес:
Линейна алгебра и аналитична геометрия: визуализиране на различни повърхнини и работа с
вектори и матрици;
Диференциална геометрия: изучаване на геометричните свойства на повърхост в точката на
пресичане с лъч;
Числени методи: визуална илюстрация на методи от тип Monte Carlo за пресмятане на
осветеност;
Разпределени приложения: самата природа на алгоритъма за проследяване на лъчи дава
възможност изчисленията да се извършват паралелно, различни части на изображението могат
да се пресмятат на различни изпълнители.
RayTracer успешно може да се използва при разработка на дипломни работи.
6. Заключение
Фотореалистичната графика навлезе широко в живота ни през последните няколко години, чрез
компютърно генерираните филми и реклами [6]. Темата е много актуална и водеща причина за постоянни
иновации в специализирания хардуер. По тази причина смятам, че изучаваната в курса материя дава на
обучаемите нови практически знания съобразени с изискванията на пазара. Освен за илюстрация и
затвърждаване на знанията получени в изучаването на класически дисциплини, познанията и уменията
натрупани при разработването на инструментариума ще са полезни на бъдещите работодатели. Като
бъдещи насоки бих определил подобряване на информираността на студентите за ползите от изучаването
на областта на фотореалистичната компютърна графика и формирането на още по-специализирани
курсове, за напреднали студенти, за работа със специализиран графичен хардуер и генериране на
фотореалистични изображения в реално време.
Литература
[1] Димов Д., „Компютърна графика”, ПУИ, 1999, Пловдив
[2] Димов Д., Пенев А., „Ръководство за упражнения по Компютърна графика”, ПУИ, 2002, Пловдив
[3] Pharr M., Humphreys G., “Physically Based Rendering from Theory to Implementation”, Morgan Kaufmann,
Elsevier Inc. 2004.
[4] Лесев Х., Иванов Д., „ Генериране карта на осветеността независима от гледната точка”, БСУ,
Студентско Научно Творчество – Годишник Том XVI: стр. 250-256, Бургас 2007.
[5] Shirley P., Sung K., Brunvand E., Davis A., Parker S., Boulos S., "Rethinking graphics and gaming courses
because of fast ray tracing", International Conference on Computer Graphics and Interactive Techniques archive
ACM SIGGRAPH 2007, Article No. 15, 2007
[6] Christensen P., Fong J., Laur D., Batali D., "Ray Tracing for the Movie 'Cars'", Proceedings of the IEEE
Symposium on Interactive Ray Tracing 2006, pages 1-6. IEEE, September 2006.
Conference Paper
Full-text available
The paper presents a computer application for 3D geometric modelling based on Function representation scheme (F-Rep). This application called F-Rep Designer uses a platform independent hybrid CPU/GPGPU implementation of Ray tracing algorithm for interactive visualization of the 3D scene during modelling by users. One of the major features of the current implementation of the system is that it is entirely mesh-free (in model, visualization, and user interaction). We also discuss existing and possible applications of the F-Rep Designer in areas such as research, education and creation of e-learning content.
Article
Full-text available
Almost all current games are implemented using the graphics processing units (GPUs) found on almost every PC. These GPUs use the z-buffer algorithm to do visibility calculations. Ray tracing, an alternative to the z-buffer algorithm, delivers higher visual quality than the z-buffer algorithm but has historically been too slow for interactive use. However, ray tracing has benefitted from improvements in computer hardware, and many believe it will replace the z-buffer algorithm as the visibility engine in games. If that replacement happens, it will imply fundamental changes in both the API to and capabilities of 3D graphics engines. This paper discusses the implications for games and graphics oriented classes should this switch to ray tracing occur.
Conference Paper
This paper describes how we extended Pixar's RenderMan renderer with ray tracing abilities. In order to ray trace highly complex scenes we use multiresolution geometry and texture caches, and use ray differentials to determine the appropriate resolution. With this method we are able to efficiently ray trace scenes with much more geometry and texture data than there is main memory. Movie-quality rendering of scenes of such complexity had only previously been possible with pure scanline rendering algorithms. Adding ray tracing to the renderer enables many additional effects such as accurate reflections, detailed shadows, and ambient occlusion. The ray tracing functionality has been used in many recent movies, including Pixar's latest movie 'Cars'. This paper also describes some of the practical ray tracing issues from the production of 'Cars'
Book
Physically Based Rendering, 2nd Edition describes both the mathematical theory behind a modern photorealistic rendering system as well as its practical implementation. A method - known as 'literate programming'- combines human-readable documentation and source code into a single reference that is specifically designed to aid comprehension. The result is a stunning achievement in graphics education. Through the ideas and software in this book, you will learn to design and employ a full-featured rendering system for creating stunning imagery.
Ръководство за упражнения по Компютърна графика
  • Д Димов
  • А Пенев
Димов Д., Пенев А., "Ръководство за упражнения по Компютърна графика", ПУИ, 2002, Пловдив
Генериране карта на осветеността независима от гледната точка
  • Х Лесев
  • Д Иванов
Лесев Х., Иванов Д., " Генериране карта на осветеността независима от гледната точка", БСУ, Студентско Научно Творчество -Годишник Том XVI: стр. 250-256, Бургас 2007.
Rethinking graphics and gaming courses because of fast ray tracing
  • P Shirley
  • K Sung
  • E Brunvand
  • A Davis
  • S Parker
  • S Boulos
Shirley P., Sung K., Brunvand E., Davis A., Parker S., Boulos S., "Rethinking graphics and gaming courses because of fast ray tracing", International Conference on Computer Graphics and Interactive Techniques archive ACM SIGGRAPH 2007, Article No. 15, 2007