все-же 8.1 против 9.0 на GeForce FX 5200
Упс. Попутал его с 9500.
Нет, ниже GLSL и SM 2.0 я спускаться не буду, просто потому, что задуманное без шейдеров тупо невозможно.
Я просто старался обратить внимание на тот факт что оно ВАЖНО (и очень сильно влияет на восприятие картинки... )
А то. Освещение - это очень интересный вопрос. За основу взял майнкрафт. Главной головоломкой для меня стала та проблема, что в майнкрафте решается... Скажем так, некрасиво. Под открытым небом - голубой туман, с которым сбленживаются дали. В пещерах - темнота, с которой сбленживаются дали. Майнкрафт тупо меняет цвет тумана, при входе в темноту делая его чёрным. При этом вид из пещеры наружу... Фу. Вид издали под нависающий козырёк - тоже фу.
А у меня ещё усугубляется тем, что дали будут сбленживаться не с цветом, а с замыленным рендером дальней зоны (от 50 м до горизонта). Пробовал и так, и этак, насиловал себе мозг в стиле "как же ёжики ******?". Больше одного прохода *крайне* нежелательно, их и так уже два. Чтение из глубины целевая платформа не держит.
Потом догадался поставить лошадь впереди паровоза: любой шейдер, рендерящий ближнюю зону (т.е. основную) в качестве одного из входов получает текстуру дальней зоны. Это его, конечно, утяжеляет, но а) дальняя зона низкого разрешения (мыло, мыло везде!) и б) передавать ничего не надо, достаточно одного юниформного вектора чтобы пиксельный шейдер взял свои экранные координаты, перевёл их в координаты бекграунда и прочитал оттуда.
В комбинации с четырёхкомпонентным освещением "красный-зелёный-синий-дневной_свет" это решает проблему элегантным хаком. А поскольку прозрачности не будет (на самом деле будет, но только на основе дизеринга / шума / того и другого вместе, можно без хлеба) то и проблем с блендингом от такого хака нет.
Теней у меня не будет (разве что размытый кружок, как в третьем квейке): в качестве нижнего лода часто встречающихся объектов будут применяться спрайты, пререндерённые из соответствующих моделей. Причём, шестикомпонентные: глубина/альфа, амбиент оклюжен, s в скине, t в скине, бинормаль, тангента. Чтобы на этот спрайт можно было, например, натянуть металик environment mapping или использовать параметры материала из скина.
Хотел четырёхкомпонентные, с предзапечёным углом между вектором взгляда и вектором освещения, но нормальный металлик это не позволило бы.
(Кстати нативный Ку2 отличный пример как можно испортить весь графон если использовать совсем уж "невидимое" и кривое освещение ...
Оптимизация, десу. Насколько помню, для моделей брали освещённость из лайтмапы под ногами, а вектора там нету и его брали с потолка. Чтобы осветить модели так же хорошо, как стены, понадобился бы нереальный объём памяти с 3d лайтмапами, вычислением и хранением векторов... А мужики за каждый байт бились.
Ну, по крайней мере, софтредер в 320х200 выглядел норм. 640х480 мой комп не тянул, а Voodoo2 я обзавёлся много позже. Предзапечённый амбиент оклюжен из ку2 - до сих пор эталон качества.
Разумеется СЕЙЧАС это реальный мод . но представь какой был бы "шок и трепет" если бы q2 СРАЗУ мог бы выдать подобное изображение !
Ну, не знаю. Для своего времени и ванильный вполне шок и трепет был.
Увы, для бампа нужно запекать в лайтмапу не просто освещение, а направленное освещение (вот, как во второй халфе) и нужен пиксельный шейдер. А до девятого директикса это всё было уделом титанов от программирования и юзверей с титаническим кошельком.
4 Про "подводный" мод ку2: Я все же "догадался"( ну правда при помощи поиска
Рабочая ссылка http://chebmaster.com/q2facelift/index_ru.html
Мод наивно полагает, что все мониторы на свете - 4:3. Может понадобиться выставить квадратное разрешение рабочего стола перед запуском.
Для перекомпиляции нужен Turbo Delphi и исходники проекта Quake 2 Delphi: я вложил в архив только те файлы, что изменил сам (включая исправление самого уродливого бага с динамическим освещением, лол)
Ланцош рулит и нагибает:
