Данная тема натолкнула меня на некоторое небольшое иследование. Прошу прощения что создал новую, но не хочется вести дискуссию на английском, и вообще мешаться автору.
Всё дело в том, как я возможно полагаю в сорсе используется немного иное "смешивание" лайтмап с текстурой.
Внизу приведен пример на GoldSrc и Source без HDR, почти одна и таже карта с одинаковыми текстурами (кроме потолка) и размерами лайтмапы. На них присутствует по одному источнику света light. Как видно по скриншоту в Source лайтмапа может засветить текстуру так, что её не будет видно, в то время как GoldSrc никогда нам не даст этого сделать, текстура всегда будет хорошо разборчиво видна (эти места обведены красным кругом), что даёт не очень хороший эффект при больших значениях.
К сожалению мне не удалось сделать на обеих картах одинакового значения освещенности. Всё что вы видете под скрином в Source под хл1 выглядило как norad даже при 1/2 значения освещенности по сравнению с хл2 (-gamma тоже не помог).
Если взглянуть на обычные халфовские лайтмапы без текстур, впринципе они выглядят совсем не так уж плохо, так что не думаю что тут дело в компиляторе.
Так что прошу наших уважаемых знатоков объяснить мне, в чем же там всё таки дело, и почему ГолдСорсовские лайтмапы никогда нельзя засветить так, чтоб не было видно самой текстуры.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
В голдсрц используется простое умножение текстуры на лайтмапу, что в силу математических причин не может дать эффекта "засвечивания" - пиксель никак не может стать ярче чем был. Это стандартная операция для fixed pipeline. А в хл2 используется хитрый шейдер "lightmappedgeneric" с самопальным алгоритмом смешивания.
thambs
Можно подробнее? Government-Man
Самопальным? А можно конкретнее? Как он работает?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Government-Man
Курил, моё познание Директа равно нулю. Можешь описать в 2х словах?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Government-Man
А можно подробнее про overbrightFactor/2 ?
З.Ы. с помощью Попошопа удалось получить схожий с сорсом результат, умножив яркость и контраст на 2, как в принципе написал ксерокс (правда там похоже только яркость). Так же спасибо CrazyRussianу за конкретное объяснение и реализацию на практике, XaeroX и Government-Man за примеры.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
linearToLightmap[i] = ( int )( f * 255 * overbrightFactor );
37
if (linearToLightmap[i] > 255)
38
linearToLightmap[i] = 255;
39
}
40
}
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!