载入中...
搜索中...
未找到
Bloom.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4#include <array>
5#include "common/Result.h"
6
7namespace eve::graphics {
8
9class Canvas;
10class Graphics;
11class Shader;
12class Texture;
13
16
27
35
43public:
45 explicit Bloom(Graphics *gfx);
46
54 [[nodiscard]] Result<void> configureFilter(const BloomFilterSettings &settings);
56 BloomFilterSettings filterSettings() const { return filterSettings_; }
57
67 Texture *build(Texture *source, float threshold, float scatter = 1.f);
68
78 Texture *apply(Texture *source, float intensity, float threshold, float scatter = 1.f);
79
80private:
81 Texture *buildGaussian(Texture *source, float threshold);
82 Texture *compositeGaussian(Texture *source, Texture *bloom, float intensity);
83 BloomFilterSettings filterSettings_{};
84 Shader *gaussianShader_ = nullptr;
85 std::array<Canvas *, 16> gaussianDown_{};
86 std::array<Canvas *, 16> gaussianUp_{};
87 void ensureTargets(int sourceWidth, int sourceHeight);
88 void configureDownsample(Texture *source, bool firstPass, float threshold);
89 void configureUpsample(Texture *source, float scatter);
90
91 Graphics *gfx_ = nullptr;
92 Shader *downsample_ = nullptr;
93 Shader *upsample_ = nullptr;
94 std::array<Canvas *, 4> levels_{};
95 Canvas *composite_ = nullptr;
96 int sourceWidth_ = 0;
97 int sourceHeight_ = 0;
98};
99
100} // namespace eve::graphics
#define EVENGINE_API_BACKENDS
Definition Export.h:108
Move-only, checked operation results for the common layer.
TerrainThermalSettings settings
const UnitySourceAsset & source
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Linear-HDR bloom pyramid with selectable Karis/tent or Gaussian/scatter reconstruction.
Definition Bloom.h:42
BloomFilterSettings filterSettings() const
Return a value snapshot. Render thread only; retains no references.
Definition Bloom.h:56
GPU texture created via Graphics::newTexture. Owns GPU resources through an opaque backend handle.
Definition Texture.h:18
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
BloomFilter
Linear HDR reconstruction filter; KarisTent preserves the default pipeline.
Definition Bloom.h:15
EVENGINE_API_BACKENDS Result< void > validateBloomFilterSettings(const BloomFilterSettings &settings)
Validate enum, finite scatter [0,1], iterations [1,16], and finite clamp (0,65504].
Value-owned Gaussian bloom settings, independent of camera intensity and threshold.
Definition Bloom.h:21