HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Страницы (260): « Первая ... « 184 185 186 187 [188] 189 190 191 192 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

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

Рейтинг



Там ведь и табличка имеется

C++ Source Code:
1
sizeof(int *),		// FIELD_FUNCTION
2
sizeof(int),		// FIELD_BOOLEAN <--
3
sizeof(short),		// FIELD_SHORT
4
sizeof(char),		// FIELD_CHARACTER
5
sizeof(float),		// FIELD_TIME

Но ктож туда заглядывает. Впрочем, можно было бы заменить FIELD_BOOLEAN на FIELD_CHARACTER c тем же результатом.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 31-03-2021 21:11
-
Shapirlic
Житель форума

Дата регистрации: Feb 2011
Проживает: SPb
Сообщений: 351
Возраст: 30

Рейтинг



А чем обосновано то, что в Халве BOOL по факту int? У этого есть какой то практический смысл?

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

Старое сообщение 31-03-2021 21:16
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Это не практический смысл, а исторический. Не всё поддаётся логическому объяснению, надо знать историю.

В чистом Си вообще не было переменной bool. В принципе, поскольку адресация памяти начинается с одного байта, создать единичную переменную такого типа невозможно в принципе.
Она всегда будет занимать места гораздо больше чем это требуется.
Для хранения битовой информации обычно используются флаги, но битовый доступ - лишние такты процессора. Иногда проще реально иметь отдельные переменные, пожертвовав памятью. В чистом Си была распространена практика делать bool из 32-разрядного числа. По идее такие числа на 32 разрядных процессорах имеют максимальную скорость доступа. По крайней мере в те далёкие времена. Традиция осталась.
В С++ Страуструп ввёл в язык переменную bool и принял её равной одному байту. И началась чертовщина, которую необходимо учитывать, когда имеешь дело одновременно с двумя языками.
Поэтому размер bool ВСЕГДА надо проверять, если код не слишком хорошо изучен.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 31-03-2021 21:23
-
Shapirlic
Житель форума

Дата регистрации: Feb 2011
Проживает: SPb
Сообщений: 351
Возраст: 30

Рейтинг



Спасибо за исторический экскурс! )

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

Старое сообщение 31-03-2021 21:55
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



В Сорсе вроде как студиомодели освещаются в один момент не более чем двумя источниками. Кто-нибудь в курсе, каким образом выбираются эти два источника, и как определяется, не в тени ли модель? Кидаются трассы до всех лампочек, и выбираются самые яркие?

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

Старое сообщение 01-04-2021 14:52
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
ncuxonaT писал:
Кто-нибудь в курсе, каким образом выбираются эти два источника, и как определяется, не в тени ли модель?

там виртуальный буффер глубины с разрешением 8х8, вот он проверяет насчёт того, добивает ли свет до объекта. Понятно, на обычных трассах.

Добавлено 01-04-2021 в 18:51:

А я помоему эти трассы утащил впараною, но толком не заюзал.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 01-04-2021 15:51
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Как вытащить из mdl анимацию? Хочу посчитать тени от моделей, геометрию вытащил, но многие модели повернуты анимацией, а я не могу разобраться, как она записана.

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

Старое сообщение 07-04-2021 21:28
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Все анимации в модели анализируются и для 6DOF находятся максимально возможные величины скейлов. Эти значения записываются в структуру костей. При извлечении анимации надо умножать полученные значения на них. Сами анимации точно так же делятся на 6 независимых потоков.
XYZ-pos, XYZ-rot.

C++ Source Code:
1
typedef struct mstudioanim_s
2
{
3
  unsigned short	offset[6];
4
} mstudioanim_t;

вот оффсеты до каждого из потоков.
Поток содержит двойственную информацию. Там либо RLE-данные, либо непосредственно значение анимации.
C++ Source Code:
1
typedef union
2
{
3
  struct
4
  {
5
    byte	valid;
6
    byte	total;
7
  } num;
8
  short		value;
9
} mstudioanimvalue_t;

Ну и дальше поток как бы рулит сам собой. Указываешь номер кадра, для которого нужно получить значение анимации (раздельно для каждой степени свободы). И в цикле ищешь нужный участок, ориентируясь по RLE-информации. См. функцию ExtractAnimValue в той же параное.
Вроде как ничего сложного.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 07-04-2021 21:43
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Как правильно повернуть вершины? Прибавить value из mstudioanimvalue_t к value из mstudiobone_t? Или сначала повернуть на одно, потом на другое?

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

Старое сообщение 08-04-2021 17:16
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



ncuxonaT ты же код студиомоделей смотришь.
Извлечённое значение из анимации надо сперва умножить на скейл из структуры кости. А потом прибавить дефолтное положение скелета.

C++ Source Code:
final = bone->value + anim->value * bone->scale

Из полученных значений надо построить матрицы. Значения анимации - локальные. Т.е. матрицы еще надо перемножить друг на друга, согласно их иерархии. Сортировать кости при этом не требуется, скелет всегда отсортирован.

Добавлено 08-04-2021 в 21:37:

Кстати там потенциальная бага. Из-за сложения углов эйлера может получиться бяка. Но анимации как правило не содержат таких резких поворотов по нескольким осям.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 08-04-2021 18:37
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Дядя Миша аллилуйя, всё получилось, спасибо!

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

Старое сообщение 09-04-2021 16:23
- За что?
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 560

Рейтинг



Как мне правильно отрисовать хулл энтити через опенгл? Начну с того, где взять правильный оригин? cl_entity_t->origin и cl_entity_t->curstate.origin почему-то выдает разные числа. А еще, как повороты учитывать? Я вот скопипастил матрицу трансформации для энтити из ксашмодовской GL_CacheState, каждую вершину хулла умножаю на матрицу, и в итоге оно при повороте энтити куда-то улетает. Не пойму что делать.

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord

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

Старое сообщение 11-04-2021 10:49
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
SNMetamorph писал:
Как мне правильно отрисовать хулл энтити через опенгл?

r_drawentities 5

Добавлено 11-04-2021 в 14:24:

Цитата:
SNMetamorph писал:
каждую вершину хулла умножаю на матрицу

а смысл? Хулл и так в абсолютном пространстве.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 11-04-2021 11:24
-
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 560

Рейтинг



Цитата:
Дядя Миша писал:
r_drawentities 5

Не, мне надо именно накодить это, ибо это все в отдельном инструменте от движка/игры (GoldSrc Monitor)

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord

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

Старое сообщение 11-04-2021 12:24
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4415
Возраст: 34

Рейтинг



SNMetamorph так ты XT допиливаешь или что ты делаешь?

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

Старое сообщение 11-04-2021 13:13
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 14:11. Новая тема    Ответить
Страницы (260): « Первая ... « 184 185 186 187 [188] 189 190 191 192 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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