Еще одну мелочь добавил - паразитное освещение у фонарика. Всегда меня расстраивало, что про него забывают, а оно и реалистичности добавляет, и играть комфортнее.
Дядя Миша писал: Вообще, если я не путаю, создать WGL-контекст с флоатами невозможно, мы создаём FBO, ставим его в качестве основного буффера и просто рендерим в него
А кто-то щас вообще рендерит прямо в примарный буффер?
ncuxonaT писал: Глубина из текстуры и gl_FragCoord.z ремапятся с 0-0,8 до 0-1. Зачем это нужно?
Потому что BUzer, когда делал первую параною искуственно ограничил диапазон нормального прохода от 0 до 0.8. В диапазоне 0.8-0.9 он нарисовал скайэнтити от 3д неба, а в диапазоне 0.9-1.0 соответственно задники скайбокса. Это единственный момент, который я поленился переделывать во второй параное, поскольку, мне бы тогда пришлось рисовать небо в отдельном проходе.
Цитата:
ncuxonaT писал: Что тогда передается через u_zFar?
Дядя Миша благодарю, с водой в какой-то степени справился
Теперь вопрос по кубемапам. Я правильно понял, что рендерятся они на стороне движка, и из самой Паранойи нельзя прописать им дефайны в шейдеры или сделать, чтобы они сохранялись с альфа-каналом? Нужно лезть в движок?
Добавлено 10-10-2020 в 02:53:
Вообще нет, с водой не всё ясно. Подводный туман не работает. В gl_backend.cpp идет проверка, если игрок под водой, то функцией WATER_ENTITY находится энтитя воды, и её параметры подставляются заместо глобального тумана.
Но WATER_ENTITY почему-то возвращает отрицательное значение. Как такое может быть?
ncuxonaT писал: Я правильно понял, что рендерятся они на стороне движка
Не совсем. На движок идёт команда - добавить скриншот кубемапы в очередь. На следующем кадре она выполняется и вызывает функцию VID_CubemapShot, которая в свою очередь шесть раз вызывает функцию R_DrawCubemapView, эта функция ставит флажки рендеринга RF_DRAW_WORLD и RF_DRAW_CUBEMAP, после чего вызывает обычный R_RenderFrame и вот он-то подхватывает встроенный рендер самой паранои и рендерит кубемапы её средствами. Таким образом параноя сама для себя рендерит кубемапы, движок только сохраняет их в файл и добавляет задание в очередь.
Цитата:
ncuxonaT писал: из самой Паранойи нельзя прописать им дефайны в шейдеры
вот это вот не понял.
Цитата:
ncuxonaT писал: сделать, чтобы они сохранялись с альфа-каналом
насчёт скриншотов с альфаканалом - я вообще таким никогда не баловался. Но да, это в движке, client\gl_backend.c->VID_CubemapShot там надо добавить флаг IMAGE_HAS_ALPHA и у glReadPixels поставить GL_RGBA. Только смысл?
Цитата:
ncuxonaT писал: то функцией WATER_ENTITY находится энтитя воды, и её параметры подставляются заместо глобального тумана.
а водичка на картинке это точно func_water? Плавать можно в ней?
Подводный туман слегка недоделан.