Вспомогательные классы свойств трехмерных объектов
Одним из основных классов, задающих внешний вид трехмерного объекта, является класс CSurface, среди атрибутов которого присутствуют следующие величины: · Коэффициент фоновой освещенности · Коэффициент диффузного отражения · Коэффициент зеркального отражения · Коэффициент Фонга (характеризует пространственное распределение зеркально отраженного света) · Коэффициент прозрачности · Коэффициент преломления · Коэффициент отражения · Коэффициент затухания · Цвет поверхности · Нормаль к поверхности (устанавливается после нахождения очередного пересечения).
Назначение каждого из этих классов дается в таблице 3.1:
Таблица 3.1
Назначение классов, реализующих текстуру и фактуру Базовые трехмерные объекты Все классы трехмерных объектов, с которыми находится пересечение лучей, наследуются от абстрактного класса C3DObject, который реализует такие операции, присущие всем объектам, как пространственные преобразования, а также предоставляет унифицированный интерфейс обращения к объектам через виртуальные функции (таким способом реализованы методы поиска пересечений, текстурирования, фактурирования). Диаграмма классов выглядит следующим образом:
Подобная иерархия является необходимой в силу того, что для каждого типа трехмерного объекта реализуются свои алгоритмы поиска пересечений и определения нормалей к поверхности. Для унификации доступа к различным объектам выделено базовое понятие трехмерного объекта. Необходимо заметить, что класс объекта содержит в себе не экземпляры текстуры и материала, а всего лишь указатели на них, что позволяет сэкономить память и вычислительные ресурсы, а также повторно использовать объекты вспомогательных классов в других трехмерных объектах. Источник света Источники света являются одними из основных понятий, участвующих в построении трехмерного изображения. В программе реализован только один источника – солнце, однако для возможности добавления новых источников света(Луны, фонарей) и большей гибкости программы был выделен класс-предок CLight, от которого наследуется класс солнечного источника света CSun.
На рис. 3.3 изображена соответствующая диаграмма классов.
Одним из ключевых механизмов базового алгоритма трассировки лучей является метод, который позволяет получить степень затенения. Он реализует тени от загораживающих источники света объектов. Метод shadingCoef, реализующий этот механизм, объявлен как виртуальный в классе CLight и реализуется уже в классе CSun. Сцена Класс сцены SeaScene полностью характеризует набор объектов и их свойств, подлежащих визуализации. Он включает:
Объекты лодка, солнце и водная поверхность (экземпляры классов CBoat, CSun, CWater) · Методы установки параметров камеры · Методы параметров самих объектов · Информация о размере строящегося изображения и субпиксельном разбиении · Методы получения трассирующих лучей Соответствующая диаграмма классов представлена на рис. 3.4.
Популярное: Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (206)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |