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

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

Рейтинг



Диалоги о лайтмапах.

Данная тема натолкнула меня на некоторое небольшое иследование. Прошу прощения что создал новую, но не хочется вести дискуссию на английском, и вообще мешаться автору.
Всё дело в том, как я возможно полагаю в сорсе используется немного иное "смешивание" лайтмап с текстурой.
Внизу приведен пример на GoldSrc и Source без HDR, почти одна и таже карта с одинаковыми текстурами (кроме потолка) и размерами лайтмапы. На них присутствует по одному источнику света light. Как видно по скриншоту в Source лайтмапа может засветить текстуру так, что её не будет видно, в то время как GoldSrc никогда нам не даст этого сделать, текстура всегда будет хорошо разборчиво видна (эти места обведены красным кругом), что даёт не очень хороший эффект при больших значениях.
К сожалению мне не удалось сделать на обеих картах одинакового значения освещенности. Всё что вы видете под скрином в Source под хл1 выглядило как norad даже при 1/2 значения освещенности по сравнению с хл2 (-gamma тоже не помог).

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

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

__________________
Иван Топорышкин пошел на охоту,
С ним пудель пошел, перепрыгнув забор,
Иван, как бревно провалился в болото,
А пудель в реке утонул, как топор.

Отредактировано FiEctro 04-01-2011 в 20:35

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

Старое сообщение 04-01-2011 20:30
- За что?
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


В голдсрц используется простое умножение текстуры на лайтмапу, что в силу математических причин не может дать эффекта "засвечивания" - пиксель никак не может стать ярче чем был. Это стандартная операция для fixed pipeline. А в хл2 используется хитрый шейдер "lightmappedgeneric" с самопальным алгоритмом смешивания.

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

Старое сообщение 04-01-2011 21:06
- За что?
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



FiEctro

в хл2 логарифмический масштаб для уровней освещения, если память не отшибло.

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

Старое сообщение 04-01-2011 21:10
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
Government-Man писал:
что в силу математических причин не может дать эффекта "засвечивания" - пиксель никак не может стать ярче чем был

та может =)

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 04-01-2011 21:20
-
FiEctro
Кот Арсис

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

Рейтинг



thambs
Можно подробнее?
Government-Man
Самопальным? А можно конкретнее? Как он работает?

__________________
Иван Топорышкин пошел на охоту,
С ним пудель пошел, перепрыгнув забор,
Иван, как бревно провалился в болото,
А пудель в реке утонул, как топор.

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

Старое сообщение 04-01-2011 21:36
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34491
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


glTexEnvf( GL_COMBINE_ARB, GL_RGB_SCALE_ARB, 2.0f );

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

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

Старое сообщение 04-01-2011 21:37
-
FiEctro
Кот Арсис

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

Рейтинг



XaeroX
Спасибо, это уже что то .

__________________
Иван Топорышкин пошел на охоту,
С ним пудель пошел, перепрыгнув забор,
Иван, как бревно провалился в болото,
А пудель в реке утонул, как топор.

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

Старое сообщение 04-01-2011 21:41
- За что?
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


Цитата:
FiEctro писал:
Самопальным? А можно конкретнее? Как он работает?


Кури сорцы бетки

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

Старое сообщение 04-01-2011 21:49
- За что?
FiEctro
Кот Арсис

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

Рейтинг



Government-Man
Курил, моё познание Директа равно нулю. Можешь описать в 2х словах?

__________________
Иван Топорышкин пошел на охоту,
С ним пудель пошел, перепрыгнув забор,
Иван, как бревно провалился в болото,
А пудель в реке утонул, как топор.

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

Старое сообщение 04-01-2011 21:50
- За что?
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


code:
tex t0 tex t1 mul r0, t0, v0 ; base times vertex color (with alpha) mul r0.rgb, t1, r0 ; fold in lightmap (color only) mul_x2 r0.rgb, c0, r0 ; * 2 * (overbrightFactor/2)

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

Старое сообщение 04-01-2011 22:15
- За что?
PoD-Stas
Житель форума

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

Рейтинг



Government-Man тоже, что скинул Ксерокс, только в другой интерпретации))

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

Старое сообщение 04-01-2011 22:23
- За что?
FiEctro
Кот Арсис

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

Рейтинг



PoD-Stas
1 в 1? Я думал там еще гама крутится.

Government-Man
А можно подробнее про overbrightFactor/2 ?

З.Ы. с помощью Попошопа удалось получить схожий с сорсом результат, умножив яркость и контраст на 2, как в принципе написал ксерокс (правда там похоже только яркость). Так же спасибо CrazyRussianу за конкретное объяснение и реализацию на практике, XaeroX и Government-Man за примеры.

__________________
Иван Топорышкин пошел на охоту,
С ним пудель пошел, перепрыгнув забор,
Иван, как бревно провалился в болото,
А пудель в реке утонул, как топор.

Отредактировано FiEctro 05-01-2011 в 14:04

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

Старое сообщение 05-01-2011 13:58
- За что?
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


Цитата:
FiEctro писал:
А можно подробнее про overbrightFactor/2 ?


overbrightFactor - шейдерная константа (устанавливаемая движком). Чему она равна и откуда берется незнаю, разбираться лень...

Подбери ее методом тыка если надо.

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

Старое сообщение 05-01-2011 14:22
- За что?
FiEctro
Кот Арсис

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

Рейтинг



Government-Man
Это?
materialsystem\colorspace.cpp(140)

C++ Source Code:
1
float f, overbrightFactor;
2
 
3
// Can't do overbright without texcombine
4
// UNDONE: Add GAMMA ramp to rectify this
5
 
6
if ( (!HardwareConfig()) || !HardwareConfig()->HasTextureEnvCombine() )
7
{
8
  overbright = 1.0f;
9
}
10
 
11
if ( overbright == 2.0 )
12
{
13
  overbrightFactor = 0.5;
14
}
15
else if ( overbright == 4.0 )
16
{
17
  overbrightFactor = 0.25;
18
}
19
else
20
{
21
  overbrightFactor = 1.0;
22
}
23
 
24
g_config.overbright = overbright;
25
g_ooOverbright = overbrightFactor;
26
 
27
for (i=0 ; i<4096 ; i++)
28
{
29
  // convert from linear 0..4 (x1024) to screen corrected vertex space (0..1?)
30
  f = ( float )pow ( i/1024.0f, 1.0f / screenGamma );
31
 
32
  g_LinearToVertex[i] = f * overbrightFactor;
33
  if (g_LinearToVertex[i] > 1)
34
    g_LinearToVertex[i] = 1;
35
 
36
  linearToLightmap[i] = ( int )( f * 255 * overbrightFactor );
37
  if (linearToLightmap[i] > 255)
38
    linearToLightmap[i] = 255;
39
}
40
}

__________________
Иван Топорышкин пошел на охоту,
С ним пудель пошел, перепрыгнув забор,
Иван, как бревно провалился в болото,
А пудель в реке утонул, как топор.

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

Старое сообщение 05-01-2011 14:31
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



овербрайт был еще в третьей кваке.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 05-01-2011 14:49
-
Тема: (Опционально)
Ваш ответ:



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


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

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

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

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

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

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