Не помню уже как точно но в общем весной этого года меня снова взяла ностальгия по этой игре и я установил её. Ну а начав играть вновь видимо испытал эстетическое неудовольствие от её внешнего вида что постепенно переросло в попытки моддинга. Я стал тестить различные моды на продвинутый бамп и на фонарик.
Результатом стал небольшой мод который фонариком форсит рендер всех секторов в кадре а затем шейдером выставляет им минимальное освещение. Фонарик взят из мода yamf-hl, а шейдер Brilliant Highlights 0.66.
Потом я обнаружил более новую версию шейдера, Brilliant Highlights NG, она была более запутанная но вроде как более красивая. Там ещё даже в коде отключена одна фича с затемнением бампинок внутри, которая упоминается в фичелисте.
В общем шейдер был прикольный но как будто глубины цвета там не хватало в итоге, и глубины яркости тоже из-за чего возникали характерные халфовские бензиновые пятна, но уже на динамике. Там используется MUL_SAT но простая замена на MUL ломает внутренние тени от бампинок.
В общем я с ним поработал, не скажу что победил обе проблемы, например недостаток глубины яркости я частично пофиксил через растягивание её в шейдере и изменение r_lightscale для компенсации. Картинка стала выглядеть ещё дальше от оригинальной игры, но как-то красивее вроде.
Далее скриншоты. Много не делал потому что в Думе 3 нельзя (почему???) перенести сохранение из одного мода в другой с теми же картами, грузится тупо стартовая позиция игрока.
Crystallize писал: Результатом стал небольшой мод который фонариком форсит рендер всех секторов в кадре а затем шейдером выставляет им минимальное освещение. Фонарик взят из мода yamf-hl, а шейдер Brilliant Highlights 0.66.
Забыл сказать, мод стал возможен только потому что я во всей игре выключил самозатенение. Иначе невозможно было включить баксплеши. Потому теперь монстры, нпс, всякие стулья, физбоксы, поднимаемые предметы не отбрасывают тени.* С тенями от неподвижных объектов типа перил и ящиков всё нормально-они есть.
*тени на задней стороне объектов где их освещает бакспеш, надо было спрятать, и также надо было решить проблему с Z-файтингом и с внезапным появлением external shadows в двух шагах от изумленного игрока. В целом я даже удивлён насколько всё хорошо сошлось. Обычно игры после 90х, например как Half-Life 2, представляют собой неисправляемое нечто с кучей хаков когда единственным обозримым подходом оказывается задротское исправление каждого уровня по одному объекту.
Также игра переписывает некоторые параметры поэтому конфиг пришлось ещё и залочить средствами Windows.
В ходе работы натолкнулся на странное поведение когда полностью черный горящий зомби стал неуязвимым. Поэтому материалы монстров и людей я оставил нетронутыми.
Я вспомнил как я начал всё это. Я включил бэклайт, но он включился из статиков только на одной колбочке, при этом рядом была эта аптечка на стене которая шейдилась пополигонно и с самозатенением и я долго не мог понять что происходит, думал где-то глюк, загружал модельку этой аптечки в LightWave, мучил ей нормали, группы сглаживания и прочее.
Дядя Миша даже если просто выводить на экран только диффузки, останется чернота в тех лифах которых не коснулся ни один лайт. Какие хочешь буферы подсвечивай в шейдере через MAX, это не помогает. Поэтому вешаем на игрока фонарик с яркостью около ноля (который независимо от прописанной яркости светит как 10 или 30)
Опциональный учёт бампа в баксплешах:
# diffuse to backlight
MUL_SAT R2.rgb, mod1, 1.5; #halved to fix OLIVE MUL backlight.w, backlight.w, localNormal.z;
Добавлено вчера в 23:24:
Цитата:
Crystallize писал: Забыл сказать, мод стал возможен только потому что я во всей игре выключил самозатенение. Иначе невозможно было включить баксплеши. Потому теперь монстры, нпс, всякие стулья, физбоксы, поднимаемые предметы не отбрасывают тени.* С тенями от неподвижных объектов типа перил и ящиков всё нормально-они есть.
На самом деле можно просто удалить папку materials и тени от монстров вернутся и почти всё будет выглядеть нормально.