|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
Оптимальный выбор сортировки в A3D 7.5
возможно, кто-то уже сталкивался
имеем случай: на плоскости расположен дом Как я понял, то дом лучше всего обернуть в простую геометрию без текстур, и сортировать их по BSP, иначе если сортировать по среднему Z, то на дом заходят полигоны от плоскости. Однако, если домов поставить штук 50, то при движении камеры fps падает до 2-3 (в каждом доме 46 полигонов), а по диаграмме камеры видно что реально полигонов около 7000 (происходит разбиение из-за BSP, как я понял) отсюда возникли вопросы: 1. как оптимальнее сортировать в конкретном примере? 2. как правильно подготовить модель (нужна ли в ней дополнительная геометрия для отсечения ненужной сортировки)? 3. если да, то должна ли эта доп. геометрия быть частью объекта (дома)? 4. какой контейнер лучше использовать? 5. как правильно размещать в контейнере всю геометрию (все запихиваем в один, или нужно несколько)?
__________________
low + |
|
|||||
Регистрация: Jul 2008
Сообщений: 912
|
Для статичных обьектов применяй простую БСП сортировку, как раз твой случай дома не анимированы - стоят на месте, не засовывай их в контейнеры с динамической покадровой сортировкой. Так-же в случае когда
Цитата:
домик2.mobility = -600; домик3.mobility = -500; и так 50 домиков))) разрезов будет на много меньше, чем при авто сортировке. Только вот я не знаю можно-ли так делать в 7.5 версии |
|
|||||
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
итак, что мы имеем в версии 7.5:
цитата от разработчика: "Объекты определяют, каким образом внутри них сортируются их полигоны. Контейнеры определяют, каким образом внутри них сортируются их дочерние объекты между собой." в 7.5 мы имеем несколько видов контейнеров: с сортировкой и без. если нужно чтобы какой-то объект был все время выше другого (как при addChild), то используем простой контейнер без сортировки, например Object3DContainer сначала в него помещаем нашу плоскость, а затем еще один контейнер (с z-сортингом), в котором будут располагаться домики, тогда домики будут все время выше земли и полики от плоскости не будут пересекаться с полигонами домов. дальше, как сортировать сами дома: перед добавлением в контейнер каждый дом заворачиваем в свой контейнер (таким образом сортируются между собой только контейнеры, а не полигоны домов), что способствует повышению быстродействия. также для домов лучше использовать класс BSP, а не сортировку меша по dynamic bsp. Таким образом БСП расчитается один раз, а не ежекадрово.
__________________
low + |
Часовой пояс GMT +4, время: 10:51. |
|
« Предыдущая тема | Следующая тема » |
|
|