Добавил HDR-рендеринг, вычисления цвета и яркости в формате плавающей точки, что позволило избавиться от характерных артефактов LDR-рендеринга:
Для ужатия HDR в LDR реализован Filmic Tone Map, сделана автоподстройка яркости.
Цвары:
r_hdr "1" CVAR_ARCHIVE | CVAR_LATCH включить HDR-рендеринг.
r_toneMap "1" CVAR_ARCHIVE | CVAR_LATCH (поддерживается быстрое применение параметра) включить tonemap, подстройку яркости сцены.
r_autoExposure "1" CVAR_CHEAT при 0 запрет автоподстройки яркости.
r_autoExposureTime "0.5" CVAR_ARCHIVE (лимит от 0.1 до 4) время (секунды) автоподстройки.
r_forceToneMap "0" CVAR_CHEAT при 1 форсируется применение следующих параметров:
r_forceToneMapMin "-8.0" CVAR_CHEAT минимум
r_forceToneMapAvg "-2.0" CVAR_CHEAT среднее
r_forceToneMapMax "0.0" CVAR_CHEAT максимум
r_forceAutoExposure "0" CVAR_CHEAT при 1 форсируется применение следующих параметров:
r_forceAutoExposureMin "-2.0" CVAR_CHEAT минимальная граница яркости
r_forceAutoExposureMax "2.0" CVAR_CHEAT максимальная граница яркости
Параметры r_forceToneMap и r_forceAutoExposure позволяют разработчикам карт оперативно подобрать приемлимые параметры toneMap и autoExposure.
Параметры материала неба:
q3gl2_tonemap toneMin toneAvg toneMax autoExposureMin autoExposureMax позволяет задать все параметры тонмапа и автоподстройки. Применять в материалах неба.
Команды редактора:
autoExposureMinMax min max задать границы автоподстройки яркости.
toneMinAvgMax toneMin toneAvg toneMax задать параметры tonemap: минимум, среднюю, максимум яркости.
Редактор сохраняет данные в worldspawn блок релайта.
Соответственно, то же самое можно загрузить и из BSP, для новых карт, вот параметры worldspawn:
autoExposureMinMax min max задаёт границы автоподстройки яркости.
tonemap toneMin toneAvg toneMax autoExposureMin autoExposureMax более полная версия autoExposureMinMax, позволяет задать все параметры тонмапа и автоподстройки.
Заменена система image programs на функции, совместимые с idTech4:
These can be used anywhere that accepts <map> and can be nested
Цитата:
heightmap(<map>, <float>) Turns a grayscale height map into a normal map. <float> varies the bumpiness
addnormals(<map>, <map>) Adds two normal maps together. Result is normalized.
smoothnormals(<map>) Does a box filter on the normal map, and normalizes the result.
add(<map>, <map>) Adds two images without normalizing the result
scale(<map>, <float> [,float] [,float] [,float]) Scales the RGBA by the specified factors. Defaults to 0.
invertAlpha(<map>) Inverts the alpha channel (0 becomes 1, 1 becomes 0)
invertColor(<map>) Inverts the R, G, and B channels
makeIntensity(<map>) Copies the red channel to the G, B, and A channels
makeAlpha(<map>) Sets the alpha channel to an average of the RGB channels. Sets the RGB channels to white.
Новые функции:
makeColor(<map>) Copies the Alpha channel to the R, G and B channels
mul(<map>, <map>) Multiply two images without normalizing the result
bias(<map>, <float> [,float] [,float] [,float]) Shifts the RGBA by the specified factors. Defaults to 0.
makeLuminance(<map>) Sets the RGB channels to an average of the RGB channels. Sets the alpha channel to white.
smooth(<map>) Does a box filter on the RGBA without normalizing the result
Отменен кламп цвета лайтов при r_hdr = 1
Цвару r_noLODmodel выставил значение по умолчанию "0". При "0" модели с лодами будут кушать больше vbo-памяти, но это может дать небольшой прирост fps.
Поправил работу с травой в RTCW, трава не рисовалась на карте forest, хотя тень от неё была.
Прочие мелкие багфиксы и оптимизации.....