Добавил пример и сходники к уроку «Использование PVS - дерева»
Вы можете скачать - исходник.

Добавил пример и сходники к уроку «Использование PVS - дерева»
Вы можете скачать - исходник.

При разработке проекта используется версия “Version for the development“, отлаживается весь проект, исправляются ошибки и неправильные данные. Затем весь проект публикуется версией “Version for release“, при этом скорость его работы возрастает.
P.S. Особая благодарность Дворцину Александру за всестороннее тестирование движка, выявление ошибок и неточностей.
Добавил еще тестовую демку показывающую разницу между BaseRender и DynamicBSPRender фильтрами и между Orthographic и Perspective режимами. С помощью подобных демок я провожу тестирование движка перед сборкой новой версии, а так же отслеживаю актуальность новых алгоритмов.
По количеству полигонов эта демка равна вот этому “краш тесту” http://www.infinity3d-engine.com/ru/blog/archives/323, но в отличии от того теста тут более сложная геометрия и демка больше приближена к реальному использованию.
В демки есть возможность переключать:
1) рендер фильтры;
2) переходить из перспективного режима в ортографический и обратно;
3) показывать ребра полигонов (и разбиения BSP - деревом);
4) можно включать разные виды анимации (включить анимацию пропеллеров или вращение всего вертолета или то и другое вместе);
5) возможность переключения качества отрисовки.
P.S. В демке загружается 3D модель вертолета в формате *.ase весом 747 кб и 2 текстуры 157кб и 54кб - так что вертолет не сразу появится.
Добавил демку, демонстрирующую работу нового объекта в трехмерном пространстве Sound3D (будет доступен с версии 1.4). Объект Sound3D поможет оживить сцену. Можно создавать различные эффекты, а также позволит ориентироваться в трехмерном пространстве, опираясь не только на визуальную информацию, но и на звуковую (например, для игр - определять местонахождение других персонажей на игровой карте).
В демке используются 5 звуковых объектов. 4 из них расположены по углам сцены и радиус распространения звука равен 1000 пикселей, для наглядности на земле нарисована проекция сфер распространения звука. А 5 звуковой объект, крутится в центре сцены с радиусом распространения звука 1500 пикселей.
Для сравнения версий 1.3 и 1.4 выложил новую версию демки «полностью динамическое BSP - дерево».
В новой версии, проводится выборка оптимальных объектов в роли сплиттеров и система приоритетов объектов - уменьшают количество разбиений.
Вот та же демка на версии 1.3 без выборки оптимальных объектов и без системы приоритетов
http://www.infinity3d-engine.com/example/dynamicBSP.html - разбиения хаотичны.
Добавил новый “краш тест”, на это раз проводим тестирование DynamicBSP - дерева. В демке используется 300 Box’сов и 2 двусторонние плоскости для увеличения количества разбиений. Так же демка динамическая, все объекты двигаются и крутятся.

Удалось решить проблему flash player’a при рисовании полигонов с разрывами при “LOW QUALITY”. Теперь, при любой детализации, и при рендеренге DynamicBSPRender фильтром, швы от распилов BSP - деревом почти исчезли. Динамическое дерево стало более стабильным, теперь нет хаотичного разбиения (проводится выборка оптимальных объектов в роли сплиттеров и система приоритетов объектов - уменьшают количество разбиений).
_______________________________________
Последнее обновление демки: 16.09.2009 (Оптимизирован и ускорен DynamicBSPRender фильтр)
По просьбам, набросал демку, что-то вроде краш теста
. 1000 кубов, 6000 граней или 12000 треугольников, с динамическими текстурами, динамическими объектами, визуализацией culling алгоритмов и т.д.

Управление:
По просьбе читателей выложил BSP версию демки «Cathedral».

Посмотреть можно здесь
В версии 1.4 появится новый объект Sprite3D. В отличии от общепринятого понятия, что спрайты в трехмерном пространстве это точка, я сделал спрайты которые являются полноценными полигональными объектами.
Свойства объекта Sprite3D:
Вот пример взаимодействия спрайтов и других трехмерных объектов. Обратите внимание, что все спрайты врезаются в геометрию сцены, что не реализовано ни в одном аналогичном движке.

Управление:
Изменения: