virtual void render ( const Polygon& area )= 0;
};
Внутренняя организация данных и метод рендеринга для каждой конкретной подсцены могут быть уникальными и наиболее подходящими к ее структуре. Так, для подсцен, которые являются внутренними помещениями, может использоваться метод BSP-деревьев или метод ^-буфера. Для подсцен, представляющих собой открытые участки пространства (к примеру, ландшафт), может быть удобна другая организация данных и рендеринга, например использование явной сортировки граней. При этом каждая подсцена, в свою очередь, может состоять из других подсцен.
В результате мы приходим к концепции иерархической сцены как объекта, состоящего из набора подсцен, соединенных порталами. Это является неким аналогом агрегатного объекта в методе трассировки лучей.
10. Удаление невидимых линий и поверхностей Упражнения Модифицируйте алгоритмы построения графика функции двух переменных для работы при произвольных углах <ср\\ у/.
Покажите, почему в алгоритме Робертса нельзя отбрасывать все ребра, составляющие границу нелицевой грани.
Реализуйте один из алгоритмов удаления невидимых линий (Робертса или Аппе-ля). Посмотрите, к какому выигрышу во времени приводит использование равномерного разбиения картинной плоскости.
Реализуйте алгоритм z-буфера. Напишите процедуру вывода грани в z-буфер, максимально использующую связность пикселов грани.
Покажите, что при использовании перспективного проектирования значения глубины для пикселов одной грани уже нелинейно зависят от координаты пиксела, в то время как величина, обратная глубине, изменяется линейно.
Реализуйте алгоритм визуализации сцены с использованием BSP-деревьев (по заданному набору граней строится BSP-дерево, которое затем визуализируется для различных углов зрения и положений наблюдателя).
Модифицируйте алгоритм s-буфера для работы с полупрозрачными гранями.
Реализуйте в 5-буфере функцию проверки того, изменяет ли данная грань содержимое s-буфера, и на основе этого реализуйте метод иерархического s-буфера.
Реализуйте метод порталов для визуализации внутренности лабиринта типа, используемого в игре Descent.