HLFX.Ru Forum Страницы (264): « Первая ... « 134 135 136 137 [138] 139 140 141 142 » ... Последняя »
Показать все 3960 сообщений этой темы на одной странице

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)


Отправлено Crystallize 31-12-2019 в 17:33:

Цитата:
Дядя Миша писал:
они уже записаны в энтитях. Не благодари.

в массиве &entities который перебирается при поиске различных лайтов, никаких проп-статиков уже нету. Их оттуда заранее отфильтровывают и кладут вместе с мировыми полигонами, кажется.


Отправлено Crystallize 06-01-2020 в 19:01:

Я в VRAD читаю массивы обычных Vector и некий небольшой но значительный процент значений оказывается -2147483648. Во-первых, как это детектировать? Сравнение if x < -99999 не помогает. Во-вторых, можно ли эти значения прочитать правильно? И как возникают они? Координата в мап-файле записана без точки, как целое, и при чтении во флоат что-то происходит?


Отправлено Crystallize 14-01-2020 в 17:45:

Читаю углы пропсов и ориентирую лайтспоты соответствующим образом.
В какой-то момент перестало работать и не хочет чиниться. Читаешь с пропса угол 90 0 0, назначаешь его споту а он светит на стенку. Мне так и надо, но ведь 90 0 0 это вертикально вверх, какая стенка?
При том, что в Хаммере при 90 0 0 спот реально встаёт вертикально вверх, а на стенку уходит синяя палочка, видимо ролл.
И да, я помню что ненулевые питч и яв оверрайдят соотв компоненты вектора. И про недавний прикол с моими векторами тоже не забыл.

Вот такой код, нас интересует аксиальный случай т.к. неаксиальный работает правильно:

C++ Source Code:
1
if ( g_bFixFakeLights && bSpotlight )//new code, lightspots only
2
{
3
  if ( fabs( propangle[0] )==0 || fabs( propangle[0] )==90 || fabs( propangle[0] )==180 || fabs( propangle[0] )==270 )
4
  {	//axial: daylight panel, cagelight, hanging down, etc.
5
  printf( "given prop angle %f %f %f becomes ",propangle[0],propangle[1],propangle[2] );
6
 
7
  printf( "%f %f %f\n",propangle[0],propangle[1],propangle[2] );
8
}
9
else
10
{	//projector with arbitrary angles
11
propangle[0] = -propangle[0];
12
}
13
SetupLightNormalFromProps( QAngle( propangle.x, propangle.y, propangle.z ), 0, 0, dl->light.normal );
14
//AngleVectors ( QAngle( propangle.x, propangle.y, propangle.z ), &dl->light.normal );
15
QAngle tmp;
16
VectorAngles( dl->light.normal, tmp );
17
printf( "SNLFP give %f %f %f\n",tmp[0],tmp[1],tmp[2] );
18
}
19
else//old path or lightenv/point
20
{
21
  GetVectorForKey( e, "angles", angles );
22
  pitch = FloatForKey (e, "pitch");
23
  angle = FloatForKey (e, "angle");
24
  SetupLightNormalFromProps( QAngle( angles.x, angles.y, angles.z ), angle, pitch, dl->light.normal );
25
}

Обнаружилось такое: угол 90 0 0 конвертится SetupLightNormalFromProps в нормаль, значит, и потом обратно, выходит 270 180 0
Если SetupLightNormalFromProps поменять на AngleVectors то на выходе будет 90 180 0
Вроде оба варианта какой-то бред.
Угол 0 90 0 в обоих случаях возвращается без изменений, ну разве что питч инвертируется.
Саму SetupLightNormalFromProps я еле нашёл, её файл с кодом не добавлен в проект.
C++ Source Code:
1
void SetupLightNormalFromProps( const QAngle &angles, float angle, float pitch, Vector &output )
2
{
3
  if (angle == ANGLE_UP)
4
  {
5
    output[0] = output[1] = 0;
6
    output[2] = 1;
7
  }
8
  else if (angle == ANGLE_DOWN)
9
  {
10
    output[0] = output[1] = 0;
11
    output[2] = -1;
12
  }
13
  else
14
  {
15
    // if we don't have a specific "angle" use the "angles" YAW
16
      if ( !angle )
17
      {
18
        angle = angles[YAW];
19
      }
20
 
21
    output[2] = 0;
22
    output[0] = (float)cos (angle/180*M_PI);
23
    output[1] = (float)sin (angle/180*M_PI);
24
  }
25
 
26
  if ( !pitch )
27
  {
28
    // if we don't have a specific "pitch" use the "angles" PITCH
29
      pitch = angles[PITCH];
30
  }
31
 
32
  output[2] = (float)sin(pitch/180*M_PI);
33
  output[0] *= (float)cos(pitch/180*M_PI);
34
  output[1] *= (float)cos(pitch/180*M_PI);
35
}

Я не врубаюсь почему у них из одного параметра выходят 2-3 угла в разных плоскостях.

AngleVectors у них такая:
C++ Source Code:
1
void AngleVectors (const QAngle &angles, Vector *forward)
2
{
3
  Assert( s_bMathlibInitialized );
4
  Assert( forward );
5
 
6
  float	sp, sy, cp, cy;
7
 
8
  SinCos( DEG2RAD( angles[YAW] ), &sy, &cy );
9
  SinCos( DEG2RAD( angles[PITCH] ), &sp, &cp );
10
 
11
  forward->x = cp*cy;
12
  forward->y = cp*sy;
13
  forward->z = -sp;
14
}


Отправлено Дядя Миша 14-01-2020 в 20:35:

Цитата:
Crystallize писал:
Читаю углы пропсов и ориентирую лайтспоты соответствующим образом.

всё это очень подозрительно.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 16-01-2020 в 06:59:

Там у пропов и у света совершенно разные ск чтоли? С разными нулевыми направлениями и разными направлениями отсчета?

Добавлено 16-01-2020 в 13:59:

Потому что при инверсии питча и ява и добавления 180 в яв, почти все совпало при проверке но по-прежнему дико сломано в игре.


Отправлено Ku2zoff 26-01-2020 в 21:53:

Сегодня экспериментировал в очередной раз с большими картами. Создал параллелепипед высотой почти 32768 юнитов. Прыгал игроком вниз и считал секунды, за сколько он долетит до земли. Пытался таким образом примерно сравнить габариты с картой Sunspire из анрила. Так вот. Создал внизу воду (мировую), скомпилил... Халфа вылетает при попытке загрузить карту. Пробовал воду-энтитю - такой же эффект. Опытным путём пришёл к заключению, что если расположить водный браш или энтитю дальше, чем 8192 юнита от центра карты - халфа вылетит. Ксаш, конечно же, не вылетает. Интересно, что там за фигня такая в движке, что приводит к вылету? Может быть у кого есть идеи?

Добавлено 27-01-2020 в 04:53:

АП: в софтваре не вылетает. Только в OpenGL.


Отправлено Дядя Миша 27-01-2020 в 08:46:

Цитата:
Ku2zoff писал:
Пытался таким образом примерно сравнить габариты с картой Sunspire из анрила

в UT99 макс размер карты тоже +\-32768.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 28-01-2020 в 08:59:

Цитата:
Дядя Миша писал:
в UT99 макс размер карты тоже +\-32768.

У меня +\-16384. И это очень дофига по меркам халфы. Возможно, в анриле действительно +\-32768 UU, я не смог нигде этого нагуглить. У меня почему возникли мысли сравнить размеры? После обсуждений и сравнений у1 и ку2, я решил пройти у1. Дошёл до небесного города, а перед ним насмотрелся на солнечный шпиль. Особенно впечатлило, как скаржи, столкнутые попаданием из ASMD ооочень долго падают в лаву. Решил попробовать сделать нечто подобное в халфе. Учитывая, насколько в анриле размазаны текстуры на сабжевой карте, я думаю, что её можно сделать под халфу, не уперевшись в лимиты BSP. С парой хаков, конечно, но тем не менее.


Отправлено Дядя Миша 28-01-2020 в 09:39:

Цитата:
Ku2zoff писал:
я не смог нигде этого нагуглить

Скаржа спроси.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 30-01-2020 в 18:24:

Я сделяль

https://i.imgur.com/A232hAy.jpg

https://i.imgur.com/v8W1Ubf.jpg

https://i.imgur.com/IXAPHN9.jpg

Причём без всяких мартиц, вьюпортов и прочей шняги.

Добавлено 31-01-2020 в 01:24:

Если кому надо, напишу тутор.


Отправлено Дядя Миша 30-01-2020 в 18:42:

Цитата:
Ku2zoff писал:
Причём без всяких мартиц, вьюпортов и прочей шняги.

Добавлено завтра в 01:24:

Если кому надо, напишу тутор.

По фотошопу?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 30-01-2020 в 18:56:

Цитата:
Дядя Миша писал:
По фотошопу?

Не, я не умею в фотошоп.


Отправлено Luciferchik 30-01-2020 в 21:50:

Дядя Миша вопрос по компилятору моделей, как сделать чтоб он не уменьшал размеры текстуры? Вот хочу юзать 1024х1024 на ксаше, а оно мне её до 512х512 снижает

__________________
Sometimes you have to get knocked down lower than you've even been to stand up taller than you everwere.
You so sad. No, i just die everyday...
I can't do anything around here without everybody getting up in my shit...
The aim of life is self-development.


Отправлено thambs 30-01-2020 в 21:51:

Ku2zoff
Красиво, полезная фича.

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено Ku2zoff 30-01-2020 в 22:05:

thambs я давно хотел сделать. Всё-таки получилась не без багов, иногда уголки съезжают слишком далеко к краям экрана, когда энтитя совсем близко. Но это мелочь, мне лень тащить код из ксашмода, да ещё адаптировать его для халфы. Осталось сделать чтобы можно было так же выделять студиомодели, и будет готово.


Временная зона GMT. Текущее время 04:33. Страницы (264): « Первая ... « 134 135 136 137 [138] 139 140 141 142 » ... Последняя »
Показать все 3960 сообщений этой темы на одной странице

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