HLFX.Ru Forum
Показать все 104 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- gl_overbright (https://hlfx.ru/forum/showthread.php?threadid=6019)


Отправлено Crystallize 02-09-2023 в 19:11:

gl_overbright

Смотрел я раньше одно видео про воду на софтварном рендере и обратил внимание как тускнеет лайтмапа при переключении на аппаратный. После некоторых разбирательств оказалось что я знакомился с халвой по билду 2003 года в котором этот самый овербрайт ещё присутствовал, а потом был выпилен где-то ближе к концу 00х (но всё же не сразу на стиме как предполагает автор видео). А я-то думал, почему Ксаш для меня так странно и уныло выглядит и почему больше никто этого не замечает.


Отправлено Decay 03-09-2023 в 09:18:

Пишут что он не работает в новых версиях из-за GL_ARB_multitexture
https://github.com/ValveSoftware/halflife/issues/1891

Фикс через opengl32.dll. Но детальные текстуры отвалятся (не пробовал)
https://www.vogons.org/viewtopic.php?f=8&t=63930

Красиво выглядит!
https://user-images.githubusercontent.com/29983795/193400776-4f2c1c0a-f205-4118-a5cf-061d7c0f9e5c.jpg

Добавлено 03-09-2023 в 16:18:

Upd: это скриншот модифицированного Ксаша.


Отправлено XF-Alien 03-09-2023 в 09:31:

Примерно то, о чем в видео - уже делает VHLT на уровне компиляции. А именно более корректную работу с цветовым наполнением: отвратительных бледных кругов в центральной части световых пятен нет, как и "зеленоватых разводов".

__________________
To start the match, Let's draw the sketch, Then add some magic from your heart!
Take gold and blue, Take silver too and put a sparkle in your art!
I love that dress, I love It, YES!!! I love the way It makes me feel.
I love the shoes, I love to choose, It was a dream and now It's real!


Отправлено Decay 03-09-2023 в 10:47:

Цитата:
Crystallize писал:
оказалось что я знакомился с халвой по билду 2003 года в котором этот самый овербрайт ещё присутствовал


Наверное твоя версия движка проверяет еще старое расширение. А в ней работают детальные текстуры?

Цитата:
but the reason for its presence in older versions of the game is that the engine instead checked for an OpenGL extension string named GL_SGIS_multitexture, and because this string is obsolete and not reported in modern graphics drivers, the engine assumes that multitexturing is not supported.


Отправлено Crystallize 03-09-2023 в 16:34:

Цитата:
XF-Alien писал:
Примерно то, о чем в видео - уже делает VHLT на уровне компиляции. А именно более корректную работу с цветовым наполнением: отвратительных бледных кругов в центральной части световых пятен нет, как и "зеленоватых разводов".

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

Добавлено 03-09-2023 в 23:34:

Цитата:
Decay писал:
Upd: это скриншот модифицированного Ксаша.

Так это еще лучше, как такое делается?


Отправлено XaeroX 03-09-2023 в 16:41:

Цитата:
Crystallize писал:
Так это еще лучше, как такое делается?

GL_RGB_SCALE 2.0

__________________

xaerox on Vivino


Отправлено Дядя Миша 03-09-2023 в 19:26:

Цитата:
Decay писал:
это скриншот модифицированного Ксаша

Наверное подпись движка на скриншоте - это самая гениальная мысль, которая пришла мне в голову за все эти годы. Я могу даже рассказать историю, как я до этого додумался.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Decay 04-09-2023 в 00:20:

https://github.com/54ac/goldsrc-overbright-patcher
Патч для последней стим-хл. 290143 это 46D5F
Результат:
https://i.imgur.com/48YA11A.png
https://i.imgur.com/h9SlF1q.png
https://imgur.com/a/197Scxj

Цитата:
XaeroX писал:
GL_RGB_SCALE 2.0

Попробовал сделать в R_BlendLightmaps как здесь
https://forums.insideqc.com/viewtopic.php?t=2349
лайтмапа становится просто пересвеченной

Добавлено 04-09-2023 в 07:20:

В общем я что-то не то сделал


Отправлено XaeroX 04-09-2023 в 00:35:

Decay
Так и лайтмапу надо поделить на два в компиляторе. Перед тем как клампить в диапазон (0, 255). Тогда и получится расширенный диапазон (0, 511), или истинный овербрайт.

Добавлено 03-09-2023 в 20:35:

Если же просто хочется красивых пересветов, то можно и с оригинальной лайтмапой. Но это будет фейковый овербрайт, или удвоение яркости освещения (но с красивыми пересветами)..

__________________

xaerox on Vivino


Отправлено Decay 04-09-2023 в 00:46:

Так. Кое-что получилось. Это все согласно информации на том форуме. Слабо разбираюсь, почти методом тыка.

В R_BuildLightMap смещение на 8 вместо 7

В R_BlendLightmaps

C++ Source Code:
1
// lightmapped solid surfaces
2
pglDepthMask( GL_FALSE );
3
pglDepthFunc( GL_EQUAL );
4
 
5
pglDisable( GL_ALPHA_TEST );
6
//pglBlendFunc( GL_ZERO, GL_SRC_COLOR );
7
pglBlendFunc( GL_DST_COLOR, GL_SRC_COLOR );
8
 
9
pglTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
10
pglTexEnvi (GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE);
11
pglTexEnvi (GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE);
12
pglTexEnvi (GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_PRIMARY_COLOR);
13
pglTexEnvf (GL_TEXTURE_ENV, GL_RGB_SCALE, 2.0f);
14
 
15
//pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
16
 
17
// render static lightmaps first


В конце
C++ Source Code:
pglTexEnvf (GL_TEXTURE_ENV, GL_RGB_SCALE, 1.0f);
pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );


https://i.imgur.com/xzvu4hH.png
https://i.imgur.com/W5SpuSf.png
https://i.imgur.com/5oq1Igy.png
https://imgur.com/a/P4Jq3Q5

Добавлено 04-09-2023 в 07:46:

Здесь brightness 0 и gamma 2.5


Отправлено XaeroX 04-09-2023 в 00:49:

Decay
А на моделях работает? Им тоже по идее надо rgb_scale 2 ставить, но там нет второй текстуры, и это удвоение должно быть на первом же комбайнере, где умножаются previous (ну т.е. цвет вертекса) и texture.

__________________

xaerox on Vivino


Отправлено Decay 04-09-2023 в 01:07:

Не, модели выглядят обычно.

Добавлено 04-09-2023 в 08:05:

Я ошибся, модели все же выглядят по-другому:

https://i.imgur.com/Ash8NJB.pnghttps://i.imgur.com/jxWoEx6.png
https://i.imgur.com/CspA7Tr.pnghttps://i.imgur.com/UIRLRij.png
https://imgur.com/a/0Rgbc8a

Добавлено 04-09-2023 в 08:07:

И это еще без исправления гаммы текстур
https://csm.dev/threads/ispravljaem...v-xash3d.40005/
С ним наверное картинка станет менее контрастной


Отправлено ZGreen 04-09-2023 в 02:12:

А в чем прикол выключать фильтрацию текстур? Было время, люди большие деньги платили, чтобы ее можно было включить...


Отправлено Crystallize 04-09-2023 в 03:30:

Цитата:
XaeroX писал:
GL_RGB_SCALE 2.0

Это не то, вон скалы от этого становятся по-свинячьи розовыми вместо "физичного" выцветания на голде. К тому же с этим пришлось бы ещё скейл индиректа крутить и оно все равно навсегда бы осталось некорректно.

Добавлено 04-09-2023 в 10:30:

Цитата:
ZGreen писал:
А в чем прикол выключать фильтрацию текстур? Было время, люди большие деньги платили, чтобы ее можно было включить...

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


Отправлено Дядя Миша 04-09-2023 в 05:42:

Цитата:
XaeroX писал:
А на моделях работает?

Ну если
Цитата:
Decay писал:
В R_BuildLightMap смещение на 8 вместо 7

Значит и лукап в лайтмапу тоже поменялся.

Добавлено 04-09-2023 в 08:42:

в NT сквозной канал, от компилятора до шейдеров - будете там накручивать.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 04-09-2023 в 07:18:

Цитата:
XaeroX писал:
Decay
Так и лайтмапу надо поделить на два в компиляторе. Перед тем как клампить в диапазон (0, 255). Тогда и получится расширенный диапазон (0, 511), или истинный овербрайт.


В первой паранойе вроде так было

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Decay 05-09-2023 в 04:21:

Я так понял надо сделать операцию с лайтмапой, чтобы она осветлилась, потом смешивать обычным способом чтобы не было такой выкрученной цветовой насыщенности
А было бы еще проще спросить у Enokilis, как именно он прописал в коде

Цитата:
As far as I know, the only way to achieve the same effect in one rendering pass is to use the texture combiner extension, as I did here.


Отправлено Decay 05-09-2023 в 16:15:

Я просто поменял смещение в R_BuildLightMap на 9 а не на 8, и кажется получилось как в оригинале
https://imgur.com/a/iTV2Zbg
https://i.imgur.com/avasmmW.pnghttps://i.imgur.com/m36lL75.png
https://i.imgur.com/nR3mpU2.pnghttps://i.imgur.com/ugR0Mee.png
https://i.imgur.com/4Rc1ZHU.pnghttps://i.imgur.com/ux0Pgy8.png
https://i.imgur.com/ePwFTTw.pnghttps://i.imgur.com/CM1JBqT.png
https://i.imgur.com/O6d8lNj.pnghttps://i.imgur.com/h0a0tIi.png
https://i.imgur.com/81NZ8xt.pnghttps://i.imgur.com/YMXBMzK.png


Отправлено Дядя Миша 05-09-2023 в 16:24:

Цитата:
Decay писал:
поменял смещение в R_BuildLightMap на 9 а не на 8

Так вот что имел в виду китаец, когда говорил про сломанное освещение голдсорса.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Decay 05-09-2023 в 17:25:

Все-таки не 100% сходство

Пропатченный Steam HL:
здесь тоже brightness 0 и gamma 2.5

https://i.imgur.com/8yBNDLB.pnghttps://i.imgur.com/iLIu1Wf.png

Добавлено 05-09-2023 в 23:33:

Ну да, я уже постил овербрайт в стимовской хл

Добавлено 06-09-2023 в 00:13:

Обнаружил интересную деталь.
Я завел квар gl_overbright, и в R_BuildLightmap это выглядит так:

C++ Source Code:
1
if( CVAR_TO_BOOL( gl_overbright ))
2
{
3
  dest[0] = Q_min((bl[0] >> 9), 255 );
4
  dest[1] = Q_min((bl[1] >> 9), 255 );
5
  dest[2] = Q_min((bl[2] >> 9), 255 );
6
}
7
else
8
{
9
  dest[0] = Q_min((bl[0] >> 7), 255 );
10
  dest[1] = Q_min((bl[1] >> 7), 255 );
11
  dest[2] = Q_min((bl[2] >> 7), 255 );
12
}

В реальном времени она вызывается только для динамического света типа обычного фонарика.
Как переключаю:
C++ Source Code:
bind [ "gl_overbright 0"
bind ] "gl_overbright 1"

Корректная картинка будет только после сейв-рестора.
И знаете что? В GoldSrc такая же особенность

Добавлено 06-09-2023 в 00:25:

Почему я сразу это не заметил - в моей модификации ксаша при переключении квара яркость картинки сильно меняется, а в голде лишь немного.
Я понял что при изначальном gl_overbright 0 на загруженной карте в GoldSrc будут цветные пятна, и переключение на 1 лишь немного подсветит картинку


Отправлено Дядя Миша 05-09-2023 в 18:23:

Цитата:
Decay писал:
И знаете что? В GoldSrc такая же особенность

Так лайтмапа кусками обновляется. Ксаш умеет перезагружать лайтмапы налету по мере необходимости. Смотри функцию R_CheckGamma.

Можно её немного модифицировать, типа так:

C++ Source Code:
1
void R_CheckGamma( void )
2
{
3
  if( R_DoResetGamma( ))
4
  {
5
    // paranoia cubemaps uses this
6
    BuildGammaTable( 1.8f, 0.0f );
7
 
8
    // paranoia cubemap rendering
9
    if( clgame.drawFuncs.GL_BuildLightmaps )
10
      clgame.drawFuncs.GL_BuildLightmaps( );
11
  }
12
  else if( FBitSet( vid_gamma->flags, FCVAR_CHANGED ) || FBitSet( vid_brightness->flags, FCVAR_CHANGED ))
13
  {
14
    BuildGammaTable( vid_gamma->value, vid_brightness->value );
15
    glConfig.softwareGammaUpdate = true;
16
    GL_RebuildLightmaps();
17
    glConfig.softwareGammaUpdate = false;
18
  }
19
  else if( FBitSet( gl_overbright->flags, FCVAR_CHANGED ))
20
  {
21
    GL_RebuildLightmaps();
22
    ClearBits( gl_overbright->flags, FCVAR_CHANGED );
23
  }
24
}

И тогда будет мгновенно переключать.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 05-09-2023 в 19:02:

Ну так и в софтваре лайтмапы ярче. Я давно говорил, но вы меня не слушали.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Decay 05-09-2023 в 19:13:

Дядя Миша

Цитата:
XF-Alien писал:
Примерно то, о чем в видео - уже делает VHLT на уровне компиляции. А именно более корректную работу с цветовым наполнением: отвратительных бледных кругов в центральной части световых пятен нет, как и "зеленоватых разводов".

Цитата:
Crystallize писал:
Суть в том что по превышении некоего порога яркости лайтмапы, она накладывается не умножением, а сложением. Компилятор тут не поможет.


Если посчитать получившийся код правильной реализацией овербрайта, можно сказать что вы оба правы. Заметная разница видна на оригинальных уровнях, сделанных старыми компиляторами. Я проверил на своих картах, скомпилированных VHLTv34, и переключение овербрайта в обоих движках ничтожно влияет на картинку. В GoldSrc становится светлее на 0.1% (скажем так), в Xash3D темнее на 0.1%, это только если сильно присмотреться.


Отправлено Crystallize 06-09-2023 в 06:20:

Цитата:
FiEctro писал:
В первой паранойе вроде так было

Не знаю, смотришь футажи Паранои-вроде примитивный VHLTшный кламп на яркости 196.

Добавлено 06-09-2023 в 13:20:

Цитата:
Decay писал:
в Xash3D темнее

В смысле темнее? Там и так всё обычно темнее чем на ГС.


Отправлено Decay 06-09-2023 в 13:48:

Цитата:
Crystallize писал:
В смысле темнее? Там и так всё обычно темнее чем на ГС.

Переформулирую.
gl_overbright 1 не оказывает никакого влияния на VHLT-картах, кроме едва заметного изменения яркости. Если интересно:
https://imgur.com/a/5VpsHNK

https://i.imgur.com/BZklgpW.png
https://i.imgur.com/F5rpudk.png

https://i.imgur.com/ekKF2py.png
https://i.imgur.com/GttQZ24.png

https://i.imgur.com/aQXOYso.png
https://i.imgur.com/6aHDAm6.png

https://i.imgur.com/1hJ6Tub.png
https://i.imgur.com/wPTP8SI.png

https://i.imgur.com/iRtSJDC.png
https://i.imgur.com/OkVmz6K.png

Добавлено 06-09-2023 в 20:48:

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


Отправлено Crystallize 06-09-2023 в 16:43:

Decay Ну да, на грани погрешности. А что это за карта?

Добавлено 06-09-2023 в 23:43:

Я не могу вычитанием поймать эту разницу в Фотошопе. Мистика какая-то. Но возможно что вся разница от того что я не совсем точно подобрал гамму для Ксаша, скажем не 0.655 а 0.666. Или это какая-то погрешность, разница между софтварной и аппаратной гаммой. В Фотошопе удается поймать только разницу в оттенке цвета, даже не в яркости.


Отправлено Crystallize 08-09-2023 в 01:50:

Цитата:
Decay писал:

pglTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
pglTexEnvi (GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE);
pglTexEnvi (GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE);
pglTexEnvi (GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_PRIMARY_COLOR);
pglTexEnvf (GL_TEXTURE_ENV, GL_RGB_SCALE, 2.0f);

Он не знает половины параметров, пришлось дописывать окончание _ARB, это ничего страшного я надеюсь?

Исправления только в двух местах, здесь и ещё где сдвиг на 9 бит? Лайтмапа исправилась, но всё равно не совпадает с ГС. Всё ещё светлее в хайлайтах и чуть плывет разводами по гамме.


Отправлено Decay 09-09-2023 в 12:37:

Цитата:
Crystallize писал:
А что это за карта?

Мои поделки

RGB_SCALE здесь не имеет смысла. Убираем его, делаем сдвиг на 8 бит и получаем такой же результат.

gl_local.h
C++ Source Code:
extern convar_t *gl_overbright;


gl_vidnt.c
C++ Source Code:
convar_t	*gl_overbright;

добавить в GL_InitCommands:
C++ Source Code:
gl_overbright = Cvar_Get("gl_overbright", "0", FCVAR_ARCHIVE, "overbright");


gl_rmain.c
добавить в R_CheckGamma в конце:
C++ Source Code:
else if( FBitSet( gl_overbright->flags, FCVAR_CHANGED ))
{
  GL_RebuildLightmaps();
  ClearBits( gl_overbright->flags, FCVAR_CHANGED );
}


gl_rsurf.c
R_BuildLightMap
C++ Source Code:
1
for( t = 0; t < tmax; t++, dest += stride )
2
{
3
  for( s = 0; s < smax; s++ )
4
  {
5
    int shift = CVAR_TO_BOOL( gl_overbright ) ? 8 : 7;
6
    dest[0] = Q_min((bl[0] >> shift), 255 );
7
    dest[1] = Q_min((bl[1] >> shift), 255 );
8
    dest[2] = Q_min((bl[2] >> shift), 255 );
9
 
10
    dest[3] = 255;
11
 
12
    bl += 3;
13
    dest += 4;
14
  }
15
}


R_BlendLightmaps
Это:
C++ Source Code:
pglBlendFunc( GL_ZERO, GL_SRC_COLOR );

заменить на
C++ Source Code:
if( CVAR_TO_BOOL( gl_overbright ))
  pglBlendFunc( GL_DST_COLOR, GL_SRC_COLOR );
else
  pglBlendFunc( GL_ZERO, GL_SRC_COLOR );;


Добавлено 09-09-2023 в 19:37:

Уточню что это для Xash3D build 4529


Отправлено Crystallize 09-09-2023 в 16:36:

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

Цитата:
Decay писал:
RGB_SCALE здесь не имеет смысла. Убираем его, делаем сдвиг на 8 бит и получаем такой же результат.

Разводов стало меньше и лайтмапа чуть поменялась, теперь почти совпадает. Но максимум яркости лайтмапы (как он рендерится в итоге) всё ещё в ГС 170, а в Ксаше 157.


Отправлено Crystallize 10-09-2023 в 20:28:

Цитата:
Decay писал:
Наверное твоя версия движка проверяет еще старое расширение. А в ней работают детальные текстуры?

Походу нет, я dm_port_akaba с ксм запускаю, а он тёмненький.

Цитата:
Decay писал:
Если посчитать получившийся код правильной реализацией овербрайта, можно сказать что вы оба правы. Заметная разница видна на оригинальных уровнях, сделанных старыми компиляторами. Я проверил на своих картах, скомпилированных VHLTv34, и переключение овербрайта в обоих движках ничтожно влияет на картинку. В GoldSrc становится светлее на 0.1% (скажем так), в Xash3D темнее на 0.1%, это только если сильно присмотреться.

Так у китайца же самый низкий порог нормализации из всех, 188. Даже в оригинале-196, а так-то и 255 можно.

Цитата:
Decay писал:
Заметная разница видна на оригинальных уровнях, сделанных старыми компиляторами. Я проверил на своих картах, скомпилированных VHLTv34, и переключение овербрайта в обоих движках ничтожно влияет на картинку. В GoldSrc становится светлее на 0.1% (скажем так), в Xash3D темнее на 0.1%, это только если сильно присмотреться.

Посмотри карту xash_demo, на улице и на 2 этаже. Там приборная панель пол-зала стала засвечивать.


Отправлено Decay 11-09-2023 в 20:24:

Цитата:
Crystallize писал:
Посмотри карту xash_demo, на улице и на 2 этаже. Там приборная панель пол-зала стала засвечивать.

По-моему это настолько старая карта, что компилилась еще ZHLT.

https://i.imgur.com/FcsFKBs.pnghttps://i.imgur.com/gfryV6E.png
https://i.imgur.com/tWv1JWr.pnghttps://i.imgur.com/XXryh1B.png

P.S. Для r_lightmap тоже нужно вводить проверки
C++ Source Code:
int shift = ( CVAR_TO_BOOL( gl_overbright ) && !CVAR_TO_BOOL( r_lightmap ) ) ? 8 : 7;

C++ Source Code:
else if( FBitSet( r_lightmap->flags, FCVAR_CHANGED ))
{
  GL_RebuildLightmaps();
  ClearBits( r_lightmap->flags, FCVAR_CHANGED );
}


Отправлено Crystallize 12-09-2023 в 03:06:

Decay У меня Ксаш не так выглядит, надо будет собственное сравнение сделать. На первой картинке у меня с овербрайтом желтизны совсем нет. Может быть это как раз из-за того что я заюзал функции с суффиксом ARB?

Ты сравни Ксаш и голдсурс, а не Ксаш с Ксашем.

Цитата:
Decay писал:
P.S. Для r_lightmap тоже нужно вводить проверки

А что, в Голдсурсе битовый сдвиг при r_lightmap какой-то другой?

Добавлено 12-09-2023 в 10:06:

Если да то какой смысл был Вальве так делать, это же недостоверный эксперимент.

Кстати глядя на все эти сдвиги и как они уничтожают засвет, я захотел так же убрать сдвиги в ХЛ2. Открыл утечку 2012 года но там функция R_buildlightmaps в этом месте по сути обрывается, как-то совсем по-другому всё устроено.


Отправлено Decay 12-09-2023 в 05:15:

Цитата:
Crystallize писал:
У меня Ксаш не так выглядит, надо будет собственное сравнение сделать.

Наверно из-за того что у меня не применен твой gamma curve fix. Я затрудняюсь с этим пунктом: in Image_SetPalette wrap 3 texture channels into TextureToGamma()

Цитата:
Crystallize писал:
Может быть это как раз из-за того что я заюзал функции с суффиксом ARB?

Я у себя совсем убрал текстурный комбайн, он только для GL_RGB_SCALE был нужен.
C++ Source Code:
1
pglDisable( GL_ALPHA_TEST );
2
if( CVAR_TO_BOOL( gl_overbright ) )
3
  pglBlendFunc( GL_DST_COLOR, GL_SRC_COLOR );
4
else
5
  pglBlendFunc( GL_ZERO, GL_SRC_COLOR );
6
 
7
pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
8
 
9
// render static lightmaps first

А по поводу _ARB — разницы нет, эти дефайны присутствуют в Ксаше именно под такими историческими именами ("одобрено консорциумом ARB"), а значения те же самые.

Цитата:
Crystallize писал:
А что, в Голдсурсе битовый сдвиг при r_lightmap какой-то другой?

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

Добавлено 12-09-2023 в 11:44:

Цитата:
Crystallize писал:
глядя на все эти сдвиги и как они уничтожают засвет

Его уничтожает именно другой блендинг

Добавлено 12-09-2023 в 11:55:

Хотя мы можем увидеть засветы при GL_ZERO,GL_SRC_COLOR и >>9 или >>10, но это все выглядит очень темно

Добавлено 12-09-2023 в 12:15:

pglBlendFunc( GL_ZERO, GL_SRC_COLOR );
shift = 9
brightness 0
gamma 1
https://i.imgur.com/7JeemxE.png

Вариант с GL_DST_COLOR,GL_SRC_COLOR все же покрасивее будет


Отправлено Crystallize 12-09-2023 в 06:10:

Цитата:
Decay писал:
Наверно из-за того что у меня не применен твой gamma curve fix. Я затрудняюсь с этим пунктом: in Image_SetPalette wrap 3 texture channels into TextureToGamma()

Вот Дядя Миша объяснял: https://hlfx.ru/forum/showthread.ph...1036#post201036

Всё остальное, ну там фиксация g3 в гамме - уже неактуальна с овербрайтом. Разницы не вижу по крайней мере.

Добавлено 12-09-2023 в 13:10:

Цитата:
Decay писал:
Его уничтожает именно другой блендинг

Даже с новым блендингом, если я просто меняю размер сдвига то возникает засвет как в сорсе. Чисто белое пятно.


Отправлено Decay 12-09-2023 в 07:09:

Да, вместо "другой блендинг" было правильно написать "оригинальный блендинг, который GL_ZERO,GL_SRC_COLOR".

Добавлено 12-09-2023 в 14:07:

Цитата:
Crystallize писал:
Открыл утечку 2012 года но там функция R_buildlightmaps в этом месте по сути обрывается, как-то совсем по-другому всё устроено.

Посмотрел утечку 2018 года, там такое следование:
R_BuildLightMap
R_BuildLightMapGuts
ComputeLightmapFromLightstyle
AccumulateLightstyles
Перегруженная функция. Один из вариантов:
C++ Source Code:
1
//-----------------------------------------------------------------------------
2
// Compute the portion of the lightmap generated from lightstyles
3
//-----------------------------------------------------------------------------
4
static void AccumulateLightstyles( ColorRGBExp32* pLightmap, int lightmapSize, float scalar )
5
{
6
  Assert( pLightmap );
7
  for (int i=0; i<lightmapSize ; ++i)
8
  {
9
    blocklights[0][i][0] += scalar * TexLightToLinear( pLightmap[i].r, pLightmap[i].exponent );
10
    blocklights[0][i][1] += scalar * TexLightToLinear( pLightmap[i].g, pLightmap[i].exponent );
11
    blocklights[0][i][2] += scalar * TexLightToLinear( pLightmap[i].b, pLightmap[i].exponent );
12
  }
13
}

Не знаю, оно или нет... Конечно тут все сложнее.

Добавлено 12-09-2023 в 14:09:

P.S. Если используешь Notepad++, советую делать поиск по файлам Ctrl+Shift+F


Отправлено Дядя Миша 12-09-2023 в 08:06:

В сорсе HDR-лайтмапы, там вообще нет этого смещения.

__________________
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-09-2023 в 08:53:

Дядя Миша HL2 на релизе имел LDR лайтмапы и в Эп2 в движке и в раде всё ещё есть поддержка для них.


Отправлено Crystallize 12-09-2023 в 17:38:

В общем сначала карта на ксаше:


Чтобы сравнить движки, скомпилил её заново p2st только с самыми основными энтитями:
ксаш:


для сравнения гс:

блин, там была яркость 1, вот яркость 0
https://alxgk.ru/uploader/img/db9e2...88c6c5a987d.jpg
https://alxgk.ru/uploader/img/a3448...3f47a554e6e.jpg


Отправлено Дядя Миша 12-09-2023 в 18:11:

Цитата:
Crystallize писал:
HL2 на релизе имел LDR лайтмапы

HL2 всегда имел HDR лайтмапы в RGBe. Даже в утёкшей бетке.

__________________
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-09-2023 в 18:39:

Цитата:
Decay писал:
Я у себя совсем убрал текстурный комбайн, он только для GL_RGB_SCALE был нужен.

Можно оставить только SOURCE0 SOURCE1 и всё равно работает о_О

Дядя Миша Хм, а в ксашмоде-2019 были ещё эти вот glsl-шейдеры, и там тоже есть и сдвиг на 7 бит, и скейл яркости... но оно уже влияния не оказывает почему-то.

Добавлено 13-09-2023 в 01:39:

Decay Я понял почему у меня такой засвет. В гамме идёт вычисление texgammatable на основе TEXGAMMA, а она у меня 0,655. Если поменять TEXGAMMA на 0.9 или на g1 то будет как у тебя.


Отправлено Decay 13-09-2023 в 14:16:

Эм...
Посмотрел как бы сделать и в XashXT такое. Нашел в glsl/const.h

C++ Source Code:
#define LIGHTMAP_SHIFT		(1.0 / 128.0)	// same as >> 7 in Quake

Где используется: glsl/bmodelsolid_fp.glsl
C++ Source Code:
#if defined( BMODEL_APPLY_STYLE0 ) || defined( BMODEL_APPLY_STYLE1 ) || defined( BMODEL_APPLY_STYLE2 ) || defined( BMODEL_APPLY_STYLE3 )
light = min(( light * LIGHTMAP_SHIFT ), 1.0 );
#endif

Поменял на 2.0 и получил результат. Не думал что будет так просто Но надо проверить, не вылезло ли это боком где-то в другом месте.
https://i.imgur.com/IDu6IN4.pnghttps://i.imgur.com/IODcIWl.png

Кстати заметил особенность. В valve\scrshots лежит xash_demo_shot0007.bmp. А в ксаш-моде скриншоты продолжают отсчитываться от них: xash\scrshots\xash_demo_shot0008.bmp, xash_demo_shot0009.bmp...

Добавлено 13-09-2023 в 21:16:

Я так посмотрел -- хорошая штука эти GLSL шейдеры.


Отправлено Crystallize 13-09-2023 в 14:37:

Decay а у меня это не работает. Но у меня и рендер в ксаше не переключается. Может я запортил что-то.


Отправлено Decay 13-09-2023 в 15:17:

Даже не знаю. У меня последний XashXT 0.81 rev. 2. Если менял код, надо проверить HUD_GetRenderInterface, cldll_func_t cldll_func, static render_interface_t gRenderInterface...


Отправлено Crystallize 13-09-2023 в 15:27:

Если что я просто возьму ваниллу и буду виндиффить


Отправлено a1batross 13-09-2023 в 15:49:

Цитата:
Decay писал:
Кстати заметил особенность. В valve\scrshots лежит xash_demo_shot0007.bmp. А в ксаш-моде скриншоты продолжают отсчитываться от них: xash\scrshots\xash_demo_shot0008.bmp, xash_demo_shot0009.bmp...


Это баг, там всего нужно false на true поменять в cl_cmds.c. https://github.com/FWGS/xash3d-fwgs...be88848090f0aa8

__________________
Xash3D FWGS форк


Отправлено Дядя Миша 13-09-2023 в 16:05:

Цитата:
a1batross писал:
Это баг, там всего нужно false на true поменять в cl_cmds.c.

атпередил!

__________________
My Projects: download page

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

Цитата:

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


Отправлено Decay 13-09-2023 в 20:47:

У меня получилось сделать освещение моделек от солнца как в Голдсорсе!

Смотрим gl_studio.c: R_StudioDynamicLight

C++ Source Code:
1
if( FBitSet( ent->model->flags, STUDIO_FORCE_SKYLIGHT ) || ( psurf && FBitSet( psurf->flags, SURF_DRAWSKY )))
2
{
3
  VectorSet( lightDir, mv->skyvec_x, mv->skyvec_y, mv->skyvec_z );
4
 
5
  light.r = LightToTexGamma( bound( 0, mv->skycolor_r, 255 ));
6
  light.g = LightToTexGamma( bound( 0, mv->skycolor_g, 255 ));
7
  light.b = LightToTexGamma( bound( 0, mv->skycolor_b, 255 ));
8
}


В Ксаше они белые - значения урезаются до 255. Я посмотрел как сделано ниже в этой же функции, и сделал по аналогии:

C++ Source Code:
1
colorVec light_aaa;
2
if( FBitSet( ent->model->flags, STUDIO_FORCE_SKYLIGHT ) || ( psurf && FBitSet( psurf->flags, SURF_DRAWSKY )))
3
{
4
  VectorSet( lightDir, mv->skyvec_x, mv->skyvec_y, mv->skyvec_z );
5
  ///////
6
  total = Q_max( Q_max( mv->skycolor_r, mv->skycolor_g ), mv->skycolor_b );
7
 
8
  if( total > 0.0f )
9
  {
10
    light_aaa.r = (mv->skycolor_r * ( 1.0f / total )) * 255;
11
    light_aaa.g = (mv->skycolor_g * ( 1.0f / total )) * 255;
12
    light_aaa.b = (mv->skycolor_b * ( 1.0f / total )) * 255;
13
  }
14
  else
15
  {
16
    light_aaa.r = 0;
17
    light_aaa.g = 0;
18
    light_aaa.b = 0;
19
  }
20
  ///////
21
  light.r = LightToTexGamma( bound( 0, light_aaa.r, 255 ));
22
  light.g = LightToTexGamma( bound( 0, light_aaa.g, 255 ));
23
  light.b = LightToTexGamma( bound( 0, light_aaa.b, 255 ));
24
}


https://i.imgur.com/sPrruVh.pnghttps://i.imgur.com/6IkfMO3.png

Upd:
https://imgur.com/a/jhKmmCs
https://ibb.co/xDPKsR5
https://ibb.co/Cz968xb

Добавлено 14-09-2023 в 03:47:

Хотя это не совсем по теме, извините


Отправлено a1batross 13-09-2023 в 20:53:

The image cannot be displayed because it contains errors.

Это ваш Imgur.

__________________
Xash3D FWGS форк


Отправлено Decay 13-09-2023 в 21:01:

Обновил пост.
И bound() по-моему больше не нужен здесь.


Отправлено Decay 14-09-2023 в 02:31:

Кажется я поторопился с выводами. Это может работать правильно не во всех случаях. Имеет смысл проверять total > 0 и total > 255. Сейчас не могу проверить


Отправлено FiEctro 14-09-2023 в 06:07:

Decay
Почему цвет освещения отличается на модели и лайтмапе?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Decay 14-09-2023 в 06:41:

Для модели цвет берется из sv_skycolor_*, а там значение из light_environment скорее всего. Компилятор светлее делает видимо. Тут наверное кому как -- мне нравится как модельки заливаются солнечным светом, а не просто белые. Там и солдат в тени тоже желтоватый, потом скрин покажу.

Добавлено 14-09-2023 в 13:41:

Предполагаю, если для r_lightmap сделать тот сдвиг >>8, там будет желтый цвет.


Отправлено Decay 14-09-2023 в 15:10:

Цитата:
Decay писал:
солдат в тени тоже желтоватый

Цитата:
Decay писал:
Предполагаю, если для r_lightmap сделать тот сдвиг >>8, там будет желтый цвет.

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

Немного переписал:
C++ Source Code:
1
colorVec skycolorN = {0,0,0,0};
2
if( FBitSet( ent->model->flags, STUDIO_FORCE_SKYLIGHT ) || ( psurf && FBitSet( psurf->flags, SURF_DRAWSKY )))
3
{
4
  VectorSet( lightDir, mv->skyvec_x, mv->skyvec_y, mv->skyvec_z );
5
  total = Q_max( Q_max( mv->skycolor_r, mv->skycolor_g ), mv->skycolor_b );
6
  if( total > 0.0f )
7
  {
8
    skycolorN.r = (mv->skycolor_r * ( 1.0f / total )) * 255.0f;
9
    skycolorN.g = (mv->skycolor_g * ( 1.0f / total )) * 255.0f;
10
    skycolorN.b = (mv->skycolor_b * ( 1.0f / total )) * 255.0f;
11
  }
12
  light.r = LightToTexGamma( skycolorN.r );
13
  light.g = LightToTexGamma( skycolorN.g );
14
  light.b = LightToTexGamma( skycolorN.b );
15
}

Для сравнения, освещенность в GoldSrc:
https://i.imgur.com/U3UYjiF.png
https://imgur.com/U3UYjiF


Отправлено Дядя Миша 14-09-2023 в 16:14:

В голдсорсе точно есть команда для отключения диффузных текстур на модельках. Только она дико неинтуитивная. Помню что какой-то квар, имеющий непосредственное отношение к студиомоделям надо переставить на 2. А вот какой именно - не помню

Добавлено 14-09-2023 в 19:14:

Хмм. А попробуйте r_fullbright 2.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Decay 14-09-2023 в 17:43:

Цитата:
Дядя Миша писал:
r_fullbright 2

Работает. Но перекрывает r_lightmap — получаются безтекстурные модели на фоне fullbright-карты.

Еще раз проверил освещение моделей в GoldSrc. Он все-таки не нормализует цвета, не превышающие 255. Думаю, это будет финальная версия. Дополнительная переменная больше не требуется.
code:
if( FBitSet( ent->model->flags, STUDIO_FORCE_SKYLIGHT ) || ( psurf && FBitSet( psurf->flags, SURF_DRAWSKY ))) { VectorSet( lightDir, mv->skyvec_x, mv->skyvec_y, mv->skyvec_z ); total = Q_max( Q_max( mv->skycolor_r, mv->skycolor_g ), mv->skycolor_b ); if( total > 255.0f) { light.r = LightToTexGamma( (mv->skycolor_r * ( 1.0f / total )) * 255.0f ); light.g = LightToTexGamma( (mv->skycolor_g * ( 1.0f / total )) * 255.0f ); light.b = LightToTexGamma( (mv->skycolor_b * ( 1.0f / total )) * 255.0f ); } else { light.r = LightToTexGamma( (mv->skycolor_r ) ); light.g = LightToTexGamma( (mv->skycolor_g ) ); light.b = LightToTexGamma( (mv->skycolor_b ) ); } }

На c4a1 rgb=103,164,145. Для соответствия с Голдом должно быть как на левом скриншоте

https://i.imgur.com/KKl3WGU.pnghttps://i.imgur.com/0Z4Dywi.png
https://imgur.com/a/hmwz9Fg


Отправлено Crystallize 14-09-2023 в 18:16:

Decay лучше бзать тег code внесто cpp.


Отправлено Дядя Миша 14-09-2023 в 18:29:

Цитата:
Decay писал:
Но перекрывает r_lightmap — получаются безтекстурные модели на фоне fullbright-карты.

В голдсорсе много нелогичного, да. Именно поэтому я и создал ксаш.

Добавлено 14-09-2023 в 21:29:

Цитата:
Decay писал:
Для соответствия с Голдом должно быть как на левом скриншоте

Но ведь правый более корректен.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 14-09-2023 в 18:31:

А если нет скайлайта? И где там вообще происходит лукап в лайтмапу?


Отправлено Decay 14-09-2023 в 19:20:

Цитата:
Дядя Миша писал:
Но ведь правый более корректен.

Согласен. Но получается что у любого цвета солнца будет подниматься яркость до предела (оно вроде так происходит?), то есть поднимается value в терминах HSV(?). И я думаю — а вдруг маппер хочет сделать именно темное освещение моделей от темного солнца?

Цитата:
Crystallize писал:
А если нет скайлайта? И где там вообще происходит лукап в лайтмапу?

По-моему работает трассировка до неба по sv_skyvec_x/y/z, точно не в курсе

Добавлено 15-09-2023 в 01:46:

Меня еще вот это удивляет (как и многое другое... ). Не знаю зачем и для чего это
code:
j = sscanf( pkvd->szValue, "%d %d %d %d\n", &r, &g, &b, &v ); if (j == 1) { g = b = r; } else if (j == 4) { r = r * (v / 255.0); g = g * (v / 255.0); b = b * (v / 255.0); } // simulate qrad direct, ambient,and gamma adjustments, as well as engine scaling r = pow( r / 114.0, 0.6 ) * 264; g = pow( g / 114.0, 0.6 ) * 264; b = pow( b / 114.0, 0.6 ) * 264;


Добавлено 15-09-2023 в 02:20:

Еще остается вопрос, почему это на c4a1 и gasworks, например, sv_skycolor в пределах 0-255, а на c2a5w — нет.


Отправлено FiEctro 14-09-2023 в 19:39:

Цитата:
Дядя Миша писал:
Но ведь правый более корректен.


Ну да, на левом как баг освещения выглядит.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Crystallize 14-09-2023 в 19:39:

Decay наверное это дядемишина адаптация для квейка

А мощность солнца повышенная наверное потому что указан множитель дополнительно.


Отправлено Decay 14-09-2023 в 19:56:

Цитата:
Crystallize писал:
А если нет скайлайта? И где там вообще происходит лукап в лайтмапу?

Цитата:
Decay писал:
По-моему работает трассировка до неба по sv_skyvec_x/y/z, точно не в курсе

Туплю. Я же буквально там нахожусь, и изменяю часть этого кода в R_StudioDynamicLight


Отправлено Дядя Миша 14-09-2023 в 19:57:

Цитата:
Crystallize писал:
И где там вообще происходит лукап в лайтмапу?

Небо в лайтмапу не смотрит.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Decay 14-09-2023 в 23:52:

Цитата:
Crystallize писал:
наверное это дядемишина адаптация для квейка

Это код Вальвы в серверной библиотеке.
https://github.com/ValveSoftware/ha...lights.cpp#L148
Попробовал скомпилить hl.dll без этих операций, результат слева. Как я понял, алгоритм убавляет насыщенность и прибавляет яркости

https://i.imgur.com/8rpCmQ6.pnghttps://i.imgur.com/YH1ZiYX.png
https://imgur.com/a/SLRbaSR

Покажу пример, что будет если нормализовывать темные значения sv_skycolor_*
Case Closed, карта x8.bsp
sv_skycolor_b 29
sv_skycolor_g 29
sv_skycolor_r 29

Слева if( total > 0.0f), справа if( total > 255.0f)

https://i.imgur.com/fxOOKA3.pnghttps://i.imgur.com/uw1CbCj.png
https://imgur.com/a/SLRbaSR

По той формуле они превратились в 255,255,255. Я считаю это нежелательно.


Отправлено Crystallize 15-09-2023 в 02:18:

Цитата:
Дядя Миша писал:
Небо в лайтмапу не смотрит.

А монстры же.


Отправлено Дядя Миша 15-09-2023 в 05:42:

Crystallize от неба свет иначе считается, сам же видишь.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Decay 17-09-2023 в 13:41:

Цитата:
Дядя Миша писал:
Но ведь правый более корректен.

Цитата:
FiEctro писал:
Ну да, на левом как баг освещения выглядит.

Хочу дополнить, если опять же сделать сдвиг 8 для r_lightmap, это уже не выглядит так. Вообще, я все-таки считаю что при 7 лайтмапа выглядит сильно светлой.
code:
int shift = ( CVAR_TO_BOOL( gl_overbright ) || CVAR_TO_BOOL( r_lightmap ) ) ? 8 : 7;

https://i.imgur.com/qAR9KPs.pnghttps://i.imgur.com/85LIt98.png
https://imgur.com/a/7XTkyiT


Отправлено Decay 22-09-2023 в 14:35:

Всё это уже было!
https://csm.dev/threads/novye-kompi...3d.38603/page-3

Цитата:
Дядя Миша писал:
Первое что мы видим - оригинал заметно светлее. Ну это неудивительно, я уже упоминал, что там идёт умножение света на 2, а китаец его выбросил, но судя по коментам в коде "скомпенсировал"

Наверно потому и нет эффекта с VHLT.



Добавлено 22-09-2023 в 21:35:

Действительно, вариант с pglColor4f просто делает светлее, а предел все тот же.
Так и непонятно, был ли в форке вариант как у нас, с другим сдвигом в R_BuildLightMap.

https://i.imgur.com/mRbQEDf.jpghttps://i.imgur.com/8e4L4VV.jpg
https://imgur.com/a/qHjoIPX


Отправлено Crystallize 22-09-2023 в 14:49:

Цитата:
Decay писал:
Первое что мы видим - оригинал заметно светлее. Ну это неудивительно, я уже упоминал, что там идёт умножение света на 2, а китаец его выбросил, но судя по коментам в коде "скомпенсировал"

Ну китаец-то наверное говорил про удвоение директа которое баг?


Отправлено Decay 22-09-2023 в 15:18:

Хочу еще раз уточнить. Я писал:

Цитата:
Decay писал:
Корректная картинка будет только после сейв-рестора.
И знаете что? В GoldSrc такая же особенность

Это означает, что для реального сравнения в GoldSrc нужно сначала сделать скриншот с gl_overbright 0, включить gl_overbright 1, сохранить и перезагрузить игру (save/load), и только потом делать второй скриншот с овербрайтом.
Иначе на втором скриншоте будет просто поднята яркость.
Я совершил такую ошибку, когда показывал это в пропатченной стим-хл в двух постах в этой теме.
И вот здесь, например, некоторые люди делали такую же ошибку:
https://www.vogons.org/viewtopic.php?f=5&t=47313

Так что показываю овербрайт в GoldSrc еще раз:

https://i.imgur.com/UTTv3qG.jpghttps://i.imgur.com/Hk37Fh4.jpg
https://i.imgur.com/rVEFVJQ.jpghttps://i.imgur.com/yJvUUhB.jpg
https://i.imgur.com/nZRYX9t.jpghttps://i.imgur.com/4lT3PML.jpg
https://i.imgur.com/alq8BNU.jpghttps://i.imgur.com/StSyZ2k.jpg
https://imgur.com/a/ahntAbu

Цитата:
Crystallize писал:
Ну китаец-то наверное говорил про удвоение директа которое баг?

Мне про этот баг неизвестно

Добавлено 22-09-2023 в 22:18:

Понимаю что задолбал уже скринами, просто хочу чтобы все всё поняли


Отправлено Crystallize 22-09-2023 в 15:47:

Цитата:
Decay писал:
Мне про этот баг неизвестно

Ну в 90х они курад написали и наделали с ним карт и потом поняли что у них директ 2 раза добавляется, ну так и оставили.


Отправлено Decay 22-09-2023 в 16:49:

Crystallize Ах да, читал об этом здесь
https://developer.valvesoftware.com/wiki/QRAD
Тут же и ответ на вопрос, что это за мода такая была — лепить несколько солнц на карту.
Еще можно предположить что именно радиосити было первым, что они добавили. Так компилятор мог называться и qcol или qcolor, если бы сначала появилось цветное освещение

Добавлено 22-09-2023 в 22:59:

Хотя нет, в Q2 был qrad вроде.

Добавлено 22-09-2023 в 23:42:

Еще одно открытие.

https://developer.valvesoftware.com/wiki/HLRAD

Цитата:
-limiter #
Set value at which lightmaps should be clamped [Clarify]; setting this to 255 will disable clamping. The default value is designed to avoid the chromatic aberration caused by gl_overbright being broken.

http://zhlt.info/version-history.html
Цитата:
Version 31
Added the feature of preserving lightmap color of overly bright spots. If you are mapping for another engine, you may want to change the default limit threshold which is 188. The command line parameter is '-limiter #'. For Trinity Render, use '-limiter 255'. For Spirit of Half-Life, no change is needed, since it renders the lightmap identically to Goldsrc.

На третьем скрине без разницы, включен или нет. И везде -extra.

https://i.imgur.com/KjtRbCg.jpghttps://i.imgur.com/jcu7jzu.jpg
https://i.imgur.com/p8vYJrL.jpg
https://imgur.com/a/Ssrmmh2

Добавлено 22-09-2023 в 23:49:

Цитата:
Crystallize писал:
Так у китайца же самый низкий порог нормализации из всех, 188. Даже в оригинале-196, а так-то и 255 можно.

Теперь понял


Отправлено Дядя Миша 22-09-2023 в 18:09:

Цитата:
Decay писал:
Хотя нет, в Q2 был qrad вроде.

Это и есть qrad из Q2. Гейб получил промежуточные сорцы между ку1 и ку2. Поэтому народ так долго гадал на чём же сделана халфа.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Decay 24-09-2023 в 07:40:

Цитата:
Decay писал:
Цитата:
Crystallize писал:
Посмотри карту xash_demo, на улице и на 2 этаже. Там приборная панель пол-зала стала засвечивать.

По-моему это настолько старая карта, что компилилась еще ZHLT.


Wrong. Я узнал что такие яркие засветы дает p1rad. А zhlt/vhlt такого не может.

zhlt hlrad, overbright off/on:

https://i.imgur.com/vZKsArp.jpghttps://i.imgur.com/KsNLKUp.jpg

p1rad:

https://i.imgur.com/pRfNJAa.jpghttps://i.imgur.com/CtsKkf2.jpg

Добавлено 24-09-2023 в 14:40:

(https://imgur.com/a/cPqFyQJ)


Отправлено Дядя Миша 24-09-2023 в 07:49:

Цитата:
Decay писал:
Я узнал что такие яркие засветы дает p1rad

Это специальная сборка для первой паранои.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Decay 24-09-2023 в 07:51:

Цитата:
Дядя Миша писал:
Это специальная сборка для первой паранои.

А xash_demo ей собиралась? Или другим?


Отправлено Дядя Миша 24-09-2023 в 07:59:

Ей не собиралось ничего. Это специальная сборка только для первой паранои. Она не годится для обычного ксаша.

Добавлено 24-09-2023 в 10:59:

Я уже не помню чем собиралась xash_demo. Набери в консоли entpatch, открой в блокноте xash_demo.ent и посмотри какой компилятор оставил свою подпись в настройках worldspawn.

Добавлено 24-09-2023 в 10:59:

Ну или просто mapstats набери - тоже должно показать, по-идее.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Decay 24-09-2023 в 10:46:

Дядя Миша спасибо.

code:
"_compiler" "^1P2ST ^3v0.93^7 (Jun 9 2018)"

Я понял, откуда на xash_demo взялся такой яркий пересвет, который виден только при gl_overbright 1.
Свет от func_light складывается со светом от других источников. На 3 скрине удален func_light.

https://i.imgur.com/BEMtjh5.jpeghttps://i.imgur.com/hpjcVz6.jpeghttps://i.imgur.com/437Lvpw.jpeg
https://i.imgur.com/kQiYSNi.jpghttps://i.imgur.com/SK21pXW.jpghttps://i.imgur.com/lcw1HKD.jpg
https://imgur.com/a/gqq4qd0

Добавлено 24-09-2023 в 17:21:

Это только в p2st и hlrad, который идет в комплекте с p2st.

Добавлено 24-09-2023 в 17:46:

И у меня нет синего света из-за другого lights.rad


Отправлено Crystallize 24-09-2023 в 11:11:

Что такое func_light? Это какой-то динамический прожектор из ксаша?


Отправлено Decay 24-09-2023 в 11:15:

Crystallize статичный свет от брашей. Можно вкл/выкл
http://xash3d.ru/doku.php?id=xashxt...0%B8:func_light
(поправил)


Отправлено Crystallize 24-09-2023 в 11:33:

Decay там пусто


Отправлено Дядя Миша 24-09-2023 в 12:43:

func_light это типа префаба такого. Чтобы было удобнее расставлять выключаемые источники света от текстуры. Очень древняя штука, кажется я сделал её в 2005-м году.

Добавлено 24-09-2023 в 15:43:

Цитата:
Decay писал:
Свет от func_light складывается со светом от других источников

Ну естественно. Лайтстили складываются.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Decay 24-09-2023 в 16:23:

Цитата:
Дядя Миша писал:
Ну естественно. Лайтстили складываются.

Попробовал в комнатке убрать func_light, задать лампочке имя либо appearance, тоже становится ярко. Вот оно как!
Пример из стандартных карт. Этот светильник ломается, когда проходим слева:
overbright off/on

https://i.imgur.com/xVVUhb9.jpghttps://i.imgur.com/lOpLfS3.jpg
https://imgur.com/a/QBGh1La

Добавлено 24-09-2023 в 22:58:

VHLT v34
code:
// 188 is the fullbright threshold for Goldsrc, regardless of the brightness and gamma settings in the graphic options. // However, hlrad can only control the light values of each single light style. So the final in-game brightness may exceed 188 if you have set a high value in the "custom appearance" of the light, or if the face receives light from different styles. #define DEFAULT_LIMITTHRESHOLD 188.0
code:
Log(" -limiter # : Set light clipping threshold (-1=None)\n");

limiter -1 позволяет делать сложение яркости лайтстилей, но при этом делает бледные пятна в остальных случаях.
limiter 255 будет в основном лучше, но дает резкие переходы между пятнами света разных лайтстилей.
Справа расположен обычный браш со светящейся текстурой. Овербрайт везде включен. Много картинок:
https://imgur.com/a/j8v08GK

А если сделать лампочку рядом с брашем безымянной (один стиль), с limiter 255 выглядит адекватно.
https://imgur.com/a/p8vzE4z

Добавлено 24-09-2023 в 23:23:

А ДядьМишин hlrad из комплекта p2st не делает бледных пятен при овербрайте (в отличие от лимитер -1 в vhlt, где их видно даже при gl_overbright 1) и стили суммирует.
https://imgur.com/a/gsJjgj7


Отправлено Crystallize 24-09-2023 в 17:29:

Я даже хз вообще как он умудряется складывать лайтмапы. Это наверное вообще не лампочка может быть а тот самый загадочный !light?


Отправлено Дядя Миша 24-09-2023 в 18:48:

Цитата:
Decay писал:
А ДядьМишин hlrad из комплекта p2st не делает бледных пятен при овербрайте (в отличие от лимитер -1 в vhlt, где их видно даже при gl_overbright 1) и стили суммирует.

Это хорошо или плохо?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Decay 24-09-2023 в 19:36:

Цитата:
Дядя Миша писал:
Это хорошо или плохо?

Это выглядит лучшим вариантом. То, чего не может делать vhlt одновременно,
как здесь слева:
https://i.imgur.com/1nt63jP.jpeg
и здесь справа:
https://i.imgur.com/hNxxQsW.jpeg
Но я бы сказал сложение стилей получается сильно ярким.
О! Ведь есть команда r_lighting_modulate, поставил 0.5 вместо 0.6, и уже не так ослепительно.

Добавлено 25-09-2023 в 02:24:

Но в целом от 0.5 темнее становится...

Добавлено 25-09-2023 в 02:36:

А в Голде работает ограничение, как Crystallize уже показывал
https://imgur.com/a/aRxjz2i
Тут надо смотреть CL_RunLightStyles


Отправлено Crystallize 25-09-2023 в 10:49:

Цитата:
Decay писал:
Log(" -limiter # : Set light clipping threshold (-1=None)\n");


limiter -1 позволяет делать сложение яркости лайтстилей, но при этом делает бледные пятна в остальных случаях.
limiter 255 будет в основном лучше, но дает резкие переходы между пятнами света разных лайтстилей.

Так без границы и граница 255 это же одно и то же, почему они вообще разнесены? Включается разное поведение компилятора чтоли?

Добавлено 25-09-2023 в 17:49:

Цитата:
Decay писал:
Справа расположен обычный браш со светящейся текстурой. Овербрайт везде включен. Много картинок:

Самая первая выглядит лучше всего.


Отправлено Decay 25-09-2023 в 12:16:

Цитата:
Crystallize писал:
Так без границы и граница 255 это же одно и то же, почему они вообще разнесены? Включается разное поведение компилятора чтоли?

Там так:
code:
if (g_limitthreshold >= 0 && max > g_limitthreshold)

Цитата:
Crystallize писал:
Самая первая выглядит лучше всего.

А мне эти пятна не оч нравятся

https://i.imgur.com/XmHgEX2.jpghttps://i.imgur.com/9JfdPXD.jpg
https://imgur.com/a/1OiGOL4


Отправлено FiEctro 25-09-2023 в 13:42:

Цитата:
Decay писал:
А мне эти пятна не оч нравятся


Согласен, очень плохо они смотрятся. Ладно бы они того же цвета были или нормализованы как то.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Crystallize 08-11-2023 в 20:18:

Цитата:
Decay писал:
Вообще, я все-таки считаю что при 7 лайтмапа выглядит сильно светлой.

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

Добавлено 09-11-2023 в 03:18:

Почему tr.lightstylevalue[surf->styles[map]] всегда 158 либо 0?


Отправлено Crystallize 09-11-2023 в 16:31:

Это типа математика лайтстилей когда a=0 и z=511?


Отправлено Дядя Миша 09-11-2023 в 18:22:

Там идёт предумножение на 264.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 10-11-2023 в 15:33:

Дядя Миша r_lighting_modulate домножается? Или как из 264 получилось 158?

По сути весь фикс овербрайта в замене GL_ZERO на GL_DST_COLOR и фиксе множителя.

А вот эти строчки там зачем?
pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
Они есть уже, так сказать, в ванильной 4529, но визуально ни на что не влияют.


Отправлено LokiMb 18-11-2023 в 15:50:

говорят овербрайт починили
https://half-life.com/en/halflife25/

__________________
УВАЖАЕМЫЕ ЖИРЫ ДЕРИТЕСЬ ЗА ПОНИ!


Отправлено FiEctro 18-11-2023 в 16:01:

LokiMb
Хз, переключая gl_overbright я разницы никакой не увидел.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Crystallize 18-11-2023 в 16:43:

Короче весь фикс был в замене gl_zero на gl_dst_color и в смене делителя. Вот эти строчки с окончаниями gl_combine и gl_replace вообще неизвестно для чего нужны. Но я их у себя оставил, вдруг какой-нибудь ПНВ в опфоре сломается.

FiEctro А ты сейв-лоад делал?


Отправлено FiEctro 18-11-2023 в 17:26:

Цитата:
Crystallize писал:
FiEctro А ты сейв-лоад делал?



А смысл? Рестартить игру я пробовал, ничего не поменялось.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено XaeroX 18-11-2023 в 19:15:

Цитата:
FiEctro писал:
Хз, переключая gl_overbright я разницы никакой не увидел.

+1
Там какая-то хитрость есть?

Добавлено 18-11-2023 в 15:15:

А всё, разобрался.

__________________

xaerox on Vivino


Отправлено FiEctro 18-11-2023 в 19:47:

Цитата:
XaeroX писал:
А всё, разобрался.


хоть написал бы как

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено XaeroX 18-11-2023 в 19:52:

FiEctro
gl_use_shaders 0/1

__________________

xaerox on Vivino


Отправлено Дядя Миша 18-11-2023 в 19:56:

Цитата:
XaeroX писал:
gl_use_shaders 0/1

Походу HLFX поломается под этим билдом.

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 18-11-2023 в 20:49:

Дядя Миша
Пусть чинят, я никуда не спешу.

__________________

xaerox on Vivino


Отправлено FiEctro 27-11-2023 в 11:43:

Цитата:
XaeroX писал:
gl_use_shaders 0/1



Спасибо, но если честно практически не увидел разницы. Разве что бледные залысины стали чуть лучше. Какой то фейковый овербрайт.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено XaeroX 27-11-2023 в 13:29:

FiEctro
Хм, мне показалось, что это совершенно обычный овербрайт, залысины пропадают полностью. А тебе какой овербрайт надо - полноценный, с HDR? Так под него и лайтмапы в HDR нужны.

__________________

xaerox on Vivino


Временная зона GMT. Текущее время 23:05.
Показать все 104 сообщений этой темы на одной странице

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