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

Taugeshtu 16.12.2008 20:26

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
так в том-то и прикол что приложения типа игр 32-разрядных (определяется по тому, в какие програм файлс пытается впихнуть игру ведро ака винда) на моей видяхе играются так же хорошо, как на 8800GT (когда покупал была дилема между этой платой и nVidia, выбрал эту т.к. в планах CrossFire на HD4850/70 и он обходится дешевле чем тандем от nvidia, ну еще прирост 70-90% против 35-50% от второй карточки свое сделал), БОЛЕЕ ТОГО, когда тестил демки Dreamotion (недавно скачал релиз самый свежий, он в декабре обновлялся) там была демка с ш0йдером на HLSL, никаких проблем, хотя вроде тоже 32/Vista-emu...

moka 16.12.2008 21:29

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

как я понимаю это происходит когда драйвер начинает считать шейдер на CPU
Такое возможно???

jimon 16.12.2008 22:22

Ответ: [Xors3D] - Plumes (Шлейфы) - (Test)
 
MoKa
если в opengl установить режимы которые не поддерживает карточка то драйвер "упадёт в software mode" и будет считать шейдера на CPU
в directx есть reference render который программно эмулирует всю работу видеокарты (а как по вашему демки directx 11 работают сейчас ?)
моя дедукция подсказывает что вполне реально чтобы при кривых настройках драйвер считал всё на CPU, притом карточка ATI - они всегда нелюбили поблажки


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

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