Draw depth pass and portal occlusion test

This commit is contained in:
dpjudas 2023-10-31 03:04:20 +01:00 committed by Magnus Norddahl
commit 57fe68c8a1
6 changed files with 71 additions and 14 deletions

View file

@ -75,7 +75,8 @@ VkShaderProgram* VkShaderManager::Get(const VkShaderKey& key)
const auto& desc = effectshaders[key.SpecialEffect];
program.vert = LoadVertShader(desc.ShaderName, mainvp, desc.defines, key.UseLevelMesh);
program.frag = LoadFragShader(desc.ShaderName, desc.fp1, desc.fp2, desc.fp3, desc.fp4, desc.defines, key);
if (!key.NoFragmentShader)
program.frag = LoadFragShader(desc.ShaderName, desc.fp1, desc.fp2, desc.fp3, desc.fp4, desc.defines, key);
}
else
{
@ -113,7 +114,8 @@ VkShaderProgram* VkShaderManager::Get(const VkShaderKey& key)
{
const auto& desc = defaultshaders[key.EffectState];
program.vert = LoadVertShader(desc.ShaderName, mainvp, desc.Defines, key.UseLevelMesh);
program.frag = LoadFragShader(desc.ShaderName, mainfp, desc.material_lump, desc.mateffect_lump, desc.lightmodel_lump, desc.Defines, key);
if (!key.NoFragmentShader)
program.frag = LoadFragShader(desc.ShaderName, mainfp, desc.material_lump, desc.mateffect_lump, desc.lightmodel_lump, desc.Defines, key);
}
else
{
@ -122,7 +124,8 @@ VkShaderProgram* VkShaderManager::Get(const VkShaderKey& key)
FString defines = defaultshaders[desc.shaderType].Defines + desc.defines;
program.vert = LoadVertShader(name, mainvp, defines.GetChars(), key.UseLevelMesh);
program.frag = LoadFragShader(name, mainfp, desc.shader.GetChars(), defaultshaders[desc.shaderType].mateffect_lump, defaultshaders[desc.shaderType].lightmodel_lump, defines.GetChars(), key);
if (!key.NoFragmentShader)
program.frag = LoadFragShader(name, mainfp, desc.shader.GetChars(), defaultshaders[desc.shaderType].mateffect_lump, defaultshaders[desc.shaderType].lightmodel_lump, defines.GetChars(), key);
}
}
return &program;

View file

@ -80,7 +80,8 @@ public:
uint64_t LightMode : 2; // LIGHTMODE_DEFAULT, LIGHTMODE_SOFTWARE, LIGHTMODE_VANILLA, LIGHTMODE_BUILD
uint64_t UseLevelMesh : 1; // USE_LEVELMESH
uint64_t FogBalls : 1; // FOGBALLS
uint64_t Unused : 43;
uint64_t NoFragmentShader : 1;
uint64_t Unused : 42;
};
uint64_t AsQWORD = 0;
};