HLFX.Ru Forum Страницы (7): « 1 2 [3] 4 5 6 7 »
Показать все 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)


Отправлено 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 форк


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

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