Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.09.2010, 13:37
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 1  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
По умолчанию Оптимальный выбор сортировки в A3D 7.5

возможно, кто-то уже сталкивался

имеем случай: на плоскости расположен дом



Как я понял, то дом лучше всего обернуть в простую геометрию без текстур, и сортировать их по BSP, иначе если сортировать по среднему Z, то на дом заходят полигоны от плоскости.
Однако, если домов поставить штук 50, то при движении камеры fps падает до 2-3 (в каждом доме 46 полигонов), а по диаграмме камеры видно что реально полигонов около 7000 (происходит разбиение из-за BSP, как я понял)

отсюда возникли вопросы:
1. как оптимальнее сортировать в конкретном примере?
2. как правильно подготовить модель (нужна ли в ней дополнительная геометрия для отсечения ненужной сортировки)?
3. если да, то должна ли эта доп. геометрия быть частью объекта (дома)?
4. какой контейнер лучше использовать?
5. как правильно размещать в контейнере всю геометрию (все запихиваем в один, или нужно несколько)?
__________________
low +

Старый 30.09.2010, 12:08
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 2  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
хех ( :
наверно вы и отвтеите на жти вопросы
я так понял у нас 3д не особо кто юзает
хотя лишь предположение
__________________
мира и гармонии

Старый 30.09.2010, 18:33
Sintesis вне форума Посмотреть профиль Отправить личное сообщение для Sintesis Найти все сообщения от Sintesis
  № 3  
Ответить с цитированием
Sintesis
 
Аватар для Sintesis

Регистрация: Jul 2008
Сообщений: 912
Для статичных обьектов применяй простую БСП сортировку, как раз твой случай дома не анимированы - стоят на месте, не засовывай их в контейнеры с динамической покадровой сортировкой. Так-же в случае когда
Цитата:
в каждом доме 46 полигонов), а по диаграмме камеры видно что реально полигонов около 7000 (происходит разбиение из-за BSP, как я понял)
можно отключать автоматическую ВСП сортировку контейнер.splitAnalysis = false; потом каждому домику назначить свою мобильность домик1.mobility = -700;
домик2.mobility = -600;
домик3.mobility = -500;
и так 50 домиков))) разрезов будет на много меньше, чем при авто сортировке.
Только вот я не знаю можно-ли так делать в 7.5 версии

Старый 01.10.2010, 14:20
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 4  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
итак, что мы имеем в версии 7.5:

цитата от разработчика:
"Объекты определяют, каким образом внутри них сортируются их полигоны.
Контейнеры определяют, каким образом внутри них сортируются их дочерние объекты между собой."

в 7.5 мы имеем несколько видов контейнеров: с сортировкой и без.
если нужно чтобы какой-то объект был все время выше другого (как при addChild), то используем простой контейнер без сортировки, например Object3DContainer

сначала в него помещаем нашу плоскость, а затем еще один контейнер (с z-сортингом), в котором будут располагаться домики, тогда домики будут все время выше земли и полики от плоскости не будут пересекаться с полигонами домов.

дальше, как сортировать сами дома: перед добавлением в контейнер каждый дом заворачиваем в свой контейнер (таким образом сортируются между собой только контейнеры, а не полигоны домов), что способствует повышению быстродействия.

также для домов лучше использовать класс BSP, а не сортировку меша по dynamic bsp.

Код AS3:
var bsp:BSP = new BSP(); 
bsp.matrix = mesh.matrix; 
bsp.geometry = mesh.geometry;
Таким образом БСП расчитается один раз, а не ежекадрово.
__________________
low +

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:21.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.