HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > gl_overbright
Страницы (7): « 1 [2] 3 4 5 6 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12901
Возраст: 32

Рейтинг



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


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

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

Сообщить модератору | | IP: Записан
Сообщение: 215626

Старое сообщение 04-09-2023 07:18
- За что?
Decay
Житель форума

Дата регистрации: Mar 2010
Проживает: N/A
Сообщений: 231

Рейтинг



Я так понял надо сделать операцию с лайтмапой, чтобы она осветлилась, потом смешивать обычным способом чтобы не было такой выкрученной цветовой насыщенности
А было бы еще проще спросить у 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.

Сообщить модератору | | IP: Записан
Сообщение: 215634

Старое сообщение 05-09-2023 04:21
- За что?
Decay
Житель форума

Дата регистрации: Mar 2010
Проживает: N/A
Сообщений: 231

Рейтинг



Я просто поменял смещение в 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

Сообщить модератору | | IP: Записан
Сообщение: 215639

Старое сообщение 05-09-2023 16:15
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
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'

Сообщить модератору | | IP: Записан
Сообщение: 215640

Старое сообщение 05-09-2023 16:24
-
Decay
Житель форума

Дата регистрации: Mar 2010
Проживает: N/A
Сообщений: 231

Рейтинг



Все-таки не 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 лишь немного подсветит картинку

Сообщить модератору | | IP: Записан
Сообщение: 215641

Старое сообщение 05-09-2023 17:25
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
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'

Сообщить модератору | | IP: Записан
Сообщение: 215644

Старое сообщение 05-09-2023 18:23
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12901
Возраст: 32

Рейтинг



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

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

Сообщить модератору | | IP: Записан
Сообщение: 215646

Старое сообщение 05-09-2023 19:02
- За что?
Decay
Житель форума

Дата регистрации: Mar 2010
Проживает: N/A
Сообщений: 231

Рейтинг



Дядя Миша

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

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


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

Сообщить модератору | | IP: Записан
Сообщение: 215647

Старое сообщение 05-09-2023 19:13
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4423
Возраст: 34

Рейтинг



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

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

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

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

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

Сообщить модератору | | IP: Записан
Сообщение: 215655

Старое сообщение 06-09-2023 06:20
- За что?
Decay
Житель форума

Дата регистрации: Mar 2010
Проживает: N/A
Сообщений: 231

Рейтинг



Цитата:
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:

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

Сообщить модератору | | IP: Записан
Сообщение: 215657

Старое сообщение 06-09-2023 13:48
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4423
Возраст: 34

Рейтинг



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

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

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

Сообщить модератору | | IP: Записан
Сообщение: 215658

Старое сообщение 06-09-2023 16:43
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4423
Возраст: 34

Рейтинг



Цитата:
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 бит? Лайтмапа исправилась, но всё равно не совпадает с ГС. Всё ещё светлее в хайлайтах и чуть плывет разводами по гамме.

Сообщить модератору | | IP: Записан
Сообщение: 215676

Старое сообщение 08-09-2023 01:50
- За что?
Decay
Житель форума

Дата регистрации: Mar 2010
Проживает: N/A
Сообщений: 231

Рейтинг



Цитата:
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

Сообщить модератору | | IP: Записан
Сообщение: 215682

Старое сообщение 09-09-2023 12:37
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4423
Возраст: 34

Рейтинг



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

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

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

Сообщить модератору | | IP: Записан
Сообщение: 215683

Старое сообщение 09-09-2023 16:36
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4423
Возраст: 34

Рейтинг



Цитата:
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 этаже. Там приборная панель пол-зала стала засвечивать.

Сообщить модератору | | IP: Записан
Сообщение: 215738

Старое сообщение 10-09-2023 20:28
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 22:02. Новая тема    Ответить
Страницы (7): « 1 [2] 3 4 5 6 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > gl_overbright
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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