LINUX.ORG.RU

Настраиваем vkBasalt для использования своих шейдеров

 


2

0

vkBasalt – это слой API vulkan, позволяющий выполнить собственные шейдеры в трёхмерной сцене без необходимости модифицировать приложение, осуществляющее рендеринг.

Слой входит в состав диструбитва Debian и устанавливается как обычно:

# apt install vkbasalt

Создаём в произвольном месте файл vkBasalt.conf. В файле прописываем следующие настройки:

  1. Кнопка включения / отключения эффектов наживую
toggleKey = Home

Работает в среде X window, и в настоящий момент не поддерживается в среде wayland, где придётся пользоваться следующей настройкой.

  1. Включать эффекты при запуске
enableOnLaunch = True
  1. Пути к текстурам и шейдерам:
reshadeTexturePath = "/path/to/reshade/Textures"
reshadeIncludePath = "/path/to/reshade/Shaders"

  1. Присваиваем имя эффекта конкретному шейдеру:
EyeAdaption = "/path/to/reshade/Shaders/EyeAdaption.fx"
  1. Активируем эффект в конфигурации
effects = EyeAdaption

Если хотим активировать несколько эффектов, перечисляем их через двоеточие:

effects = EyeAdaption1:EyeAdaption2

На этом минимальная конфигурация завершена. Переходим к настройкам запуска приложения. Прописываем следующие переменные окружения:

  1. Путь к файлу с конфигурацией:
export VKBASALT_CONFIG_FILE=/path/to/vkBasalt.conf
  1. Активируем загрузку слоя vkBasalt при создании контекста вулкан-приложения:
export ENABLE_VKBASALT=1 

Готово.

Теперь в приложении, запущенном с этими переменными среды, будет включён по умолчанию дополнительный эффект, реализуемый указанным шейдером.

Дополнение по переносу GLSL-шейдеров из reShade в vkBasalt

Многие шейдеры для reShade имеют механизм конфуграции, позволяющий задать начальные значения для шейдера через графический интерфейс. vkBasalt такого инструментария не имеет, поэтому начальные значения придётся вписывать в шейдер напрямую. Посмотрим как это делается на примере EyeAdaption.fx:

Оригинальный код шейдера после блока комментариев начинается примерно следующим образом:

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#include "ReShade.fxh"
#include "ReShadeUI.fxh"

//effect parameters
uniform float fAdp_Delay <
...
...
...
> = 0.1;

//global vars
#define LumCoeff float3(0.212656, 0.715158, 0.072186)
uniform float Frametime < source = "frametime";>;

Все блоки кода вида uniform float Какое-тоИмя < ... > = 0.2; – это начальные константы и описание интерфейса для отображения в reShade. Для установки своих значений шейдера в vkBasalt достаточно закомментировать эти блоки и прописать свои значения напрямую в код шейдера для каждого из закомментированных блоков:

uniform float fAdp_BrightenHighlights=0.000000   ;
uniform float fAdp_BrightenMidtones=0.100000     ;
uniform float fAdp_BrightenShadows=0.100000      ;
uniform float fAdp_DarkenHighlights=0.000000     ;
uniform float fAdp_DarkenMidtones=0.000000       ;
uniform float fAdp_DarkenShadows=0.000000        ;
uniform float fAdp_Delay=0.000000                ;
uniform float fAdp_Equilibrium=0.000000          ;
uniform float fAdp_Strength=6.000000             ;
uniform float fAdp_TriggerRadius=7.000000        ;
★★★★★

Проверено: dataman ()
Последнее исправление: hobbit (всего исправлений: 3)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.