载入中...
搜索中...
未找到
BloomGaussian.cpp
浏览该文件的文档.
20 !std::isfinite(value.scatter) || value.scatter < 0.f || value.scatter > 1.f || value.maxIterations < 1 ||
21 value.maxIterations > 16 || !std::isfinite(value.clamp) || value.clamp <= 0.f || value.clamp > 65504.f)
23 Diagnostic::error(DiagnosticCode::InvalidArgument, "Invalid bloom filter settings", "graphics.bloom"));
41 if (!gaussianShader_ || !gaussianShader_->gpuHandle) throw Exception("Gaussian bloom shader creation failed");
42 for (const char* name : {"texelW", "texelH", "phase", "threshold", "clamp", "scatter", "intensity", "radius",
60 if (!gaussianDown_[i] || gaussianDown_[i]->getWidth() != w || gaussianDown_[i]->getHeight() != h) {
63 if (!gaussianUp_[i] || gaussianUp_[i]->getWidth() != intermediateWidth || gaussianUp_[i]->getHeight() != h) {
66 if (!gaussianDown_[i] || !gaussianUp_[i]) throw Exception("Gaussian bloom target allocation failed");
89 gfx_->drawTexturedRectShaderDepth(high, low ? low : high, gaussianShader_, 0, 0, float(target->getWidth()),
135 gfx_->drawTexturedRectShaderDepth(source, bloom, gaussianShader_, 0, 0, float(composite_->getWidth()),
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
Result< void > configureFilter(const BloomFilterSettings &settings)
Select a reconstruction filter for subsequent builds.
Definition BloomGaussian.cpp:27
virtual void clear(std::optional< Color > color, std::optional< int > stencil, std::optional< double > depth)=0
Clears .
virtual Texture * getTexture()=0
Sampleable color buffer; screen Canvas returns nullptr.
virtual std::string getBackendName() const =0
Renderer backend id used by sibling modules (e.g. Gpgpu).
virtual Shader * newShaderFromWgsl(const std::string &vertWgsl, const std::string &fragWgsl)=0
Create a 2D custom shader from WGSL source (WebGPU backend). Empty vert → default textured vertex sha...
virtual void setCanvas(Canvas *canvas)=0
nullptr or this → screen. Switching flushes pending draws to the previous target.
virtual Canvas * newHDRCanvas(int width, int height)=0
Create an engine-internal linear RGBA16F post-process target.
virtual void drawTexturedRectShaderDepth(Texture *color, Texture *depth, Shader *shader, float x, float y, float w, float h, const Color &tint)=0
Fullscreen/post draw sampling color at binding 0 and depth at binding 1 (hardware D32,...
void sendFloat(const std::string &name, float x)
Definition Shader.cpp:95
int declareFloat(const std::string &name)
Reserve sequential float slots in the push-constant block. Returns start index.
Definition Shader.cpp:43
GPU texture created via Graphics::newTexture. Owns GPU resources through an opaque backend handle.
Definition Texture.h:18
@ Exception
constexpr const char * kBloomGaussian
Gaussian-scatter HDR bloom stages. @lifetime Static process storage.
Definition BloomGaussianWgsl.h:4
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
@ KarisTent
@ GaussianPyramid
@ GaussianScatter
eve::Color Color
RGBA color used by every graphics draw call. Lives inside eve::graphics so including a graphics heade...
Definition Color.h:13
EVENGINE_API_BACKENDS Result< void > validateBloomFilterSettings(const BloomFilterSettings &settings)
Validate enum, finite scatter [0,1], iterations [1,16], and finite clamp (0,65504].
Definition BloomGaussian.cpp:17
@ InvalidArgument
@ Graphics
Definition Container.h:602
Value-owned Gaussian bloom settings, independent of camera intensity and threshold.
Definition Bloom.h:21