2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 11:07:44 +00:00

CModelShaders: Split Thermal into ThermalModel, ThermalStatic extended shaders

This semi-hacky approach will be replaced with future hsh work
This commit is contained in:
2020-12-18 06:07:53 -05:00
parent 1e0bdce5a3
commit 168eb6ac39
11 changed files with 59 additions and 19 deletions

View File

@@ -86,9 +86,18 @@ static std::array<hecl::Backend::ExtensionSlot, size_t(EExtendedShader::MAX)> g_
/* Normal lit shading */
{0, nullptr, hecl::Backend::BlendFactor::Original, hecl::Backend::BlendFactor::Original,
hecl::Backend::ZTest::Original, hecl::Backend::CullMode::Backface, false, false, true},
/* Thermal Visor shading */
/* Thermal model shading */
{1, ThermalTextures.data(), hecl::Backend::BlendFactor::One, hecl::Backend::BlendFactor::One,
hecl::Backend::ZTest::Original, hecl::Backend::CullMode::Backface, false, false, false, true},
/* Thermal model shading without Z-test or Z-write */
{1, ThermalTextures.data(), hecl::Backend::BlendFactor::One, hecl::Backend::BlendFactor::One,
hecl::Backend::ZTest::None, hecl::Backend::CullMode::Backface, true, false, false, true},
/* Thermal static shading */
{0, nullptr, hecl::Backend::BlendFactor::SrcAlpha, hecl::Backend::BlendFactor::One,
hecl::Backend::ZTest::Original, hecl::Backend::CullMode::Backface, false, false, false, true, false, false, true},
/* Thermal static shading without Z-write */
{0, nullptr, hecl::Backend::BlendFactor::SrcAlpha, hecl::Backend::BlendFactor::One,
hecl::Backend::ZTest::Original, hecl::Backend::CullMode::Backface, true, false, false, true, false, false, false},
/* Forced alpha shading */
{0, nullptr, hecl::Backend::BlendFactor::SrcAlpha, hecl::Backend::BlendFactor::InvSrcAlpha,
hecl::Backend::ZTest::Original, hecl::Backend::CullMode::Backface, false, false, true},
@@ -166,7 +175,10 @@ static std::array<hecl::Backend::ExtensionSlot, size_t(EExtendedShader::MAX)> g_
constexpr std::array<const char*, size_t(EExtendedShader::MAX)> ShaderMacros{
"URDE_LIGHTING",
"URDE_LIGHTING",
"URDE_THERMAL_HOT",
"URDE_THERMAL_MODEL",
"URDE_THERMAL_MODEL",
"URDE_THERMAL_STATIC",
"URDE_THERMAL_STATIC",
"URDE_LIGHTING",
"URDE_LIGHTING",
"URDE_SOLID",

View File

@@ -24,7 +24,10 @@ class CLight;
enum class EExtendedShader : uint8_t {
Flat,
Lighting,
Thermal,
ThermalModel,
ThermalModelNoZTestNoZWrite,
ThermalStatic,
ThermalStaticNoZWrite,
ForcedAlpha,
ForcedAdditive,
SolidColor,

View File

@@ -2,6 +2,7 @@
#include <array>
#include "Runtime/Graphics/CBooRenderer.hpp"
#include "Runtime/Graphics/CGraphics.hpp"
#include "Runtime/Graphics/CTexture.hpp"