HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- VampireSDK (https://hlfx.ru/forum/showthread.php?threadid=2435)
Отправлено XaeroX 18-06-2011 в 21:20:
Цитата:
fire64 писал:
преобразование 16 битного типа во float
Это ужасно.
Они про half-float не слышали?__________________
Отправлено fire64 18-06-2011 в 21:34:
Кроме того, в заголовке модели, в структуре studiohdr_t находятся 2 вектора смещения, первый вектор, координаты точки, второй координаты нормаля.
Так вот, при создании вертексов, их координаты умножаются на эти векторы.
Зачем это сделано, я хз.
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено Дядя Миша 19-06-2011 в 07:47:
Вот это вот хранение флоатов в одном байте, оно еще с первокваки тянется.
Цитата:
fire64 писал:
Так вот, при создании вертексов, их координаты умножаются на эти векторы.
Зачем это сделано, я хз.
ну очевидно же, чтобы остаток влез в 1 байт с достаточной точностью.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено fire64 19-06-2011 в 08:43:
Для сравнения:
Структура хранения вертексов для моделей беты
C++ Source Code:
1 | struct mstudioboneweight_t |
13 | struct mstudiovertex_t // NOTE: This is exactly 64 bytes, two cache lines |
15 | mstudioboneweight_t m_BoneWeights; |
18 | Vector2D m_vecTexCoord; |
Структуры хранения вертексов для моделей вампиров
C++ Source Code:
1 | struct mstudiovampvertex0_t |
8 | Vector2D m_vecTexCoord; |
11 | struct mstudiovampvertex1_t |
13 | short m_vecPosition[3]; |
17 | struct mstudiovampvertex2_t |
19 | byte m_vecPosition[3]; |
20 | byte m_vecNormalXY[2]; |
Добавлено 19-06-2011 в 12:43:
Только что проверил, вертексы успешно грузятся.
Теперь займусь разбором треугольников.
На скриншоте отображены точки модели ножа.__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено Дядя Миша 19-06-2011 в 09:13:
fire64 ну я же говорю - это попытка ужать объем данных. Вертексов много и они занимают много места. А если хранить вместо двенадцати байт три, то сжатие в 4 раза получается.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено fire64 19-06-2011 в 09:42:
Дядя Миша, а в Troika Games вообще были помешаны, на уменьшении объема данных.
Чего только стоит их формат TTZ файлов, которые на самом деле, представляют собой, обычный VTF сжатый Gzip'ом.
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено Дядя Миша 19-06-2011 в 14:32:
fire64 а сколько вся ихняя игра весила?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено qishmish 19-06-2011 в 15:31:
три диска если в упаковке на харде не помню
__________________
Dr. Bowman: "So what was it?"
Sly: "Anachronox! Man, you guys are dumb."
Dr. Bowman: "But... You said it started with a 'U'."
Sly: "Yeah I know."
Отправлено fire64 20-06-2011 в 19:52:
Я наконец-то восстановил структуру для хранения костей:
C++ Source Code:
5 | inline char * const pszName( void ) const { return ((char *)this) + sznameindex; } |
6 | int parent; // parent bone |
7 | int bonecontroller[6]; // bone controller index, -1 == none |
8 | // FIXME: remove the damn default value fields and put in pos |
15 | matrix3x4_t poseToBone; |
16 | Quaternion qAlignment; |
19 | int procindex; // procedural rule |
20 | mutable int physicsbone; // index into physically simulated bone |
21 | inline void *pProcedure( ) const { if (procindex == 0) return NULL; else return (void *)(((byte *)this) + procindex); }; |
22 | int surfacepropidx; // index into string tablefor property name |
23 | inline char * const pszSurfaceProp( void ) const { return ((char *)this) + surfacepropidx; } |
24 | int contents; // See BSPFlags.h for the contents flags |
Добавлено 20-06-2011 в 23:52:
Что самое удивительное. вампировский формат имеет намного больше общего с MDL от Half-Life, чем с кодом из беты__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено Дядя Миша 20-06-2011 в 20:03:
за 'else return' как дам по глупой голове 
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено fire64 20-06-2011 в 20:25:
Дядя Миша, а мне то за что ?
Это же копипаста из studio.h 44 версии, за авторством valve.
Я просто оттуда, кое что убрал.
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено IPwnMice 21-06-2011 в 11:26:
Дядя Миша, а что не так с else return?
Отправлено Дядя Миша 21-06-2011 в 12:23:
Цитата:
IPwnMice писал:
а что не так с else return?
ну это всё равно что "масло масляное" или "клеющий клей".
не нужен там else совершенно.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено IPwnMice 21-06-2011 в 13:45:
Дядя Миша, это скорее не "масло масляное", а какое-то "присутствие отсутствия".
Отправлено fire64 30-06-2011 в 10:31:
Никогда не понимал. тотальное игнорирование обществом, данного проекта.
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей