Cheb's Game Engine

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: Cheb's Game Engine

Сообщение Cheb » 12.10.2018 15:23:26

все-же 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: я вложил в архив только те файлы, что изменил сам (включая исправление самого уродливого бага с динамическим освещением, лол)
Ланцош рулит и нагибает: Изображение
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 684
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Alex2013 » 14.10.2018 03:54:33

Скажу честно для меня первая часть про шедеры, дальние зоны и т.д. пока ну очень далека от моего уровня практики кодрера (я пока с трудом одну модель в OpenGL с грехом пополам из файла в своем проекте загружаю ) ... А "теорию" знакомую мне со времен "игровой практики" за крайние десять лет я уже капитально подзабыл. Но все-же что за проблемы проблемы с прозрачностью ? Странно как-то звучит! То есть если рендер ближнего плана получает текстуру дальнего плана то, что мешает сделать шейдерный ( или софт) пересчет для небольшого количества прозрачных текстур ? (Вода + витражи + например вазы ) Понимаю что сравнение малость неуместно, однако даже у меня что-то отдаленно похожее действует ( да по принципу "шоб було " но красиво ведь !)

Изображение
тупо смешивает по RGB с коэффициентом + маска (черный фон после моего кривого Open GL "рендера" но тормозит там чем угодно но только не "прозрачностью " )
Зы
Вообщем неужели нельзя этот с позволения сказать "код"
Код: Выделить всё
  pd[x*3]:=round((1-Amount)*ps1[x*3]+Amount*ps2[x*3]);
  pd[x*3+1]:=round((1-Amount)*ps1[x*3+1]+Amount*ps2[x*3+1]);
  pd[x*3+2]:=round((1-Amount)*ps1[x*3+2]+Amount*ps2[x*3+2]);

в шейдер вставить или в софт режиме для пары тройки полигонов посчитать (чтобы хотя-бы воду сделать ) ? :roll:
Зы
Кстати воду вообще можно считать отдельно как "пост процесс"... Закрасив например края прозрачных контуров "невозможным цветом". (Кстати всякие эффекты преломления искажения и тд в этом варианте делаются просто "на ура"! )
Зы Зы
Извини если написал чушь с точки зрения технологии 3д-рендаринга... Я действительно еще сильно в ней "плаваю". (Кажется "простая прозрачность" есть как базовое свойство в том же OpenGL но вроде она там тормозит не чахло и хуже ее только отражения ... ) По освещению : Мне кажется что все красивости современных эффектов освещения можно делать на уровне подготовки тектур (Вот там можно для простой локатации действительно предварительно посчитать от 18 до 180 вариантов текстуры стен для всех возможны углов обзора (хоть с бампом , хоть с "рефлексией" с бликами хоть с тенями от стационарных ламп и т.д . ) ) :idea:
Хм интересно ! Можно протестировать на валяющейся у меня где-то демке с "кбической" панорамой .
А вообще уровень моих знаний в области 3д-рендаринга явно нуждается в капитальном "освежении", а то чувствую, что даже в простом обсуждении ничего путного предложить не могу . :roll: Позор мне ленивому !
Alex2013
энтузиаст
 
Сообщения: 1000
Зарегистрирован: 03.04.2013 11:59:44

Пред.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru