Мегаобучалка Главная | О нас | Обратная связь


Вспомогательные классы свойств трехмерных объектов



2020-03-19 183 Обсуждений (0)
Вспомогательные классы свойств трехмерных объектов 0.00 из 5.00 0 оценок




Одним из основных классов, задающих внешний вид трехмерного объекта, является класс CSurface, среди атрибутов которого присутствуют следующие величины:

· Коэффициент фоновой освещенности

· Коэффициент диффузного отражения

· Коэффициент зеркального отражения

· Коэффициент Фонга (характеризует пространственное распределение зеркально отраженного света)

· Коэффициент прозрачности

· Коэффициент преломления

· Коэффициент отражения

· Коэффициент затухания

· Цвет поверхности

· Нормаль к поверхности (устанавливается после нахождения очередного пересечения).

Иерархия классов, реализующих текстуру и фактуру
Еще одной немаловажной визуальной характеристикой объекта является его текстура и фактура. И то, и другое реализуется с использованием одни и тех же классов, составляющих следующую иерархию:

 

Рис. 3.1

 

Назначение каждого из этих классов дается в таблице 3.1:

 

Таблица 3.1

Класс Комментарии
CTexture Реализует интерфейс обращения к любому типу текстуры в виде набора виртуальных функций, а также хранит указатель на объект класса файла текстуры
CTextureFile Обеспечивает загрузку из файла битовой карты текстуры или генерацию процедурной текстуры, ее интерпретацию, а также предоставляет методы обращения к этой карте.
CParallelTexture Класс текстуры, накладываемой на треугольник
CPerlinNoise Класс генерирующий процедурную фактуру с помощью шума Перлина

 

Назначение классов, реализующих текстуру и фактуру

Базовые трехмерные объекты

Все классы трехмерных объектов, с которыми находится пересечение лучей, наследуются от абстрактного класса C3DObject, который реализует такие операции, присущие всем объектам, как пространственные преобразования, а также предоставляет унифицированный интерфейс обращения к объектам через виртуальные функции (таким способом реализованы методы поиска пересечений, текстурирования, фактурирования).

Диаграмма классов выглядит следующим образом:

 

 
Иерархия классов, реализующих трехмерные объекты


Рис.3.2

 

Подобная иерархия является необходимой в силу того, что для каждого типа трехмерного объекта реализуются свои алгоритмы поиска пересечений и определения нормалей к поверхности. Для унификации доступа к различным объектам выделено базовое понятие трехмерного объекта.

Необходимо заметить, что класс объекта содержит в себе не экземпляры текстуры и материала, а всего лишь указатели на них, что позволяет сэкономить память и вычислительные ресурсы, а также повторно использовать объекты вспомогательных классов в других трехмерных объектах.

Источник света

Источники света являются одними из основных понятий, участвующих в построении трехмерного изображения. В программе реализован только один источника – солнце, однако для возможности добавления новых источников света(Луны, фонарей) и большей гибкости программы был выделен класс-предок CLight, от которого наследуется класс солнечного источника света CSun.

 

На рис. 3.3 изображена соответствующая диаграмма классов.

 

Одним из ключевых механизмов базового алгоритма трассировки лучей является метод, который позволяет получить степень затенения. Он реализует тени от загораживающих источники света объектов.

Метод shadingCoef, реализующий этот механизм, объявлен как виртуальный в классе CLight и реализуется уже в классе CSun.

Сцена

Класс сцены SeaScene полностью характеризует набор объектов и их свойств, подлежащих визуализации. Он включает:


 

Объекты лодка, солнце и водная поверхность (экземпляры классов CBoat, CSun, CWater)

· Методы установки параметров камеры

· Методы параметров самих объектов

· Информация о размере строящегося изображения и субпиксельном разбиении

· Методы получения трассирующих лучей

Соответствующая диаграмма классов представлена на рис. 3.4.



2020-03-19 183 Обсуждений (0)
Вспомогательные классы свойств трехмерных объектов 0.00 из 5.00 0 оценок









Обсуждение в статье: Вспомогательные классы свойств трехмерных объектов

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (183)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)