Support camera-config color-scale pass stacks

This commit is contained in:
2026-04-06 14:37:54 +08:00
parent f0d3f251b4
commit 3a64c325bf
6 changed files with 154 additions and 30 deletions

View File

@@ -9,6 +9,7 @@
#include <XCEngine/Resources/Material/Material.h>
#include <string>
#include <vector>
namespace XCEngine {
namespace Components {
@@ -90,11 +91,16 @@ public:
const Math::Color& GetSkyboxBottomColor() const { return m_skyboxBottomColor; }
void SetSkyboxBottomColor(const Math::Color& value) { m_skyboxBottomColor = value; }
bool IsColorScalePostProcessEnabled() const { return m_colorScalePostProcessEnabled; }
void SetColorScalePostProcessEnabled(bool value) { m_colorScalePostProcessEnabled = value; }
bool IsColorScalePostProcessEnabled() const;
void SetColorScalePostProcessEnabled(bool value);
const Math::Vector4& GetColorScalePostProcessScale() const { return m_colorScalePostProcessScale; }
void SetColorScalePostProcessScale(const Math::Vector4& value) { m_colorScalePostProcessScale = value; }
const Math::Vector4& GetColorScalePostProcessScale() const;
void SetColorScalePostProcessScale(const Math::Vector4& value);
const std::vector<Math::Vector4>& GetColorScalePostProcessPasses() const { return m_colorScalePostProcessPasses; }
void SetColorScalePostProcessPasses(const std::vector<Math::Vector4>& values);
void AddColorScalePostProcessPass(const Math::Vector4& value);
void ClearColorScalePostProcessPasses() { m_colorScalePostProcessPasses.clear(); }
void Serialize(std::ostream& os) const override;
void Deserialize(std::istream& is) override;
@@ -119,8 +125,8 @@ private:
Math::Color m_skyboxTopColor = Math::Color(0.18f, 0.36f, 0.74f, 1.0f);
Math::Color m_skyboxHorizonColor = Math::Color(0.78f, 0.84f, 0.92f, 1.0f);
Math::Color m_skyboxBottomColor = Math::Color(0.92f, 0.93f, 0.95f, 1.0f);
bool m_colorScalePostProcessEnabled = false;
Math::Vector4 m_colorScalePostProcessScale = Math::Vector4::One();
Math::Vector4 m_colorScalePostProcessDefaultScale = Math::Vector4::One();
std::vector<Math::Vector4> m_colorScalePostProcessPasses;
};
} // namespace Components