diff --git a/src/common/rendering/vulkan/shaders/vk_shader.cpp b/src/common/rendering/vulkan/shaders/vk_shader.cpp index dac18887b..ac319726e 100644 --- a/src/common/rendering/vulkan/shaders/vk_shader.cpp +++ b/src/common/rendering/vulkan/shaders/vk_shader.cpp @@ -134,8 +134,8 @@ VkShaderProgram* VkShaderManager::Get(const VkShaderKey& key) {"Default", "shaders/scene/material_default.glsl", "shaders/scene/mateffect_default.glsl", "shaders/scene/lightmodel_shared.glsl", "shaders/scene/lightmodel_normal.glsl", "#define SHADERTYPE_DEFAULT\n"}, {"Warp 1", "shaders/scene/material_default.glsl", "shaders/scene/mateffect_warp1.glsl", "shaders/scene/lightmodel_shared.glsl", "shaders/scene/lightmodel_normal.glsl", "#define SHADERTYPE_WARP1\n"}, {"Warp 2", "shaders/scene/material_default.glsl", "shaders/scene/mateffect_warp2.glsl", "shaders/scene/lightmodel_shared.glsl", "shaders/scene/lightmodel_normal.glsl", "#define SHADERTYPE_WARP2\n"}, - {"Specular", "shaders/scene/material_spec.glsl", "shaders/scene/mateffect_default.glsl", "shaders/scene/lightmodel_shared.glsl", "shaders/scene/lightmodel_specular.glsl", "#define SHADERTYPE_SPECULAR\n#define SPECULAR\n#define NORMALMAP\n"}, - {"PBR", "shaders/scene/material_pbr.glsl", "shaders/scene/mateffect_default.glsl", "shaders/scene/lightmodel_shared.glsl", "shaders/scene/lightmodel_pbr.glsl", "#define SHADERTYPE_PBR\n#define PBR\n#define NORMALMAP\n"}, + {"Specular", "shaders/scene/material_default.glsl", "shaders/scene/mateffect_default.glsl", "shaders/scene/lightmodel_shared.glsl", "shaders/scene/lightmodel_specular.glsl", "#define SHADERTYPE_SPECULAR\n#define SPECULAR\n#define NORMALMAP\n"}, + {"PBR", "shaders/scene/material_default.glsl", "shaders/scene/mateffect_default.glsl", "shaders/scene/lightmodel_shared.glsl", "shaders/scene/lightmodel_pbr.glsl", "#define SHADERTYPE_PBR\n#define PBR\n#define NORMALMAP\n"}, {"Paletted", "shaders/scene/material_paletted.glsl", "shaders/scene/mateffect_default.glsl", nullptr, "shaders/scene/lightmodel_nolights.glsl", "#define SHADERTYPE_PALETTE\n#define PALETTE_EMULATION\n"}, {"No Texture", "shaders/scene/material_notexture.glsl", "shaders/scene/mateffect_default.glsl", "shaders/scene/lightmodel_shared.glsl", "shaders/scene/lightmodel_normal.glsl", "#define SHADERTYPE_NOTEXTURE\n#define NO_LAYERS\n"}, {"Basic Fuzz", "shaders/scene/material_fuzz_standard.glsl", "shaders/scene/mateffect_default.glsl", "shaders/scene/lightmodel_shared.glsl", "shaders/scene/lightmodel_normal.glsl", "#define SHADERTYPE_FUZZ\n#define SHADERTYPE_FUZZ_BASIC\n"}, diff --git a/wadsrc/static/shaders/scene/material.glsl b/wadsrc/static/shaders/scene/material.glsl index a37c0d30e..8e8217f6c 100644 --- a/wadsrc/static/shaders/scene/material.glsl +++ b/wadsrc/static/shaders/scene/material.glsl @@ -58,14 +58,27 @@ void SetMaterialProps(inout Material material, vec2 texCoord) #if defined(TEXF_Brightmap) material.Bright = desaturate(texture(brighttexture, texCoord.st)); #endif - + #if defined(TEXF_Detailmap) vec4 Detail = texture(detailtexture, texCoord.st * uDetailParms.xy) * uDetailParms.z; material.Base.rgb *= Detail.rgb; #endif - + #if defined(TEXF_Glowmap) material.Glow = desaturate(texture(glowtexture, texCoord.st)); #endif + + #ifdef PBR + material.Metallic = texture(metallictexture, texCoord.st).r; + material.Roughness = texture(roughnesstexture, texCoord.st).r; + material.AO = texture(aotexture, texCoord.st).r; + #endif + + #ifdef SPECULAR + material.Specular = texture(speculartexture, texCoord.st).rgb; + material.Glossiness = uSpecularMaterial.x; + material.SpecularLevel = uSpecularMaterial.y; + #endif #endif + } diff --git a/wadsrc/static/shaders/scene/material_pbr.glsl b/wadsrc/static/shaders/scene/material_pbr.glsl deleted file mode 100644 index 79de3bb85..000000000 --- a/wadsrc/static/shaders/scene/material_pbr.glsl +++ /dev/null @@ -1,8 +0,0 @@ - -void SetupMaterial(inout Material material) -{ - SetMaterialProps(material, vTexCoord.st); - material.Metallic = texture(metallictexture, vTexCoord.st).r; - material.Roughness = texture(roughnesstexture, vTexCoord.st).r; - material.AO = texture(aotexture, vTexCoord.st).r; -} diff --git a/wadsrc/static/shaders/scene/material_spec.glsl b/wadsrc/static/shaders/scene/material_spec.glsl deleted file mode 100644 index 7de5b1d4e..000000000 --- a/wadsrc/static/shaders/scene/material_spec.glsl +++ /dev/null @@ -1,8 +0,0 @@ - -void SetupMaterial(inout Material material) -{ - SetMaterialProps(material, vTexCoord.st); - material.Specular = texture(speculartexture, vTexCoord.st).rgb; - material.Glossiness = uSpecularMaterial.x; - material.SpecularLevel = uSpecularMaterial.y; -}