Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Diplonote_v1.3 RC 6.doc
Скачиваний:
3
Добавлен:
27.10.2018
Размер:
12.94 Mб
Скачать

5.2.5 Описание технологий. Binary Space Partitioning (bsp) дерево

BSP – метод двоичного разбиения пространства. Существует очень давно и отлично зарекомендовал себя в трёхмерных играх.

Смысл BSP заключается в том, чтобы представить находящиеся в пространстве полигоны в виде двоичного дерева. Такая структура позволяет установить взаимосвязи «кто за кем» для всех полигонов. Это нужно для эффективной Z-сортировки и корректного отображения пересекающихся 3D-моделей. Также BSP используется для оптимизации расчётов в механизме обнаружения столкновений.

Пример BSP-сортировки (слева) и обычной загрузки (справа) представлен на рисунке 5.9.

Рисунок 5.9 – BSP-сортировка и обычная загрузка

Рассмотрим построение BSP-дерева в общих чертах. Изначально имеется некое множество полигонов. Из них выбирается один, который своей плоскостью разбивает пространство на два подпространства. Он становится корневым узлом дерева. Оставшиеся полигоны разделяются на два множества, в зависимости от того, в каком подпространстве они геометрически располагаются. Из полученных множеств снова выбираются рассекающие полигоны, которые в свою очередь делят их на две части. Эти полигоны становятся узлами дерева. Процедура разделения рекурсивно продолжается до тех пор, пока все полигоны не попадут в дерево.

Структура BSP-дерева приведена на рисунке 5.10.

Рисунок 5.10 – Структура BSP-дерева

Каждый узел BSP-дерева содержит один или несколько полигонов. При этом, если в плоскости узла находятся разнонаправленные полигоны (например, тонкая стенка), то они располагаются в разных хранилищах узла, что позволяет ускорить отсечение невидимых граней при рендеринге сцены.

5.2.6 Отсечение (клиппинг)

Отсечение или клиппинг (англ. clipping) – метод оптимизации в рендеринге и компьютерной графике, когда компьютер прорисовывает только ту часть сцены, которая может находиться в поле зрения пользователя.

В двухмерной графике, если пользователь увеличил изображение и на экране осталась видна только небольшая часть, программа может сэкономить процессорное время и память и не прорисовывать те части изображения, которые остались «за кадром».

Аналогично, в трехмерной графике, сцена может состоять из объектов (обычно треугольников), расположенных со всех сторон виртуальной камеры, но программе достаточно рендерить только те объекты, которые находятся в поле зрения. В трёхмерной графике, это нетривиальная задача. Для каждого треугольника в сцене требуется определить, входит он в поле зрения или нет. Если треугольник частично входит в поле зрения, то часть его придется отсечь. Иллюстрация отсечения методом клипинга представлена на рисунке 5.11.

Рисунок 5.11 – Клипинг

Объем видимости обычно имеет вид усеченной четырехугольной пирамиды с виртуальной камерой в вершине, то есть ограничен шестью плоскостями. Эти плоскости называются плоскостями отсечения (англ. clipping planes). 

5.3 Варианты дальнейшего развития программного комплекса

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

В конечном итоге, наиболее важным и решающим фактором, будет являться актуальность и своевременность информации, которую будет предоставлять сервис «Кафедра Онлайн». Исходя из всего вышесказанного можно лишь предположить наиболее вероятные варианты дальнейшего расширения сервиса.

Дальнейшее развитие сервиса возможно в следующих направлениях:

- переход на новую версию 3D движка с поддержкой аппаратного рендеринга;

- расширение интерактивности объектов с целью увеличения информативности (расписания, объявления, графики, изображения и т.д.);

- улучшение визуальной составляющей, путём добавления новых 3D моделей, текстур, освещения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]