HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > VampireSDK
Страницы (7): « Первая ... « 2 3 4 5 [6] 7 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35044
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Цитата:
fire64 писал:
преобразование 16 битного типа во float

Это ужасно.
Они про half-float не слышали?

__________________

Сообщить модератору | IP: Записан
Сообщение: 79247

Старое сообщение 18-06-2011 21:20
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



Кроме того, в заголовке модели, в структуре studiohdr_t находятся 2 вектора смещения, первый вектор, координаты точки, второй координаты нормаля.

Так вот, при создании вертексов, их координаты умножаются на эти векторы.

Зачем это сделано, я хз.

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

Сообщить модератору | IP: Записан
Сообщение: 79248

Старое сообщение 18-06-2011 21:34
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33053
Нанёс повреждений: 392 ед.

Рейтинг



Вот это вот хранение флоатов в одном байте, оно еще с первокваки тянется.

Цитата:
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'

Сообщить модератору | IP: Записан
Сообщение: 79253

Старое сообщение 19-06-2011 07:47
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



Для сравнения:

Структура хранения вертексов для моделей беты

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:

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

На скриншоте отображены точки модели ножа.

[ Вложение ]
testsnap.jpg

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

Сообщить модератору | IP: Записан
Сообщение: 79255

Старое сообщение 19-06-2011 08:43
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33053
Нанёс повреждений: 392 ед.

Рейтинг



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'

Сообщить модератору | IP: Записан
Сообщение: 79263

Старое сообщение 19-06-2011 09:13
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



Дядя Миша, а в Troika Games вообще были помешаны, на уменьшении объема данных.

Чего только стоит их формат TTZ файлов, которые на самом деле, представляют собой, обычный VTF сжатый Gzip'ом.

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

Сообщить модератору | IP: Записан
Сообщение: 79266

Старое сообщение 19-06-2011 09:42
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33053
Нанёс повреждений: 392 ед.

Рейтинг



fire64 а сколько вся ихняя игра весила?

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | IP: Записан
Сообщение: 79270

Старое сообщение 19-06-2011 14:32
-
qishmish
Житель форума

Дата регистрации: Jun 2007
Проживает: (void)
Сообщений: 1323

Рейтинг



три диска если в упаковке на харде не помню

__________________
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."

Сообщить модератору | IP: Записан
Сообщение: 79274

Старое сообщение 19-06-2011 15:31
- За что?
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



Я наконец-то восстановил структуру для хранения костей:

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, чем с кодом из беты

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

Сообщить модератору | IP: Записан
Сообщение: 79327

Старое сообщение 20-06-2011 19:52
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33053
Нанёс повреждений: 392 ед.

Рейтинг



за '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'

Сообщить модератору | IP: Записан
Сообщение: 79328

Старое сообщение 20-06-2011 20:03
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



Дядя Миша, а мне то за что ?
Это же копипаста из studio.h 44 версии, за авторством valve.

Я просто оттуда, кое что убрал.

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

Сообщить модератору | IP: Записан
Сообщение: 79329

Старое сообщение 20-06-2011 20:25
- За что?
IPwnMice
ALERRRT!!!
Девойс

Дата регистрации: May 2011
Проживает: Санкт-Петербург
Сообщений: 89
Возраст: 28

Рейтинг



Дядя Миша, а что не так с else return?

Сообщить модератору | IP: Записан
Сообщение: 79342

Старое сообщение 21-06-2011 11:26
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33053
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
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'

Сообщить модератору | IP: Записан
Сообщение: 79345

Старое сообщение 21-06-2011 12:23
-
IPwnMice
ALERRRT!!!
Девойс

Дата регистрации: May 2011
Проживает: Санкт-Петербург
Сообщений: 89
Возраст: 28

Рейтинг



Дядя Миша, это скорее не "масло масляное", а какое-то "присутствие отсутствия".

Сообщить модератору | IP: Записан
Сообщение: 79350

Старое сообщение 21-06-2011 13:45
- За что?
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



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

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

Сообщить модератору | IP: Записан
Сообщение: 79680

Старое сообщение 30-06-2011 10:31
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 23:25. Новая тема    Ответить
Страницы (7): « Первая ... « 2 3 4 5 [6] 7 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > VampireSDK
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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