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)
Отправлено Decay 11-09-2023 в 20:24:
Цитата:
Crystallize писал:
Посмотри карту xash_demo, на улице и на 2 этаже. Там приборная панель пол-зала стала засвечивать.
По-моему это настолько старая карта, что компилилась еще ZHLT.




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 )) |
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 ); |
5 | pglBlendFunc( GL_ZERO, GL_SRC_COLOR ); |
7 | pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ); |
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

Вариант с 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 ) |
7 | for (int i=0; i<lightmapSize ; ++i) |
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-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 ); |
Поменял на 2.0 и получил результат. Не думал что будет так просто
Но надо проверить, не вылезло ли это боком где-то в другом месте.


Кстати заметил особенность. В 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 форк