File ShaderBuildIn.cpp
File List > render > ShaderBuildIn.cpp
Go to the documentation of this file
#include "ShaderLib.h"
/* Build-in shaders */
std::vector<std::string> ShaderLib::SSR_prefix = { "none", "", "_SDF", "_SDF_Resolve" };
std::vector<std::string> ShaderLib::AA_prefix = { "none", "MS", "FX" };
std::vector<std::string> ShaderLib::AO_prefix = { "none", "SS", "HB" };
std::vector<std::string> ShaderLib::Shadow_prefix = { "none", "", "_SDF", "_VSSM", "_MSSM", "_TMSSM"};
/* Build-in functions */
const S_func ShaderLib::FilmicF;
const S_func ShaderLib::FilmicV4;
/* Build-in constants */
const S_const ShaderLib::PI = { FLOAT_PARA, "B_PI", "3.141592653589", {} };
const S_const ShaderLib::Pix_UV_ratio = { FLOAT_PARA, "B_PIX_UV_RATIO", "1.0 / textureSize(select_texture, 0)", {} };
/* Build-in constexpressions */
const S_const ShaderLib::v_albedo = { VEC3_PARA, "m_albedo", "vec3(U_albedo)", {} };
const S_const ShaderLib::v_metal = { FLOAT_PARA, "m_metal", "vec3(U_metal).r", {} };
const S_const ShaderLib::v_rough = { FLOAT_PARA, "m_rough", "vec3(U_rough).r", {} };
const S_const ShaderLib::v_specu = { FLOAT_PARA, "m_specu", "vec3(U_specu).r", {} };
const S_const ShaderLib::v_emis_c = { VEC3_PARA, "m_emis_c", "vec3(U_emis_c)", {} };
const S_const ShaderLib::v_emis_s = { FLOAT_PARA, "m_emis_s", "vec3(U_emis_s).r", {} };
const S_const ShaderLib::v_alpha = { FLOAT_PARA, "m_alpha", "vec3(U_alpha).r", {} };
const S_const ShaderLib::t_albedo = { VEC3_PARA, "m_albedo", "texture2D(U_albedo, uv).rgb", {} };
const S_const ShaderLib::t_metal = { FLOAT_PARA, "m_metal", "texture2D(U_metal, uv).r", {} };
const S_const ShaderLib::t_rough = { FLOAT_PARA, "m_rough", "texture2D(U_rough, uv).r", {} };
const S_const ShaderLib::t_specu = { FLOAT_PARA, "m_specu", "texture2D(U_specu, uv).r", {} };
const S_const ShaderLib::t_emis_c = { VEC3_PARA, "m_emis_c", "texture2D(U_emis_c, uv).rgb", {} };
const S_const ShaderLib::t_emis_s = { FLOAT_PARA, "m_emis_s", "texture2D(U_emis_s, uv).r", {} };
const S_const ShaderLib::t_alpha = { FLOAT_PARA, "m_alpha", "texture2D(U_alpha, uv).r", {} };
const std::vector<S_const> ShaderLib::v_material = { v_albedo,v_metal,v_rough,v_specu,v_emis_c,v_emis_s,v_alpha };
const std::vector<S_const> ShaderLib::t_material = { t_albedo,t_metal,t_rough,t_specu,t_emis_c,t_emis_s,t_alpha };