载入中...
搜索中...
未找到
EvpackVegetationScene.h
浏览该文件的文档.
23 float overlaySubsurface = .5f, overlayScale = 1, wetnessContrast = .5f, wetnessNormalScale = .5f;
126 explicit EvpackVegetationSceneLoader(const asset::EvpackResourceReader& reader) noexcept : reader_(reader) {}
164loadVegetationSceneElementMasks(const asset::EvpackResourceReader& reader, const LoadedVegetationScene& scene,
175[[nodiscard]] EVENGINE_API_WORLD Result<VegetationSceneElementPixel> evaluateVegetationSceneElementPixel(
195 const LoadedVegetationScene& scene, const std::map<std::string, graphics::VegetationMask>& masks,
206 const LoadedVegetationScene& scene, const std::map<std::string, graphics::VegetationMask>& masks,
207 graphics::VegetationChannel channel, const graphics::VegetationChannelAtlas& base, std::uint8_t layer = 0,
217[[nodiscard]] EVENGINE_API_WORLD Result<graphics::VegetationAtlas> convertVegetationSceneAtlasToNative(
266 const std::map<std::string, graphics::VegetationMask>& masks, const VegetationSceneGpuBuild& build);
274 [[nodiscard]] const graphics::PbrSurface& surface() const noexcept { return projection_.surface; }
276 [[nodiscard]] const graphics::VegetationMotion& motion() const noexcept { return projection_.motion; }
280 [[nodiscard]] std::size_t deferredReleaseCount() const noexcept { return retiredFields_.size(); }
292 const std::map<std::string, graphics::VegetationMask>& masks, const VegetationSceneGpuBuild& build);
297 explicit VegetationSceneGpuRuntime(graphics::IResourceFactory& factory) noexcept : factory_(&factory) {}
Typed capability-aware runtime access to admitted packs.
Immutable reader retaining an admitted pack by shared ownership.
Definition EvpackResourceReader.h:29
Strict capability-aware decoder for eve.vegetation-scene/1.
Definition EvpackVegetationScene.h:123
EvpackVegetationSceneLoader(const asset::EvpackResourceReader &reader) noexcept
Bind a borrowed immutable reader which must outlive this loader.
Definition EvpackVegetationScene.h:126
Owning GPU publication of one immutable TVE manager scene. The resource factory, mask map and scene a...
Definition EvpackVegetationScene.h:250
const graphics::VegetationMotion & motion() const noexcept
Borrow the projected CPU motion snapshot; valid for this runtime's lifetime.
Definition EvpackVegetationScene.h:276
std::uint64_t sourceRevision() const noexcept
Revision shared by the immutable scene input and every GPU field texture.
Definition EvpackVegetationScene.h:278
std::size_t deferredReleaseCount() const noexcept
Number of superseded field sets retained because their factory release must be retried.
Definition EvpackVegetationScene.h:280
const graphics::PbrSurface & surface() const noexcept
Borrow the bound material snapshot; valid until release begins or destruction.
Definition EvpackVegetationScene.h:274
VegetationSceneGpuRuntime & operator=(const VegetationSceneGpuRuntime &)=delete
VegetationSceneGpuRuntime(const VegetationSceneGpuRuntime &)=delete
Texture / mesh / shader / canvas creation and release.
Definition IResourceFactory.h:38
Definition CookedMaterial.cpp:5
Result< graphics::VegetationChannelAtlas > convertVegetationSceneChannelToNative(graphics::VegetationChannel channel, const graphics::VegetationChannelAtlas &tveAtlas)
Convert one fully composed TVE channel atlas to EVEngine conventions.
Definition EvpackVegetationScene.cpp:796
Result< graphics::VegetationChannelAtlas > bakeVegetationSceneChannel(const LoadedVegetationScene &scene, const std::map< std::string, graphics::VegetationMask > &masks, graphics::VegetationChannel channel, const graphics::VegetationChannelAtlas &base, std::uint8_t layer, std::span< const glm::vec3 > worldNormals, std::span< const float > terrainHeights, std::span< const glm::vec4 > noiseSamples)
Bake one TVE manager channel at its own resolution and world mapping.
Definition EvpackVegetationScene.cpp:687
Result< VegetationSceneElementPixel > evaluateVegetationSceneElementPixel(const VegetationSceneElement &element, const VegetationSceneElementPixelInput &input)
Evaluate one TVE Element fragment using caller-supplied texture, instance and particle inputs.
Definition EvpackVegetationScene.cpp:504
Result< VegetationSceneProjection > projectVegetationScene(const graphics::PbrSurface &baseSurface, const graphics::VegetationMotion &baseMotion, const LoadedVegetationScene &scene)
Project validated TVE manager controls onto one material/motion snapshot.
Definition EvpackVegetationScene.cpp:385
Result< graphics::VegetationAtlas > convertVegetationSceneAtlasToNative(const graphics::VegetationAtlas &tveAtlas)
Convert a fully composed TVE render-target atlas to EVEngine field channel conventions.
Definition EvpackVegetationScene.cpp:829
VegetationScenePixelBlend
Detached TVE render-target source value and independent hardware blend policy.
Definition EvpackVegetationScene.h:91
Result< graphics::VegetationAtlas > bakeVegetationSceneElements(const LoadedVegetationScene &scene, const std::map< std::string, graphics::VegetationMask > &masks, const graphics::VegetationAtlas &base, std::array< std::uint8_t, 4 > layers, std::span< const glm::vec3 > worldNormals, std::span< const float > terrainHeights, std::span< const glm::vec4 > noiseSamples)
Rasterize the ordered TVE Element list over an owning four-channel atlas candidate.
Definition EvpackVegetationScene.cpp:775
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
glm::vec4 composeVegetationSceneElementPixel(glm::vec4 destination, const VegetationSceneElementPixel &source) noexcept
Apply one evaluated source pixel to a destination with TVE's separate blend factors and ColorMask.
Definition EvpackVegetationScene.cpp:668
VegetationChannel
Independent vegetation field channels; values use linear color and world units.
Definition VegetationField.h:16
Actual runtime device capabilities used for variant selection.
Definition Evpack.h:92
Result of ordered capability variant selection.
Definition Evpack.h:155
Fully validated, detached scene-manager candidate with no archive or GPU borrows.
Definition EvpackVegetationScene.h:103
graphics::VegetationDetailSettings details
Definition EvpackVegetationScene.h:107
AssetRef asset
Definition EvpackVegetationScene.h:104
std::string sourceGuid
Definition EvpackVegetationScene.h:105
VegetationSceneVolume volume
Definition EvpackVegetationScene.h:110
VegetationSceneMotion motion
Definition EvpackVegetationScene.h:109
std::vector< VegetationSceneElement > elements
Definition EvpackVegetationScene.h:111
VegetationSceneControl control
Definition EvpackVegetationScene.h:108
asset::EvpackVariantSelection variant
Definition EvpackVegetationScene.h:106
Detached inputs for one independently sized TVE manager channel.
Definition EvpackVegetationScene.h:225
std::span< const float > terrainHeights
Definition EvpackVegetationScene.h:228
std::span< const glm::vec4 > noiseSamples
Definition EvpackVegetationScene.h:229
std::array< graphics::VegetationChannelAtlas, 9 > baseLayers
Definition EvpackVegetationScene.h:226
std::span< const glm::vec3 > worldNormals
Definition EvpackVegetationScene.h:227
Owning TVE Global Control values; texture identities remain source-map GUIDs.
Definition EvpackVegetationScene.h:20
float globalSize
Definition EvpackVegetationScene.h:22
std::string noiseTextureGuid
Definition EvpackVegetationScene.h:26
float globalWetness
Definition EvpackVegetationScene.h:21
float wetnessContrast
Definition EvpackVegetationScene.h:23
float globalAlpha
Definition EvpackVegetationScene.h:21
float overlaySmoothness
Definition EvpackVegetationScene.h:22
float wetnessNormalScale
Definition EvpackVegetationScene.h:23
float overlayNormalScale
Definition EvpackVegetationScene.h:22
float season
Definition EvpackVegetationScene.h:21
std::string overlayAlbedoGuid
Definition EvpackVegetationScene.h:26
float globalSubsurface
Definition EvpackVegetationScene.h:22
float globalOverlay
Definition EvpackVegetationScene.h:21
std::array< float, 4 > globalColor
Definition EvpackVegetationScene.h:25
float overlaySubsurface
Definition EvpackVegetationScene.h:23
float defaultConformHeight
Definition EvpackVegetationScene.h:24
std::string overlayNormalGuid
Definition EvpackVegetationScene.h:26
std::array< float, 4 > overlayColor
Definition EvpackVegetationScene.h:25
float distanceFadeBias
Definition EvpackVegetationScene.h:24
float overlayScale
Definition EvpackVegetationScene.h:23
float noiseTiling
Definition EvpackVegetationScene.h:24
float globalEmissive
Definition EvpackVegetationScene.h:21
float proximityFade
Definition EvpackVegetationScene.h:24
Explicit per-draw inputs consumed by one TVE Element fragment evaluation.
Definition EvpackVegetationScene.h:76
glm::vec4 mainSample
Definition EvpackVegetationScene.h:78
glm::vec3 worldPosition
Definition EvpackVegetationScene.h:81
glm::vec3 worldNormal
Definition EvpackVegetationScene.h:82
glm::vec4 vertexColor
Definition EvpackVegetationScene.h:80
float season
Definition EvpackVegetationScene.h:87
float terrainHeight
Definition EvpackVegetationScene.h:85
glm::vec2 velocityDirection
Definition EvpackVegetationScene.h:83
glm::vec4 noiseSample
Definition EvpackVegetationScene.h:84
glm::vec4 elementParams
Definition EvpackVegetationScene.h:79
float volumeFade
Definition EvpackVegetationScene.h:86
glm::vec2 localUv
Definition EvpackVegetationScene.h:77
Detached TVE render-target source value and independent hardware blend policy.
Definition EvpackVegetationScene.h:94
VegetationScenePixelBlend alphaOperation
Definition EvpackVegetationScene.h:99
glm::vec4 value
Definition EvpackVegetationScene.h:95
VegetationScenePixelBlend rgbOperation
Definition EvpackVegetationScene.h:98
std::int32_t blendRgb
Definition EvpackVegetationScene.h:97
std::uint8_t colorMask
Definition EvpackVegetationScene.h:96
std::int32_t blendAlpha
Definition EvpackVegetationScene.h:97
One normalized Unity TVEElement definition awaiting texture realization.
Definition EvpackVegetationScene.h:52
std::int32_t type
Definition EvpackVegetationScene.h:54
float value
Definition EvpackVegetationScene.h:56
std::string name
Definition EvpackVegetationScene.h:53
std::string textureAsset
Definition EvpackVegetationScene.h:53
std::array< float, 4 > vector
Definition EvpackVegetationScene.h:55
std::string textureGuid
Definition EvpackVegetationScene.h:53
One normalized Unity TVEElement definition awaiting texture realization.
Definition EvpackVegetationScene.h:60
std::int32_t visibility
Definition EvpackVegetationScene.h:66
std::int32_t directionMode
Definition EvpackVegetationScene.h:66
std::string textureAsset
Definition EvpackVegetationScene.h:62
std::string shaderGuid
Definition EvpackVegetationScene.h:62
std::string kind
Definition EvpackVegetationScene.h:62
std::uint32_t channel
Definition EvpackVegetationScene.h:64
std::array< float, 4 > rotation
Definition EvpackVegetationScene.h:70
std::array< float, 4 > value
Definition EvpackVegetationScene.h:70
bool enabled
Definition EvpackVegetationScene.h:65
std::int32_t blendAlpha
Definition EvpackVegetationScene.h:66
std::vector< VegetationSceneElementProperty > properties
Definition EvpackVegetationScene.h:63
std::array< float, 6 > remap
Definition EvpackVegetationScene.h:72
std::int32_t motionMode
Definition EvpackVegetationScene.h:66
std::uint16_t layers
Definition EvpackVegetationScene.h:67
std::int32_t blendRgb
Definition EvpackVegetationScene.h:66
std::array< float, 3 > scale
Definition EvpackVegetationScene.h:69
std::string textureGuid
Definition EvpackVegetationScene.h:62
bool invertDirection
Definition EvpackVegetationScene.h:65
std::int64_t sourceFileId
Definition EvpackVegetationScene.h:61
std::array< float, 3 > position
Definition EvpackVegetationScene.h:69
bool seasonal
Definition EvpackVegetationScene.h:65
float intensity
Definition EvpackVegetationScene.h:68
std::array< std::array< float, 4 >, 4 > seasons
Definition EvpackVegetationScene.h:71
bool volumeFade
Definition EvpackVegetationScene.h:65
float motionPower
Definition EvpackVegetationScene.h:68
Explicit detached inputs for publishing all nine TVE scene-manager field layers.
Definition EvpackVegetationScene.h:233
std::array< VegetationSceneChannelGpuBuild, 4 > channels
Definition EvpackVegetationScene.h:234
graphics::VegetationGpuRuntime runtime
Definition EvpackVegetationScene.h:235
std::uint64_t sourceRevision
Definition EvpackVegetationScene.h:236
Receipt for one atomic scene-manager GPU replacement.
Definition EvpackVegetationScene.h:240
std::size_t deferredReleaseCount
Definition EvpackVegetationScene.h:242
std::uint64_t revision
Definition EvpackVegetationScene.h:241
Owning TVE Global Motion values; time is supplied by each frame.
Definition EvpackVegetationScene.h:30
bool animatedTime
Definition EvpackVegetationScene.h:33
float bending
Definition EvpackVegetationScene.h:31
float noiseTiling
Definition EvpackVegetationScene.h:31
float flutter
Definition EvpackVegetationScene.h:31
float fadeDistance
Definition EvpackVegetationScene.h:32
std::array< float, 2 > direction
Definition EvpackVegetationScene.h:34
float windPower
Definition EvpackVegetationScene.h:31
std::string noiseTextureGuid
Definition EvpackVegetationScene.h:35
Detached PBR and CPU-motion snapshot ready for atomic material publication.
Definition EvpackVegetationScene.h:115
float season
Definition EvpackVegetationScene.h:119
graphics::PbrSurface surface
Definition EvpackVegetationScene.h:116
graphics::VegetationMotion motion
Definition EvpackVegetationScene.h:117
VegetationSceneVolume volume
Definition EvpackVegetationScene.h:118
One TVE volume texture channel allocation policy.
Definition EvpackVegetationScene.h:39
std::uint32_t height
Definition EvpackVegetationScene.h:41
std::int32_t renderMode
Definition EvpackVegetationScene.h:40
std::uint32_t width
Definition EvpackVegetationScene.h:41
Owning TVE Global Volume policy; render resources are allocated by the runtime host.
Definition EvpackVegetationScene.h:45
std::uint32_t sorting
Definition EvpackVegetationScene.h:47
std::uint32_t visibility
Definition EvpackVegetationScene.h:47
float edgeFade
Definition EvpackVegetationScene.h:46
std::array< VegetationSceneVolumeChannel, 4 > channels
Definition EvpackVegetationScene.h:48
float renderScale
Definition EvpackVegetationScene.h:46
Owning material parameter snapshot; texture pointers remain borrowed. Base color/metallic/roughness c...
Definition PbrSurface.h:218
Four owning arrays in row-major X/Z order at texel centers.
Definition VegetationField.h:66
TVE Global Details values, independent of scene components and global shader state.
Definition VegetationDetails.h:12
Coherent detached projections for all four vegetation channels. Textures are factory-owned....
Definition VegetationFieldGpu.h:38
Runtime-owned global inputs shared by one coherent vegetation field binding. Time is explicit for det...
Definition VegetationFieldGpu.h:48
Source-equivalent plant motion parameters with explicit time and texture inputs. All data is owned....
Definition VegetationMotion.h:38