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

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- Кастомный VRAD, исправление освещения в HL2: Update (https://hlfx.ru/forum/showthread.php?threadid=5442)


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

Кастомный VRAD, исправление освещения в HL2: Update

Там очень много убогих случаев когда лампа дневного света на стене якобы светит с разбросом 45-60 градусов, чётким кругом света, и не прямо перед собой а скажем вниз на 45 градусов или даже вертикально вниз.

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

Предполагается что лайт, спот и проп вблизи друг друга связаны по смыслу, поэтому создаются списки энтитей которые затем фильтруются так чтобы у пропа был либо просто лайт либо просто спот. Спот потом выравнивается по направлению пропа.

В общем-то работает, по крайней мере явных несуразностей не бросается в глаза. Хотя у меня тоже встречаются люминисцентные лампы на стене которые светят вниз, но это простительно для кода который не ориентируется (пока?) по именам пропов, а применяет один алгоритм на всех. Выкладываю чтобы создать привычку показывать свои работы.


Отправлено Crystallize 25-01-2020 в 18:33:

Было


Отправлено Crystallize 25-01-2020 в 18:34:

Стало


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

Афтар маладец за проделаную работу!

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 06-04-2020 в 17:44:

Поменял алгоритм, теперь заранее составляется три таблички для пропов изображающих лампы разного типа, и поэтому спот может стать лайтом или двойным спотом с разными углами если рядом с ним располагается лампа накаливания или лампа дневного света соответственно.


Отправлено Дядя Миша 06-04-2020 в 18:43:

Так, а это вообще зачем?

__________________
My Projects: download page

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

Цитата:

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


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

Вальвовское освещение выглядит странно.
Да и я думал, вдруг будет какой-то вау-эффект в результате.
Ну и практика кодинга. Ради геймплея это не так интересно, а вот ради графона поприкольнее.


Отправлено Дядя Миша 06-04-2020 в 21:05:

Там же линеар, квадратик и кубик затухание. Может надо было просто их настроить?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 07-04-2020 в 01:27:

Дядя Миша Ну ты глянь самую первую картинку: лампа дневного света которая по своей природе должна иметь внешний угол распространения градусов 200-250, изображена спотом у которого внешний конус в 2-3 раза меньше. Как ты такое затуханием исправишь? В тоннелях они натыкали лайтов на ровном месте (толи чтобы темноты не было толи у них якобы кислота светится), в канализации в каждом отверстии наружу - у них поставлен спот светящий вертикально вниз, толи чтобы сэмитировать адаптицию зрения, толи для красоты просто.
Т.е. дизайн помещений и расстановка пропов-лампочек диктовали некие рамки того каким получится освещение на локации, но Валв видимо не хотели от этого зависеть. В большинстве случаев, видимо, локации получались для них слишком тёмными. Но они не стали, там, менять квадратичное затухание на линейное, а просто втыкали спот в каждый угол который казался им слишком тёмным. Ну и в результате получилось такое пресное, унылое освещение.


Отправлено Дядя Миша 07-04-2020 в 07:31:

Ты сам-то будешь это использовать?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 07-04-2020 в 09:48:

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


Отправлено Crystallize 08-04-2020 в 17:59:

Сабж


Отправлено Crystallize 11-10-2020 в 18:38:

трейс в враде не такой продвинутый как в хл1, возвращает только 0 и 1 поэтому приходится выкручиваться

C++ Source Code:
1
AngleVectors( QAngle( 0, relocpropang[i].y, 0 ), &relocnormal );
2
VectorMA( relocproporg[i], 50, relocnormal, start );
3
start4.DuplicateVector( start );
4
stop4.DuplicateVector( start + Vector( 0, 0, 4096 ) );
5
// returns 1 if the ray sees the sky
6
TestLine_DoesHitSky ( start4, stop4, &fractionVisible );
7
 
8
if( TestSignSIMD( CmpGtSIMD( fractionVisible, Four_Zeros ) ) )
9
{
10
  // fiv: traced to sky;
11
  //relocpropang[i].x = -89; // 90 will be confused with fluors!
12
  printf( "reloc %i pos %.f %.f outside: %.4f\n", i, relocproporg[i].x, relocproporg[i].y, fractionVisible.m128_f32[0] );
13
}
14
else
15
{
16
  printf( "reloc %i pos %.f %.f %.f inside: %.4f\n", i, relocproporg[i].x, relocproporg[i].y, relocproporg[i].z, fractionVisible.m128_f32[0] );
17
  start4.DuplicateVector( relocproporg[i] );
18
  //trace fwd
19
  float ln=0;
20
  for( ln=0; ln<999; ln++ )
21
  {
22
    //outputs 1 in fractionVisible if no occlusion
23
    VectorMA( relocproporg[i], ln, relocnormal, stop );
24
    stop4.DuplicateVector( stop );
25
    TestLine ( start4, stop4, &fractionVisible );
26
    if( !TestSignSIMD( CmpGtSIMD( fractionVisible, Four_Zeros ) ) ) break;
27
  }
28
  printf( "reloc %i traced for %.f fwd to %.f %.f %.f\n", i, ln, stop.x, stop.y, stop.z );
29
 
30
  // and now trace up
31
  start += ( stop - start ) / 2;
32
  start4.DuplicateVector( start );
33
  stop=start;
34
  for( ln=0; ln<999; ln++ )
35
  {
36
    //outputs 1 in fractionVisible if no occlusion
37
    stop.z += ln;
38
    stop4.DuplicateVector( stop );
39
    TestLine ( start4, stop4, &fractionVisible );
40
    //printf( "reloc %i traced for %.f up to %.f %.f %.f\n", i, ln, stop.x, stop.y, stop.z );
41
    if( !TestSignSIMD( CmpGtSIMD( fractionVisible, Four_Zeros ) ) ) break;
42
  }
43
  printf( "reloc %i traced for %.f up to %.f %.f %.f\n", i, ln, stop.x, stop.y, stop.z );
44
  relocproporg[i] = stop-Vector( 0, 0, 10 );
45
 
46
  //printf( "reloc %i pos %.f %.f fwd wall: %.4f\n", i, relocproporg[i].x, relocproporg[i].y, fractionVisible.m128_f32[0] );
47
 
48
  //relocpropang[i].x = -89; // 90 will be confused with fluors!
49
}


Добавлено 12-10-2020 в 01:35:

вот эта замута с ln<999 нужна чтобы for вообще работал. Я не могу указать там 2 параметра или вставить TestSignSIMD в условие.

Добавлено 12-10-2020 в 01:38:

Кстати если указать define LOL = 0 а потом проверить if( LOL ) то тоже пошлёт, нужна именно проверка на цифру. Но если значение не 0 то проблем не возникает.


Отправлено Дядя Миша 11-10-2020 в 20:17:

Цитата:
Crystallize писал:
трейс в враде не такой продвинутый как в хл1, возвращает только 0 и 1 поэтому приходится выкручиваться

трасса по определению бинарна, либо 0, либо 1. Ну да, в халфе еще возвращается тип контентса - SKY, это очень удобно.

А ты что сделал?

Добавлено 11-10-2020 в 23:17:

Цитата:
Crystallize писал:
вот эта замута с ln<999 нужна чтобы for вообще работал


while( 1 ) не?

ну или for( ;; ) если тебе while( 1 ) не нравится.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 12-10-2020 в 04:28:

Цитата:
Дядя Миша писал:
трасса по определению бинарна, либо 0, либо 1. Ну да, в халфе еще возвращается тип контентса - SKY, это очень удобно.

В халфе ещё был fraction.

Цитата:
Дядя Миша писал:
А ты что сделал?

Да ищу середину потолка в комнате, трейс горизонтально по yaw и потом от половины этого расстояния-вверх. Габариты текущего лифа как-то можно найти?

Цитата:
Дядя Миша писал:
while( 1 ) не?

с for можно в ту же строчку запихнуть как минимум скорость инкремента ну и условие выхода в идеале.


Временная зона GMT. Текущее время 15:07. Страницы (4): [1] 2 3 4 »
Показать все 53 сообщений этой темы на одной странице

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