Показать сообщение отдельно
Старый 06.11.2008, 12:41   #1
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Хорошо [Xors3D] - Plumes (Шлейфы) - (Test)

В этой демке реализованы шлейфы, с двумя методами обновления и рендеринга:
Софтварный (Software) - Данный алгоритм, обновляя информацию позиций вершин, каждый рендеринг отчищает информацию о вершинах и трианглах в сюрфейсе, и пересоздаёт их с новыми позициями. Перемещять вершины много дольше, чем пересоздать геометрию небольшого объёма.
Аппаратный (Hardware) - Данный алгоритм, также обновляет данные позиции вершин, но геометрия (вершины и трианглы), создаются только 1 раз при создании шлейфа, каждый квад, по 2 вершинам назначаются индексы, массива позиций вершин. Каждый рендеринг отправляется в шейдер массив векторов позиций, и в вершинном шейдере, заместо перемножения на матрицу объекта, вершина позиции принемает данное из массива по индексу - этот метод называется Instancing.

Таким образом в первом варрианте было очень критично как количество шлефов, так и количество полигонов (длина) шлейфа, в аппаратном же варрианте, вершины затрачивают время только на рендеринг стандартной геометрии. Учитывая размер возможного массива, шлеф может быть не длинее 120 полигонов, при этом можно немножко оптимизировав добиться и 240. Таким образом, аппаратный метод рендеринга шлейфов, практически несёт лишь стандартную нагрузку рендеринга геометрии.

ЗЫ, это конечно начальная версия, в дальнейшем будет поворот в шейдере шлейфа к камере, что избавит от необходимости создавать перекрёстный шлейф, а также сделаю чтобы один вектор в массиве юзала одна грань полигона, а не каждая вершина. И анимированные материалы, и регулировка толщины, с наследием толщины грани. Но это позже..


Сорсы прилогаются (BlitzMax, кто переведёт на B3D, сравнит скорость просчёта, и убедится в выйгрыше BM, кто хочет перевести? В B3D, можно не юзать второй класс, а только массив).

Download (Bin+Source, 460Kb)

Тестируйте, нужны данные:
Average FPS: Software/Hardware
Averange Render: Software/Hardware ms
CPU: Model, Ghz, CPUs
Video: ATI/GF Model, Mb
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
FDsagizi (07.11.2008), HolyDel (06.11.2008)