Иерархические графические модели

описанной в главе 6. Альтернативный вариант- объявить отдельный класс оптических свойств материала, например, в таком виде:

class material {
public: float specular[3]; float shininess; float diffuse[3]; float ambient[3];
}

Можно связать свойства материала с геометрическим объектом с помощью соответствующего метода класса геометрического объекта:

cube а; material b; a.setMaterial(b); Источники света относятся к геометрическим объектам, поскольку обладают такими характеристиками, как положение и ориентация. Объявление класса источника света может выглядеть так:

class light {
public:
boolean type; boolean near; float positionf3]; float orientation!3]; float specular[3]; float diffuse^]; float ambient[3];
}

Определив набор классов геометрических объектов, мы сможем описать сцену, включающую экземпляры таких объектов. Описание сцены также удобно оформить в виде древовидной структуры. Эту новую структуру будем называть графом сцены {scene graph).

8.8. Граф сцены

Мы считаем сцену совокупностью геометрических объектов, образы которых должны появиться на экране, и объектов других типов (камеры и источники освещения), влияющих на то, как будут выглядеть геометрические объекты. Оба типа объектов характеризуются определенными геометрическими параметрами и негеометрическими атрибутами, в частности цветом. Между всеми объектами сцены существуют определенные иерархические отношения. Например, в тот момент, когда примитив объявляется в программе, текущие параметры камеры используются для формирования образа этого примитива. Если в дальнейшем изменить параметры камеры, например фокусное расстояние объектива, и создать новый геометрический объект (пусть даже такой же формы), его образ будет отличаться от образа первого объекта. Хотя с помощью реальной фото- или кинокамеры такое изображение получить невозможно, компьютер позволяет нам проделывать еще и не такие фокусы. Для описания отношений между объектами сцены - геометрическими, камерой и источниками света - мы можем использовать все ту же древовидную структуру графа.


⇐ Предыдущая| |Следующая ⇒