载入中...
搜索中...
未找到
VegetationSceneInstance.cpp
浏览该文件的文档.
10 for (char& character : value) character = static_cast<char>(std::tolower(static_cast<unsigned char>(character)));
33 Diagnostic::error(DiagnosticCode::Conflict, "Scene Template matches multiple vegetation managers",
53 if (!association) return Result<std::unique_ptr<VegetationSceneInstance>>::failure(association.status());
54 auto runtime = VegetationSceneGpuRuntime::create(factory, baseSurface, baseMotion, association.value().manager,
56 if (!runtime) return Result<std::unique_ptr<VegetationSceneInstance>>::failure(runtime.status());
74 return liveElements_->registerElement(expectedRevision, runtime_->sourceRevision(), element, *runtime_,
79 std::uint64_t expectedRevision, VegetationSceneElementHandle handle, const VegetationSceneGpuBuild& build) {
80 return liveElements_->withdrawElement(expectedRevision, runtime_->sourceRevision(), handle, *runtime_,
Automatic Scene Template to TVE manager runtime association.
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
Immutable reader retaining an admitted pack by shared ownership.
Definition EvpackResourceReader.h:29
Result< std::vector< AssetRef > > listAssets(std::string_view expectedType, const EvpackCapabilities &capabilities, std::uint32_t maximumAssets=1 '000 '000) const
List stable assets providing an exact type/version for the selected runtime variant.
Definition EvpackResourceReader.cpp:64
Strict capability-aware decoder for eve.vegetation-scene/1.
Definition EvpackVegetationScene.h:123
Result< LoadedVegetationScene > load(const AssetRef &asset, const asset::EvpackCapabilities &capabilities, std::uint64_t maximumDecodedBytes=1024 *1024) const
Decode and validate one complete scene state without mutating runtime objects.
Definition EvpackVegetationScene.cpp:118
Resolve a Scene Template to exactly one manager asset in the same admitted EVPACK.
Definition VegetationSceneInstance.h:18
Result< VegetationSceneAssociation > load(const AssetRef &sceneTemplate, const asset::EvpackCapabilities &capabilities) const
Load the template, find the unique manager with the same Unity source GUID, and decode all Element ma...
Definition VegetationSceneInstance.cpp:15
Instance-qualified handle for one dynamically registered TVE Element volume.
Definition VegetationSceneLiveElements.h:18
static Result< std::unique_ptr< VegetationSceneGpuRuntime > > create(graphics::IResourceFactory &factory, const graphics::PbrSurface &baseSurface, const graphics::VegetationMotion &baseMotion, const LoadedVegetationScene &scene, const std::map< std::string, graphics::VegetationMask > &masks, const VegetationSceneGpuBuild &build)
Bake, convert, upload and bind all field layers as one atomic candidate.
Definition EvpackVegetationScene.cpp:846
Owning executable instance coupling one Scene Template, its manager fields and live Element registry....
Definition VegetationSceneInstance.h:41
Result< VegetationSceneElementPublication > withdrawElement(std::uint64_t expectedRevision, VegetationSceneElementHandle handle, const VegetationSceneGpuBuild &build)
Withdraw one live Element and republish this associated instance atomically.
Definition VegetationSceneInstance.cpp:78
static Result< std::unique_ptr< VegetationSceneInstance > > create(const asset::EvpackResourceReader &reader, graphics::IResourceFactory &factory, const AssetRef &sceneTemplate, const asset::EvpackCapabilities &capabilities, graphics::PbrSurface baseSurface, graphics::VegetationMotion baseMotion, const VegetationSceneGpuBuild &build, std::uint64_t owner)
Resolve and publish the manager automatically from a Scene Template asset.
Definition VegetationSceneInstance.cpp:47
Result< VegetationSceneElementPublication > registerElement(std::uint64_t expectedRevision, const VegetationSceneElement &element, const VegetationSceneGpuBuild &build)
Register one live Element and republish this associated instance atomically.
Definition VegetationSceneInstance.cpp:71
static Result< std::unique_ptr< VegetationSceneLiveElements > > create(LoadedVegetationScene baseScene, std::uint64_t owner)
Create a registry from one validated imported scene.
Definition VegetationSceneLiveElements.cpp:71
Capability-aware scene-template/3 decoder with explicit scene-template/2 compatibility.
Definition EvpackSceneTemplateLoader.h:38
Result< LoadedSceneTemplate > load(const AssetRef &sceneTemplate, const asset::EvpackCapabilities &capabilities, const SceneTemplateLoadLimits &limits={}) const
Validate identities, hierarchy and finite TRS values before building a tree.
Definition EvpackSceneTemplateLoader.cpp:56
Texture / mesh / shader / canvas creation and release.
Definition IResourceFactory.h:38
Definition CookedMaterial.cpp:5
Result< std::map< std::string, graphics::VegetationMask > > loadVegetationSceneElementMasks(const asset::EvpackResourceReader &reader, const LoadedVegetationScene &scene, const asset::EvpackCapabilities &capabilities, std::uint64_t maximumDecodedBytes)
Decode every runtime texture used by admitted TVE Element shaders into owning linear masks.
Definition EvpackVegetationScene.cpp:433
@ NotFound
@ Unsupported
@ Failed
@ Conflict
Definition Container.h:602
Actual runtime device capabilities used for variant selection.
Definition Evpack.h:92
std::map< std::string, graphics::VegetationMask > masks
Definition VegetationSceneInstance.h:14
One normalized Unity TVEElement definition awaiting texture realization.
Definition EvpackVegetationScene.h:60
Explicit detached inputs for publishing all nine TVE scene-manager field layers.
Definition EvpackVegetationScene.h:233
Owning material parameter snapshot; texture pointers remain borrowed. Base color/metallic/roughness c...
Definition PbrSurface.h:218
Source-equivalent plant motion parameters with explicit time and texture inputs. All data is owned....
Definition VegetationMotion.h:38