HLFX.Ru Forum Страницы (7): « Первая ... « 2 3 4 5 [6] 7 »
Показать все 103 сообщений этой темы на одной странице

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 не слышали?

__________________

xaerox on Vivino


Отправлено 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
2
{
3
  float	weight[4];
4
  short	bone[4];
5
 
6
  short	numbones;
7
  short	material;
8
 
9
  short	firstref;
10
  short	lastref;
11
};
12
 
13
struct mstudiovertex_t // NOTE: This is exactly 64 bytes, two cache lines
14
{
15
  mstudioboneweight_t	m_BoneWeights;
16
  Vector		m_vecPosition;
17
  Vector		m_vecNormal;
18
  Vector2D	m_vecTexCoord;
19
};


Структуры хранения вертексов для моделей вампиров
C++ Source Code:
1
struct mstudiovampvertex0_t
2
{
3
  byte	weight[3];
4
  short	bone[3];
5
 
6
  Vector		m_vecPosition;
7
  Vector		m_vecNormal;
8
  Vector2D	m_vecTexCoord;
9
};
10
 
11
struct mstudiovampvertex1_t
12
{
13
  short		m_vecPosition[3];
14
  short		m_vecNormal[3];
15
};
16
 
17
struct mstudiovampvertex2_t
18
{
19
  byte		m_vecPosition[3];
20
  byte		m_vecNormalXY[2];
21
  byte		m_vecTexCoordU;
22
  byte		m_vecNormalZ;
23
  byte		m_vecTexCoordV;
24
};


Добавлено 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:
1
// bones
2
struct mnewstudiobone_t
3
{
4
  int					sznameindex;
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
9
 
10
  // default values
11
    Vector                          pos;
12
  Quaternion                      quat;
13
  RadianEuler                     rot;
14
 
15
  matrix3x4_t                     poseToBone;
16
  Quaternion                      qAlignment;
17
  int                                     flags;
18
  int                                     proctype;
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
25
};


Добавлено 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:

Никогда не понимал. тотальное игнорирование обществом, данного проекта.

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


Временная зона GMT. Текущее время 17:48. Страницы (7): « Первая ... « 2 3 4 5 [6] 7 »
Показать все 103 сообщений этой темы на одной странице

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