HLFX.Ru Forum
Показать все 60 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- XashXT (https://hlfx.ru/forum/forumdisplay.php?forumid=30)
-- Hardware Skinning (обсуждение и troubleshooting) (https://hlfx.ru/forum/showthread.php?threadid=4279)


Отправлено fire64 04-02-2014 в 11:14:

Дядя Миша, вот они последствия использования шейдеров.
Нет никакой гарантии, что если нормально работает на одной видеокарте, то на другой тоже будет все нормально.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 04-02-2014 в 13:46:

Первое тестирование выявило следующую закономерность: на Nvidia всегда всё работает, на радионах\интелах капризничает в меру своей устарелости. Т.е. например нвидия закрывает глаза на некоторые неявные касты, для радиона это ошибка. Хитрый интел иногда выдаёт желаемое за действительное - например уверяет о поддержке чего-то там, а на самом деле - ничего подобного. Ну и основной фейл - нежелание поддерживать bitwise operations. Я конечно могу их разложить на обычные кондишены, но вот более свежие радионы их уже поддерживают. Может дело таки в дровах?

А от шейдеров теперь не резон отказываться - видел какой прирост получился? в 10 раз.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 04-02-2014 в 14:20:

А куда делся тред про паранойю? Кстати такие сильные покачивания игрока тоже не понравились, такое ощущение что игрок пьян. Стоит их убавить раза в 2.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено tolerance 04-02-2014 в 14:25:

Вот кстати про покачивания я и хотел спросить: откуда они и для чего писались? Для Paranoia 2?


Отправлено a-kush-er 04-02-2014 в 14:29:

у меня оно в окне запускается и счетчик фпс не видно, чядн?


Отправлено GioHAUS0n 04-02-2014 в 14:31:

Цитата:
a-kush-er писал:
у меня оно в окне запускается и счетчик фпс не видно, чядн?


Alt+Enter (Переход в полно-экранный вид)


Отправлено fire64 04-02-2014 в 14:40:

продолжил исследование проблемы.
Там очень странная ситуация.

Если написать в шейдере:

C++ Source Code:
bool test = bool( u_FaceFlags & 0x0001 );


то он нормально компилится, а если

C++ Source Code:
bool test = bool( u_FaceFlags & STUDIO_NF_FLATSHADE );


то возникает ошибка.

Добавлено 04-02-2014 в 18:40:

т.е. если вместо

C++ Source Code:
#define STUDIO_NF_FLATSHADE		0x0001


писать

C++ Source Code:
const int STUDIO_NF_FLATSHADE = 0x0001;


то все работает

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 04-02-2014 в 14:42:

Цитата:
FiEctro писал:
А куда делся тред про паранойю?

http://www.hlfx.ru/forum/showthread...=&threadid=4165

Цитата:
FiEctro писал:
Кстати такие сильные покачивания игрока тоже не понравились

Это бенчмарк производительности. Причём тут покачивания игрока?

Цитата:
a-kush-er писал:
у меня оно в окне запускается и счетчик фпс не видно, чядн?

Как вы этого достигаете? У вас окно куда-то за край экрана уезжает?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено fire64 04-02-2014 в 14:46:

Кстати, после этих изменений в шейдере fps в Hardware Mode поднялся с 85 до 120

Добавлено 04-02-2014 в 18:46:

Исправленный шейдер StudioDiffuse_vp.glsl
Просьба к людям проверить, есть ли изменение в fps

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено FiEctro 04-02-2014 в 14:56:

>> Это бенчмарк производительности. Причём тут покачивания игрока?

Оке, снимаю этот вопрос.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено GioHAUS0n 04-02-2014 в 15:11:

Перепроверил:

OS: Windows 7 Ultimate x32
CPU: Inter Core 2 Quad Q8200 @ 2.33GHz
GPU: Nvidia GeForce GTS 250 [GDDR3: 1024 Mb]
RAM: 2,00 Gb
--------------------------
Software Skining: 21 FPS
Hardware Skining: 193 FPS
Internal Render: 39 FPS

==========================================

OS: Windows XP Professional SP3 x32
CPU: Inter Core 2 Quad Q8200 @ 2.33GHz
GPU: Nvidia GeForce GTS 250 [GDDR3: 1024 Mb]
RAM: 2,00 Gb
--------------------------
Software Skining: 200 FPS
Hardware Skining: 2072 FPS
Internal Render: 230 FPS


Отправлено Дядя Миша 04-02-2014 в 15:12:

fire64 проще говоря препроцессор ATI не разумеет HEX-числа.

Добавлено 04-02-2014 в 19:12:

GioHAUS0n мляя
Ну вот тема для результатов http://www.hlfx.ru/forum/showthread...=&threadid=4276

Ещё раз, флудить - здесь. Результаты - втуда: http://www.hlfx.ru/forum/showthread...=&threadid=4276

Это ты такой одарённый или все?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено tolerance 04-02-2014 в 15:34:

Цитата:
Дядя Миша писал:
Как вы этого достигаете? У вас окно куда-то за край экрана уезжает?

Просто высоты рабочего стола не хватает.

Xash кноку Print Screen хукает, не могу полный скриншот выложить, только окно:
http://2.firepic.org/2/images/2014-...9xp189tnibh.jpg
Так где черная полоса — заголовок от окна (Title Bar).


Отправлено Дядя Миша 04-02-2014 в 15:54:

Цитата:
tolerance писал:
Просто высоты рабочего стола не хватает.

А сколько она, высота рабочего стола? Меньше 768 пикселей?

2ALL: я обновил бенчмарк, идите перекачивайте. В первую очередь те, у кого вылетало или были обугленные куски фрименов. Прилагайте логи, если снова не помогло.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено tolerance 04-02-2014 в 16:05:

Цитата:
Дядя Миша писал:
А сколько она, высота рабочего стола? Меньше 768 пикселей?

Именно 768, но к окну же добавляется его заголовок, который винда не позволяет выносить за верхний предел экрана, вот она его и опускает.


Отправлено Дядя Миша 04-02-2014 в 17:26:

А чъорд. Я совсем позабыл, что на современных нубуках высота именно 768. 15.4 матрица?

Добавлено 04-02-2014 в 21:26:

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено tolerance 04-02-2014 в 17:27:

Цитата:
Дядя Миша писал:
15.4 матрица?

15.6


Отправлено -=DrTressi=- 04-02-2014 в 17:53:

1. Забинденные клавиши на Газмяс, аптечку, щиток и ещё чота.
2. Беленькие шрифты
3. Раскачивания экрана
4. Барабанная дробь... Спирт.длл

Цитата:
-=DrTressi=- писал:
PS: Это что, один из билдов Паранои 2?

__________________
How interesting, just look at that!
© Scientist


Отправлено Ku2zoff 04-02-2014 в 18:02:

Цитата:
-=DrTressi=- писал:
Спирт.длл

Цитата:
-=DrTressi=- писал:
Раскачивания экрана

Ну ясно всё
Цитата:
-=DrTressi=- писал:
PS: Это что, один из билдов Паранои 2?

А не всё ли равно? Вообще просто бенчмарк на основе ксашдвижка и ксашмода. Со скукоженными фроменами и припадками а-ля анрил со старым рендерером. А всё потому что недобуки и радионы от лукавого. Вот в стабильную паранойю 2 я б вспаиграл.
Вообще, ни в халфе, ни в ксаше никогда не наблюдал зависимости скорости игры от fps. Надеюсь, это временный баг.


Отправлено -=DrTressi=- 04-02-2014 в 18:26:

Ku2zoff Что ясно? В ксашмоде client.dll и ещё пара штук. А параноя 2 на Спирте. В Ксаш-моде раскачивания экрана другие, а вот в Параное 2 они вероятно задумывались. Не уж то эти рассуждения столь нелогичны?

__________________
How interesting, just look at that!
© Scientist


Отправлено Дядя Миша 04-02-2014 в 19:32:

Цитата:
Ku2zoff писал:
Вообще, ни в халфе, ни в ксаше никогда не наблюдал зависимости скорости игры от fps

Да и большого фпс вообщем-то не видел

-=DrTressi=- ты и правда полагаешь, что я бы выложил вам готовые библиотеки от паранои?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Government-Man 05-02-2014 в 03:41:

А как вообще выглядят обугленные куски фриманов и скукоженные фриманы? Покажите хоть что-ли, а то любопытно же.


Отправлено LokiMb 05-02-2014 в 10:20:

Я старый тест удалил.

А хотя вот тут есть
http://hlfx.ru/forum/attachment.php?s=&postid=132354

__________________
УВАЖАЕМЫЕ ЖИРЫ ДЕРИТЕСЬ ЗА ПОНИ!


Отправлено Government-Man 05-02-2014 в 11:02:

LokiMb
Ужас какой - реально обугленные останки.


Отправлено pRoxxx 05-02-2014 в 11:12:

У меня не работает ни на встроенной в ноут АТИ, ни на Интеле на ПК, вся потому что в шойдере много передается, тобишь вот это вот:

code:
uniform mat4 u_BoneMatrix[MAXSTUDIOBONES];

бьет всё лимиты в моих ссаных видеокартах. =(


Отправлено XaeroX 05-02-2014 в 11:31:

pRoxxx
Я думаю, Дядя Миша рано или поздно откроет для себя GL_EXT_bindable_uniform.

__________________

xaerox on Vivino


Отправлено Дядя Миша 05-02-2014 в 15:49:

Цитата:
XaeroX писал:
Я думаю, Дядя Миша рано или поздно откроет для себя GL_EXT_bindable_uniform

Это когда юниформы в VBO суются?
А почему ты решил, что карточка pRoxxx поддерживает это расширение? Этож обычный жызненный парадокс - у одного есть всё, но зато он здоров и счастлив. А у другого нет ничего, но он болен и несчастен.

Добавлено 05-02-2014 в 19:49:

XaeroX ты почему бенчмарк не запускаешь и не тестируешь?
Это ты так усиленно демонстрируешь как тебе всё равно?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено fire64 05-02-2014 в 16:07:

Цитата:
Дядя Миша писал:
А почему ты решил, что карточка pRoxxx поддерживает это расширение? Этож обычный жызненный парадокс - у одного есть всё, но зато он здоров и счастлив. А у другого нет ничего, но он болен и несчастен.


http://developer.download.nvidia.co...ble_uniform.txt

Цитата:

Dependencies

OpenGL 1.1 is required.

This extension is written against the OpenGL 2.0 specification and version
1.10.59 of the OpenGL Shading Language specification.

This extension interacts with GL_EXT_geometry_shader4.


Так, что все может быть.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 05-02-2014 в 16:14:

Это расширение было введено с 8-й серии жирафов. Из чего я делаю вывод, что оно относительно свежее. Если я его заюзаю - отвалятся младшие видимокарты. Вы как-то интересно рассуждаете.
Тогда уж проще не юзать аппаратный скиннинг, если аргументов маловато. Собственно, это я и сделаю впоследствии.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Government-Man 05-02-2014 в 16:27:

Дядя Миша почему бы не сделать несколько вариантов: для нвидии, для радеонов, для старых карт и для новых?


Отправлено Дядя Миша 05-02-2014 в 16:31:

Government-Man вариант будет ровно один - если аргументов хватает - рисуем аппаратно-ускоренно. Если нехватает - рисуем софтварно. Ещё мне нехватало тестировать это всё на карточках 2004 года. Вон Ксерокс тестировал-тестировал и получилась Волатила в итоге.
А я не тестировал и получился Ксаш.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено fire64 05-02-2014 в 16:46:

Цитата:
Government-Man писал:
Дядя Миша почему бы не сделать несколько вариантов: для нвидии, для радеонов, для старых карт и для новых?

Согласен 3 или 4 варианта шейдера.
Кстати в Half-Life 2 также сделано, в зависимости от того, что поддерживает видеокарта, выбирается нужный шейдер.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 05-02-2014 в 16:56:

Что значит "3 или 4 варианта шейдера"
Вы шо с дубу рухнули? Простейший шейдер без изысков, какие тут могут быть варианты?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 05-02-2014 в 17:01:

Цитата:
Дядя Миша писал:
Это ты так усиленно демонстрируешь как тебе всё равно?

У меня гефорс ГТХ275 и стационарный комп, думаю, результаты бенчмарка можно предугадать. А вот цифры в целом интересны, я ж скоро новым рендером волатилы займусь, инфа пригодится.

Добавлено 06-02-2014 в 00:01:

Цитата:
Дядя Миша писал:
А я не тестировал и получился Ксаш.

Правильно. За тебя Кармак тестировал.)

__________________

xaerox on Vivino


Отправлено Government-Man 05-02-2014 в 17:27:

Цитата:
Дядя Миша писал:
Вон Ксерокс тестировал-тестировал и получилась Волатила в итоге.
А я не тестировал и получился Ксаш.


В итоге Ксаш вполне себе запускается на старых видеокартах на максимальных настройках, а Волатила если и запускается, то со скрипом и с низкими настройками.


Отправлено XaeroX 05-02-2014 в 17:40:

Government-Man
Ну да, высокие настройки в ксаше это почти как высокие настройки в волатиле. Практически один в один.

__________________

xaerox on Vivino


Отправлено Дядя Миша 05-02-2014 в 17:47:

Цитата:
XaeroX писал:
А вот цифры в целом интересны, я ж скоро новым рендером волатилы займусь, инфа пригодится.

Вот и протестируй пожалуйсто. Для статистики.
Цитата:
Government-Man писал:
В итоге Ксаш вполне себе запускается на старых видеокартах на максимальных настройках

Да, но тормозит при этом не хуже Волатилы.
Между прочим на том же гей-деве, старое поколение карточек, вплоть до 9800 вообще не считают за видимокарты. Типа нету их и всё тут.
Это конечно не наши проблемы, но почему я должен поддерживать всякие FX5200 и GF440? Ну да, я видел что сталкер запустился на FX5600.
Жалкое, душераздирающее зрелище.
Я ориентируюсь на шестую серию гефорсов и радионы 9600-9800.
Я полагаю это необходимый достаточный минимум. Ниже уже некуда просто, это и так 2004 год.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 05-02-2014 в 17:50:

Цитата:
Дядя Миша писал:
Ниже уже некуда просто, это и так 2004 год.

Во многих ноутах стоят интелы.
В новой волатиле я буду ориентироваться на GeForce 8800 и выше, плюс статичный fallback-renderer для старых видимокарт, включая ривутнт. Думаю, это самый оптимальный вариант.

__________________

xaerox on Vivino


Отправлено nemyax 05-02-2014 в 17:53:

Дядя Миша
Развесовку сделаешь под эту лавочку?


Отправлено XaeroX 05-02-2014 в 17:55:

nemyax
Ты вон под волатилу год назад развесовку выпросил - ну и где твои модели?

__________________

xaerox on Vivino


Отправлено nemyax 05-02-2014 в 17:58:

Все модели живут в привате =)


Отправлено Дядя Миша 05-02-2014 в 18:20:

Цитата:
XaeroX писал:
По настоятельной просьбе Дяди Миши


Спасиба

Цитата:
XaeroX писал:
плюс статичный fallback-renderer для старых видимокарт, включая ривутнт.

Да мне такое и писать не надо - рендер движка и есть статичный фаллбэк. И упасть в него можно вообще в любой момент, равно как и вернутся обратно.

Цитата:
nemyax писал:
Развесовку сделаешь под эту лавочку?

Я себе весьма смутно представляю как это сделать не нарушая формата.
C++ Source Code:
1
typedef struct
2
{
3
  char		name[64];
4
 
5
  int		type; // UNUSED
6
  float		boundingradius; // UNUSED
7
 
8
  int		nummesh;
9
  int		meshindex;
10
 
11
  int		numverts;		// number of unique vertices
12
  int		vertinfoindex;	// vertex bone info
13
  int		vertindex;	// vertex vec3_t
14
  int		numnorms;		// number of unique surface normals
15
  int		norminfoindex;	// normal bone info
16
  int		normindex;	// normal vec3_t
17
 
18
  int		numgroups;	// UNUSED
19
  int		groupindex;	// UNUSED
20
} mstudiomodel_t;
21
 
22
typedef struct
23
{
24
  int		numtris;
25
  int		triindex;
26
  int		skinref;
27
  int		numnorms;		// per mesh normals
28
  int		normindex;	// UNUSED!
29
} mstudiomesh_t;

В принципе неиспользуемых переменных в mstudiomodel_t достаточно, чтобы схоронить и развесовку и доп. вертексы, но глкомманды я менять не могу. Можно попробовать сохранить их по типу лайтстилей:
C++ Source Code:
byte *pvertbone = ((byte *)m_pStudioHeader + pSubModel->vertinfoindex);
byte *pvertbone2 = ((byte *)m_pStudioHeader + pSubModel->vertinfoindex) * pSubModel->numverts;
byte *pvertbone3 = ((byte *)m_pStudioHeader + pSubModel->vertinfoindex) * pSubModel->numverts * 2;

но мне представляется это не слишком удобным. К тому же тогда в mstudiomesh_t не останется места для реализации глаз.
Да и вообще я потихоньку отхожу от фичекрипинга на ровном месте.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 06-02-2014 в 10:15:

Цитата:
Дядя Миша писал:
Это конечно не наши проблемы, но почему я должен поддерживать всякие FX5200 и GF440? Ну да, я видел что сталкер запустился на FX5600.
Жалкое, душераздирающее зрелище.

Сталкер лучше всего выглядел как раз в том виде, когда его могла вытянуть FX5600.


Отправлено Дядя Миша 06-02-2014 в 16:06:

Я знаю, что сталкер лучше всего выглядит именно на статике. Думаешь почему я не спешу отказываться от лайтмап?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 06-02-2014 в 16:25:

>> Я знаю, что сталкер лучше всего выглядит именно на статике. Думаешь почему я не спешу отказываться от лайтмап?

Какая тут связь? Сталкер на движке ксаша штоле ?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено tolerance 06-02-2014 в 16:35:

Цитата:
FiEctro писал:
Какая тут связь? Сталкер на движке ксаша штоле ?

Вот именно , особенно когда лайтмапы в Xash'е такие:
http://www.picshare.ru/uploads/140103/Gjsntec3dH.jpg


Отправлено Дядя Миша 06-02-2014 в 19:20:

Да, сталкера и метро тоже будем на ксаше делать

Добавлено 06-02-2014 в 23:20:

И возвращаясь к теме хардварного скиннинга. Я начитался всяких статей по оптимизации и решил изучить это дело подробно. В частности, например утверждается, что стрипы работают быстрее фанов.
Ну это понятно почему происходит - стрипы более эффективно используют место, в результате в вертексный кэш влезает больше вертексов, а значит и скорость их обработки выше - за счёт того, что нам не надо трансформировать дважды (а то и трижды) уже оттрансформированные треугольники. Реализаций построения strip-sequence существует две штуки: NvTriStrip и TriStripper. Я не говорю, что нету каких-то других реализаций, просто на гей-деве рекомендует именно эти. Про них упоминается в лекции по повышению производительности, про них же упоминается в подсказках.
Три-стрип я качать не стал, поскольку это оффлайн-тулза, работает как и все тулзы от нвидии крайне неторопливо (я помню как nvdxt жевала текстуры по 20 секунд). Поэтому я сразу перешёл к проверке Tri STripper.
Тулза написана отвратительно. Во первых в качестве стандартных аргументов она принимает исключительно std::vector. Я мигом догадался, что её писали мудаки, после чего уже не рассчитывал на какие-либо прорывы. Так и оказалось . Эта зараза трудилась над многими моделями порядка 40-50 секунд, но на некоторых модельках проскакивала за тысячные доли секунды. Никакого прироста она мне так же не дала.
Тогда я подумал, что стрипы - это не самоцель, а всего лишь один из методов оптимизации вертексного кэша, что и являлось моей конечной целью. Тогда я скачал простейшую программку vcacheopt, реализованную в одном-единственном хидере. Программка тоже мудацкая, тоже хочет std::vector на вход. Ну да ладно. И вот какие интересные результаты она мне показала: 1 промах кэша на меш любого размера. Понимаете?
Ведь халфовские модели изначально содержат фан-стрип секвенции, для максимального увеличения производительности. Не стоит однако думать, что это изобретение самой вальвы. Код этот был написан Кармаком еще для первого квейка. Тем не менее меня полученный результат вполне удивил, поскольку еденичный промах кэша на моделях любого размера - это просто идеальный результат, вполне возможно я где-то ошибся при инициализации программы. Я еще раз всё перепроверил и отрисовал модельку с уже изменёнными индексами - модель не покорёжилась, фпс не изменился. Тогда я подумал, что возможно сам код неочень корректный и скачал Одну из версий реализации кода Linear-Speed Vertex Cache
Optimization от Tom Forsyth. Я честно игрался с размером вертексного кэша, но ни в одном случае не получил ни прироста ни падения фпс.

На основании проведённых исследований считаю возможным сделать заявление: халфовские модели достаточно неплохо оптимизированы для минимизации промахов вертексного кэша и любые сторонние оптимизации здесь излишни.
Впрочем, моё исследование нельзя признать совсем уж объективным - ведь я проводил его только на одной видеокарте. Ну чтож, давайте еще немного потестируем - я выложил в соседней теме очередное обновление бенчмарка.
Правила тестирования таковы:
1. запускаем бенчмарк, замеряем FPS в Hardware Mode.
2. выходим из программы (именно так! никаких рестартов и перезагрузок карты), открываем config.cfg и находим строчку vcache_size. По умолчанию она равна 32. Допустимые значения 10 - 64. Попробуйте подставить в переменную следующие значения: 10, 16, 24, 32, 48, 64. После каждого изменения следует сохранить config.cfg, запустить бенчмарк и замерить FPS в Hardware mode.
3. Если вы обнаружите серъезные отличия в FPS, ну например у вас было 100 фпс при vcache_size 32 и вдруг стало 180 FPS при vcache_size 10, то обязательно отпишитесь об этом. Если же при любых изменениях vcache_size результат колеблется в пределах 5-10 фпс, то сообщать об этом не следует, т.к. это укладывается в пределы погрешности.

Сразу предупреждаю - с большой долей вероятности никаких изменений большинство из вас не заметит. С меньшей долей вероятности могу сказать, что изменений не будет ни у кого, поскольку, повторюсь, студиомодельки изначально имеют оптимальный порядок следования вертексов и индексов, который не нуждается ни в каких дополнительных оптимизациях. При этом остаётся открытым вопрос, каким же образом ребята с гей-дева таки получали ощутимый прирост, который заметен не на словах, а вполне на деле (есть демка в соответствующей теме, её можно скачать и убедиться самому). Но тут у меня два дополняющих варианта. Во первых все эти изыскания по производительности проводились в 2005-2006 годах и как следствие ситуация могла в чём-то измениться. А во вторых, тамошний народ обожает юзать текстовые некомпилированные модели, например формата OBJ. Это просто такой дамп треугольников, навроде SMD. Кстати SMD они тоже любят грузить самостоятельно. Я ни разу не видел, чтобы кто-то где-то юзал mdl, но зато есть статьи посвящённые загрузке SMD движком. Откуда такая любовь к сырью - понимать отказываюсь. Возможно это doom головного мозга.
Ну так вот - возвращаясь к проблеме, модели такого типа, естественно не имеют ровным счётом никаких оптимизаций, это просто накиданные как попало треугольники и после прогонки этой кучи через оптимизатор, получение положительных результатов становится вполне реальным.
Чего не скажешь о халфовских студиомоделях.

Ну вроде всё сказал, тестируем, отписываемся, в случае получения каких-либо положительных результатов.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено nemyax 06-02-2014 в 19:34:

Цитата:
Дядя Миша писал:
OBJ. Это просто такой дамп треугольников

Не обязательно треугольников.


Отправлено Дядя Миша 06-02-2014 в 19:42:

Индексы в OBJ пишутся? Или самому надо генерить?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 06-02-2014 в 19:45:

Цитата:
Дядя Миша писал:
Откуда такая любовь к сырью - понимать отказываюсь. Возможно это doom головного мозга.

Ларчик, как всегда, открывается просто. MDL - проприетарный формат Valve, и его запрещено использовать в сторонних движках. Признайся, ты думал, что я в волатиле свой формат моделей из вредности или из тупости придумал?
Я, честно говоря, сколько ни читал про эти оптимизации под кэш - так и не нашёл информации об их пользе на более или менее современном железе. Вроде как размер кэша на Unified shader architecture не ограничен, и все эти "идеальные цифры" - просто результат тестов на предмет "с каким магическим числом работает лучше".

Добавлено 07-02-2014 в 02:45:

А вообще молодец, что начал статьи читать. Это полезное дело. Раньше ты надо мной смеялся, мол, зачем это всё читать, я вон лучше в сорцах чьих-нибудь погляжу, а теперь видишь как.
Единственное, что я хочу сказать - актуальность статей 10-летней давности и более ранних зачастую под вопросом.

__________________

xaerox on Vivino


Отправлено nemyax 06-02-2014 в 20:01:

Цитата:
Дядя Миша писал:
Индексы в OBJ пишутся? Или самому надо генерить?

Там они подразумеваются. Тупо строчка за строчкой с токеном "v".
Цитата:

v -0.5 0.5 -0.5
v -0.120537996 -0.137472004 0.519999981
v -0.120537996 -0.102374002 0.519999981
v 0.0694542006 0.136417001 0.519999981
...

И соответственно у полигонов:
Цитата:

f 2 5 6 1
f 2 3 4 1 6 5
f 7 17 16 15 14 13 12 11 10 9 8
...



Добавлено 07-02-2014 в 00:01:

Цитата:
XaeroX писал:
Я, честно говоря, сколько ни читал про эти оптимизации под кэш - так и не нашёл информации об их пользе на более или менее современном железе.

В волатиловских модельках не будет этой оптимизации?


Отправлено Дядя Миша 06-02-2014 в 20:52:

Цитата:
XaeroX писал:
MDL - проприетарный формат Valve, и его запрещено использовать в сторонних движках

Может с сорсовским форматом дело именно так и обстоит, но первохалфвоский формат моделек юзают довольно многие и никому ничего за это не было. Да и как он может быть проприетартным, ежели по нему есть полные спеки. Частично это alias из первокваки, частично структуры из древного 3д-макса. Я так это понимаю.
Цитата:
XaeroX писал:
Признайся, ты думал, что я в волатиле свой формат моделей из вредности или из тупости придумал?

Вообще не задумывался. Ну придумал и придумал.
Цитата:
XaeroX писал:
А вообще молодец, что начал статьи читать. Это полезное дело. Раньше ты надо мной смеялся, мол, зачем это всё читать, я вон лучше в сорцах чьих-нибудь погляжу, а теперь видишь как.

Очевидно, что я начал читать эти статьи тогда, когда не нашёл ответа в сорцах
Сорцы для меня попрежнему приоритетнее статей, поскольку на словах можно рассуждать как угодно, а практическая реализация порой имеет с этим мало общего. Не доверяю я словам.
Цитата:
XaeroX писал:
Единственное, что я хочу сказать - актуальность статей 10-летней давности и более ранних зачастую под вопросом.

Я это учитывал при свои исследованиях, разумеется.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 06-02-2014 в 21:13:

Цитата:
nemyax писал:
В волатиловских модельках не будет этой оптимизации?

Почему не будет? Она уже давно есть, на старых видимокартах она может что-то давать.
Цитата:
Дядя Миша писал:
Да и как он может быть проприетартным, ежели по нему есть полные спеки.

Нет никаких спек. Есть сорцы в составе хлсдк, защищённые проприетарной лицензией.
Цитата:
Дядя Миша писал:
первохалфвоский формат моделек юзают довольно многие и никому ничего за это не было

В России все воруют - что ж теперь?

__________________

xaerox on Vivino


Отправлено Дядя Миша 07-02-2014 в 16:02:

Цитата:
XaeroX писал:
В России все воруют - что ж теперь?

И чтож теперь? Не воровать что ли?

Добавлено 07-02-2014 в 20:02:

Товарищи, вот объясните мне что у вас с головой?
Пишу прямым текстом:
Цитата:
Дядя Миша писал:
Если же при любых изменениях vcache_size результат колеблется в пределах 5-10 фпс, то сообщать об этом не следует, т.к. это укладывается в пределы погрешности.

Цитата:
Дядя Миша писал:
тестируем, отписываемся, в случае получения каких-либо положительных результатов.


Два раза написал - если нету изменений, то отписываться не надо.
И что вы пишите?
Цитата:
nemyax писал:
В тесте с жонглированием размером кеша во всех случаях (10, 16, 24, 32, 48, 64) около 467.

Цитата:
LokiMb писал:
318 во всех случаях

Цитата:
Government-Man писал:
Попробовал разные размеры кэша - ФПС около 647 и не меняется.

Ну ладно бы, фанат лошадок с головой не дружил, нео ведь серъезные уважаемые люди не способны ВДУМЧИВО ОСОЗНАТЬ ПРОЧИТАННОЕ.
Я не знаю, вы может посты набиваете? Или это какой-то коллективный разум?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 07-02-2014 в 16:05:

Цитата:
Дядя Миша писал:
И чтож теперь? Не воровать что ли?

Ты, как всегда, читаешь мои мысли.

Добавлено 07-02-2014 в 23:05:

Цитата:
Дядя Миша писал:
Ну ладно бы, фанат лошадок с головой не дружил, нео ведь серъезные уважаемые люди

Так они все фанаты лошадок небось.

__________________

xaerox on Vivino


Отправлено Government-Man 07-02-2014 в 16:52:

Цитата:
XaeroX писал:
Так они все фанаты лошадок небось.


Я фанат джигурды

Цитата:
Дядя Миша писал:
Два раза написал - если нету изменений, то отписываться не надо.


Как бы ты тогда узнал, действительно ли нет изменений, или же мы все дружно забили на тестирование?


Отправлено Дядя Миша 07-02-2014 в 17:01:

Цитата:
Government-Man писал:
Как бы ты тогда узнал, действительно ли нет изменений, или же мы все дружно забили на тестирование?

Я уже получил результаты и сделал выводы. Этот тест - опциональный.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено nemyax 07-02-2014 в 17:44:

Цитата:
XaeroX писал:
Так они все фанаты лошадок небось.

Нет, только Кика Бутовского. Видимо, влияет =(


Отправлено Government-Man 07-02-2014 в 17:58:

Цитата:
Дядя Миша писал:
Я уже получил результаты и сделал выводы. Этот тест - опциональный.


А ну прости тогда нас за нашу коллективную тупость.


Отправлено Дядя Миша 07-02-2014 в 18:19:

Да, вам что ни говори - серавно по своему сделаете

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 23:04.
Показать все 60 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024