载入中...
搜索中...
未找到
VegetationDetails.cpp
浏览该文件的文档.
12 if (!object || object->size() != names.size()) throw std::invalid_argument("unexpected Global Details fields");
14 if (!object->contains(std::string(name))) throw std::invalid_argument("missing Global Details field");
22 if (!value.isInt64() && !value.isDouble()) throw std::invalid_argument("Global Details number is invalid");
39 auto range = [](float value, float maximum) { return std::isfinite(value) && value >= 0 && value <= maximum; };
40 if (s.colorsLayer > 8 || s.extrasLayer > 8 || s.motionLayer > 8 || !unit(s.globalColor) || !unit(s.globalAlpha) ||
41 !unit(s.globalOverlay) || !unit(s.globalWetness) || !unit(s.colorMaskMinimum) || !unit(s.colorMaskMaximum) ||
45 !range(s.perspectiveNoise, 4) || !range(s.perspectiveAngle, 8) || !range(s.bendingAmplitude, 2) ||
49 DiagnosticCode::InvalidArgument, "invalid TVE Global Details values", {}, {}, "graphics.vegetation"));
53 DiagnosticCode::InvalidArgument, "invalid TVE motion highlight", {}, {}, "graphics.vegetation"));
109 Value::array({int(settings.colorsLayer), int(settings.extrasLayer), int(settings.motionLayer)})},
116 Value::array({settings.perspectivePush, settings.perspectiveNoise, settings.perspectiveAngle})},
118 Value::array({settings.motionHighlight[0], settings.motionHighlight[1], settings.motionHighlight[2]})},
119 {"bending", Value::array({settings.bendingAmplitude, settings.bendingSpeed, settings.bendingScale})},
120 {"flutter", Value::array({settings.flutterAmplitude, settings.flutterSpeed, settings.flutterScale})},
130 exactFields(document, {"schema", "version", "layers", "global", "colorMask", "overlayMask", "alphaThreshold",
137 Diagnostic::error(DiagnosticCode::UnknownVersion, "only Global Details version 1 is supported"));
147 if (!layers || layers->size() != 3) throw std::invalid_argument("Global Details layers are invalid");
184 Diagnostic::error(DiagnosticCode::InvalidArgument, error.what(), {}, {}, "graphics.vegetation.details"));
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
std::variant< std::monostate, std::int64_t, double, std::string, bool > Value
Definition Database.h:26
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
Result< VegetationDetailSettings > restoreVegetationDetails(const Value &document)
Decode one exact Global Details document transactionally.
Definition VegetationDetails.cpp:128
Result< Value > snapshotVegetationDetails(const VegetationDetailSettings &settings)
Encode one owning Global Details document using eve.graphics.vegetation-details/1.
Definition VegetationDetails.cpp:101
Result< void > validatePbrSurface(const PbrSurface &s)
Validate finite material factors and sampler enums without changing the input.
Definition PbrSurface.cpp:4
Result< VegetationDetailRuntime > configureVegetationDetails(const PbrSurface &baseSurface, const VegetationMotion &baseMotion, const VegetationDetailSettings &s)
Validate and project TVE Global Details into native PBR and motion snapshots.
Definition VegetationDetails.cpp:35
@ InvalidArgument
@ UnknownVersion
@ Failed
Definition Container.h:602
Owning material parameter snapshot; texture pointers remain borrowed. Base color/metallic/roughness c...
Definition PbrSurface.h:218
Detached render values produced from one validated Global Details publication. PBR texture pointers r...
Definition VegetationDetails.h:28
TVE Global Details values, independent of scene components and global shader state.
Definition VegetationDetails.h:12
float perspectiveNoise
Definition VegetationDetails.h:18
float globalAlpha
Definition VegetationDetails.h:14
float bendingAmplitude
Definition VegetationDetails.h:20
uint8_t colorsLayer
Definition VegetationDetails.h:13
float flutterSpeed
Definition VegetationDetails.h:21
float alphaThreshold
Definition VegetationDetails.h:17
float interactionAmplitude
Definition VegetationDetails.h:22
float colorMaskMinimum
Definition VegetationDetails.h:15
float overlayMaskMinimum
Definition VegetationDetails.h:16
float flutterAmplitude
Definition VegetationDetails.h:21
float perspectivePush
Definition VegetationDetails.h:18
float perspectiveAngle
Definition VegetationDetails.h:18
float globalOverlay
Definition VegetationDetails.h:14
uint8_t motionLayer
Definition VegetationDetails.h:13
float bendingSpeed
Definition VegetationDetails.h:20
float globalWetness
Definition VegetationDetails.h:14
float bendingScale
Definition VegetationDetails.h:20
float globalColor
Definition VegetationDetails.h:14
std::array< float, 3 > motionHighlight
Definition VegetationDetails.h:19
float colorMaskMaximum
Definition VegetationDetails.h:15
float flutterScale
Definition VegetationDetails.h:21
float overlayMaskMaximum
Definition VegetationDetails.h:16
uint8_t extrasLayer
Definition VegetationDetails.h:13
Source-equivalent plant motion parameters with explicit time and texture inputs. All data is owned....
Definition VegetationMotion.h:38