![]() |
Страницы (246): « Первая ... « 184 185 186 187 [188] 189 190 191 192 » ... Последняя » Показать все 3687 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)
Там ведь и табличка имеется
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 |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
А чем обосновано то, что в Халве BOOL по факту int? У этого есть какой то практический смысл?
Это не практический смысл, а исторический. Не всё поддаётся логическому объяснению, надо знать историю.
В чистом Си вообще не было переменной 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'
Спасибо за исторический экскурс! )
В Сорсе вроде как студиомодели освещаются в один момент не более чем двумя источниками. Кто-нибудь в курсе, каким образом выбираются эти два источника, и как определяется, не в тени ли модель? Кидаются трассы до всех лампочек, и выбираются самые яркие?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Как вытащить из mdl анимацию? Хочу посчитать тени от моделей, геометрию вытащил, но многие модели повернуты анимацией, а я не могу разобраться, как она записана.
Все анимации в модели анализируются и для 6DOF находятся максимально возможные величины скейлов. Эти значения записываются в структуру костей. При извлечении анимации надо умножать полученные значения на них. Сами анимации точно так же делятся на 6 независимых потоков.
XYZ-pos, XYZ-rot.
1 | typedef struct mstudioanim_s |
2 | { |
3 | unsigned short offset[6]; |
4 | } mstudioanim_t; |
1 | typedef union |
2 | { |
3 | struct |
4 | { |
5 | byte valid; |
6 | byte total; |
7 | } num; |
8 | short value; |
9 | } mstudioanimvalue_t; |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Как правильно повернуть вершины? Прибавить value из mstudioanimvalue_t к value из mstudiobone_t? Или сначала повернуть на одно, потом на другое?
ncuxonaT ты же код студиомоделей смотришь.
Извлечённое значение из анимации надо сперва умножить на скейл из структуры кости. А потом прибавить дефолтное положение скелета.
final = bone->value + anim->value * bone->scale |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша аллилуйя, всё получилось, спасибо!
Как мне правильно отрисовать хулл энтити через опенгл? Начну с того, где взять правильный оригин? cl_entity_t->origin и cl_entity_t->curstate.origin почему-то выдает разные числа. А еще, как повороты учитывать? Я вот скопипастил матрицу трансформации для энтити из ксашмодовской GL_CacheState, каждую вершину хулла умножаю на матрицу, и в итоге оно при повороте энтити куда-то улетает. Не пойму что делать.
__________________
GoldSrc Monitor (https://gamebanana.com/mods/39429)
mdl-flip (gFlip analog) (https://gamebanana.com/tools/7299)
Xash3D Modding Discord (https://discord.com/invite/Ycgd9QqB9z)
PrimeXT (https://github.com/SNMetamorph/PrimeXT)
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
GoldSrc Monitor (https://gamebanana.com/mods/39429)
mdl-flip (gFlip analog) (https://gamebanana.com/tools/7299)
Xash3D Modding Discord (https://discord.com/invite/Ycgd9QqB9z)
PrimeXT (https://github.com/SNMetamorph/PrimeXT)
SNMetamorph так ты XT допиливаешь или что ты делаешь?
Временная зона GMT. Текущее время 23:47. | Страницы (246): « Первая ... « 184 185 186 187 [188] 189 190 191 192 » ... Последняя » Показать все 3687 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2022