forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=108)
-   -   [Xors3D] - Plumes (Шлейфы) - (Test) (http://forum.boolean.name/showthread.php?t=7285)

moka 06.11.2008 12:41

[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

zheland 06.11.2008 13:43

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
Average FPS: 45-47/650-668
Averange Render: 21.46-22.00/1.40-1.50
CPU: Intel Core 2 Duo CPU E4600 @ 2.40GHz 1,0GB RAM
Video: NVIDIA GeForce 7300 GT 256 Mb

А что это в Hardware за линия дополнительная получается?

moka 06.11.2008 14:11

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
Какая дополнительная линия? Едит всё? Если да, то это я забыл DDS буффер создать..
Сасибо за тест!

zheland 06.11.2008 14:39

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
Вложений: 1
Вот: Вложение 4966
Слева SoftWare без линии, а справа Hardware идёт какая-то линия.

FDsagizi 06.11.2008 14:52

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
Не качаеться.

zheland 06.11.2008 14:57

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
Цитата:

Сообщение от FDsagizi (Сообщение 90160)
Не качаеться.

Что-то с юкозом и его подсайтами случилось.

FDsagizi 07.11.2008 10:20

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
Интересный тест, МоКа умеед делать красиво =)
70 фпс на софт варе
600 хардварный

ЗЫ/ По чему не перемещяеш вершыны,а пересоздаешь ? ( ведь создание и удалиние тяжелая операция )

moka 07.11.2008 10:32

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
FDsagizi, это быстрее чем в софтваре перемещать ;)
Попробуй..
Спасибо за тест! :)

FDsagizi 07.11.2008 14:01

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
MoKa - да это странно, похоже доступ к вершинам сделан кривовато...

moka 07.11.2008 14:14

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
Не, это нормально, и в B3D так было.. Это DirectX :)

FDsagizi 07.11.2008 18:50

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
Цитата:

Сообщение от MoKa (Сообщение 90217)
Не, это нормально, и в B3D так было.. Это DirectX :)

Мда, железная логика..

HolyDel 07.11.2008 19:03

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
soft - 11
hard - 101

Taugeshtu 13.12.2008 23:26

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
Наверное я что-то не так делаю, но:
Vista 64-bit
I. Core 2 Quad 2.4GHz
RAM 4Gb
AMD HD3870 512Mb GDDR4 PCI-E 2.0 x16
ASUS P5E (материнка)
Софтвар: начали за здравие - 15 фпс, кончили за упокой - 5-3 (потому что падал)
Хардвар - стабильно 5 фпс... Уж не знаю в чем дело...

moka 16.12.2008 13:25

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
Приложение 32 битное, темболее 9 DX, при запуске на Vista, эмулирует + ещё и запускает в старых 32 битах (заместо 64 битах..).
Хз всех тонкостей, но твоя карточка конкурент 8800GT, а выдаёт такие показатели, что впечатление что она слабее 6600GT..

jimon 16.12.2008 14:00

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
как я понимаю это происходит когда драйвер начинает считать шейдер на CPU


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot