载入中...
搜索中...
未找到
eve::asset_procgen 命名空间参考

类

class  EvpackInstanceSetLoader
 Capability-aware eve.instance-set/5 EVINST decoder with v1-v4 compatibility. 更多...
 
class  EvpackPointGraphLoader
 Capability-aware loader for compiled eve.pcg-graph/1 execution plans. 更多...
 
class  EvpackTerrainLoader
 Capability-aware decoder from eve.terrain/1 to procgen terrain data. 更多...
 
class  EvpackTerrainMaterialLoader
 Strict eve.terrain-material/3 EVDEF loader with one-version compatibility. 更多...
 
struct  InstanceSetLoadLimits
 Bounds applied before allocating untrusted instance records and strings. 更多...
 
class  ITerrainVegetationGpuResolver
 Provider boundary from stable prototype names to backend table slots. 更多...
 
struct  LoadedInstanceSet
 Owning exact static-instance set selected for one runtime variant. 更多...
 
struct  LoadedPointGraph
 Owning executable graph and its selected output node. 更多...
 
struct  LoadedTerrain
 Owning heightmap plus queryable procgen spatial representation. 更多...
 
struct  LoadedTerrainMaterial
 Owning capability-selected terrain material candidate. 更多...
 
struct  PackedTerrainMaterialAtlases
 Single-draw terrain textures covering up to sixteen layers. 更多...
 
struct  PackedTerrainMaterialGpuSet
 Backend-owned texture set for a single draw of up to sixteen layers. 更多...
 
struct  RuntimeInstance
 One exact canonical static instance using meters and an XYZW quaternion. 更多...
 
struct  RuntimeInstancePrototype
 Runtime vegetation prototype metadata retained from the source terrain. 更多...
 
struct  RuntimeTerrainLayer
 One owning canonical terrain layer independent of its source engine. 更多...
 
struct  TerrainAssetLoadLimits
 Explicit resource limits applied before terrain allocation. 更多...
 
struct  TerrainAtlasImage
 Owning base-level linear RGBA8 image ready for backend upload. 更多...
 
struct  TerrainDetailCardGeometry
 Owning unit geometry whose instance transform supplies Unity's exact width and height. 更多...
 
class  TerrainDetailGpuResolver
 Owning lazy GPU resource resolver for texture-backed terrain Detail prototypes. @ownership Uploaded meshes and images are owned by the bound Graphics backend and leased by this resolver. @lifetime The reader and Graphics backend must outlive this object and its explicit release. @thread Construction, resolve, release, and destruction are graphics-thread affine. @reentrancy Calls no scripts or caller callbacks and must not be entered recursively. 更多...
 
class  TerrainDetailRuntime
 Owning runtime for one cooked Unity Terrain Detail instance set. @ownership Owns the realization, GPU resolver leases, and render registration. @lifetime The reader and Graphics backend passed to load must outlive this object and release. @thread Load, frame updates, rendering callbacks, release, and destruction are graphics-thread affine. @reentrancy Calls no scripts; release must not run from a render callback. 更多...
 
struct  TerrainMaterialAtlases
 Complete terrain material image set; up to four groups cover sixteen layers. 更多...
 
struct  TerrainMaterialAtlasGroup
 Four-layer atlas group driven by one RGBA control image. 更多...
 
struct  TerrainMaterialAtlasLimits
 Bounds for deterministic terrain atlas construction. 更多...
 
struct  TerrainMaterialGpuGroup
 Four backend-owned textures for one uploaded terrain group. 更多...
 
struct  TerrainMaterialGpuSet
 Backend-owned terrain textures released together on their graphics thread. 更多...
 
struct  TerrainMaterialLoadLimits
 Admission budgets for terrain material definitions. 更多...
 
struct  TerrainVegetationBucket
 Contiguous prototype range suitable for one instanced render submission. 更多...
 
struct  TerrainVegetationGpuFrame
 Explicit frame inputs for deterministic terrain Detail animation. 更多...
 
struct  TerrainVegetationGpuPlan
 Detached CPU upload plan accepted by both Vulkan and WebGPU GPU-driven paths. 更多...
 
struct  TerrainVegetationGpuPrototype
 GPU table slots resolved for one vegetation prototype. 更多...
 
struct  TerrainVegetationGpuPrototypeRequest
 One owning realization's prototype request passed to the graphics resource provider. 更多...
 
struct  TerrainVegetationInstance
 One stable terrain vegetation transform and its source attributes. 更多...
 
struct  TerrainVegetationLimits
 Hard limits for one deterministic terrain vegetation realization. 更多...
 
struct  TerrainVegetationRealization
 Owning, prototype-sorted result plus scalability evidence. 更多...
 
class  TerrainVegetationRenderer
 Own one realized terrain Detail set and submit it from RenderSystem3D's forward phase. 更多...
 
struct  TerrainVegetationWeightDomain
 Explicit world-to-control-map projection for terrain layer filtering. 更多...
 

函数

Result< asset_import::PreparedAssetImport > prepareGtsTerrainLodPackage (const asset_import::ImportPackageIdentity &package, const procgen::GtsTerrainLodSet &lods, const std::string &terrainName, const asset_import::AssetImportLimits &limits={})
 Prepare a complete .eva source package containing every non-empty GTS tile LOD as eve.mesh/2.
 
Result< TerrainDetailCardGeometry > buildTerrainDetailCard (const RuntimeInstancePrototype &prototype)
 Build bottom-anchored unit cards for a texture-backed terrain Detail prototype.
 
Result< TerrainMaterialAtlases > buildTerrainMaterialAtlases (const asset::EvpackResourceReader &reader, const LoadedTerrainMaterial &material, const asset::EvpackCapabilities &capabilities, const TerrainMaterialAtlasLimits &limits={})
 Resolve canonical image references and assemble one 2x2 atlas per control map.
 
Result< PackedTerrainMaterialAtlases > packTerrainMaterialAtlases (const TerrainMaterialAtlases &atlases, const LoadedTerrainMaterial &material, const TerrainMaterialAtlasLimits &limits={})
 Repack grouped CPU atlases and material parameters for one terrain draw.
 
Result< void > releaseTerrainMaterialAtlases (graphics::IResourceFactory &factory, TerrainMaterialGpuSet &set)
 Release every texture in a GPU set and clear it even if one backend release fails.
 
Result< TerrainMaterialGpuSet > uploadTerrainMaterialAtlases (graphics::IResourceFactory &factory, const TerrainMaterialAtlases &atlases)
 Upload every atlas transactionally; partial failure releases earlier textures.
 
Result< void > releasePackedTerrainMaterialAtlases (graphics::IResourceFactory &factory, PackedTerrainMaterialGpuSet &set)
 Release and clear a packed terrain GPU set.
 
Result< PackedTerrainMaterialGpuSet > uploadPackedTerrainMaterialAtlases (graphics::IResourceFactory &factory, const PackedTerrainMaterialAtlases &atlases)
 Upload a packed terrain set transactionally.
 
Result< void > bindPackedTerrainMaterial (graphics::Shader &shader, const PackedTerrainMaterialGpuSet &gpu)
 Bind a packed terrain set for one draw and publish its feature counts.
 
Result< void > bindTerrainMaterialGroup (graphics::Shader &shader, const TerrainMaterialGpuSet &gpu, const LoadedTerrainMaterial &material, std::size_t groupIndex)
 Bind one uploaded group and its four layer values to a terrain shader.
 
Result< TerrainVegetationGpuPlan > buildTerrainVegetationGpuPlan (const TerrainVegetationRealization &realization, ITerrainVegetationGpuResolver &resolver, const TerrainVegetationGpuFrame &frame={})
 Resolve every prototype and build GPU records transactionally.
 
Result< void > submitTerrainVegetation (graphics::Graphics &graphics, const TerrainVegetationRealization &realization, ITerrainVegetationGpuResolver &resolver, const TerrainVegetationGpuFrame &frame={})
 Build and submit one terrain vegetation realization to the current GPU-driven frame.
 
Result< TerrainVegetationRealization > realizeTerrainVegetation (LoadedPointGraph *graph, const LoadedInstanceSet *explicitInstances, const TerrainVegetationLimits &limits={})
 Execute an optional terrain PCG graph and merge an optional baked instance set.
 
Result< TerrainVegetationRealization > filterTerrainVegetationByLayerWeights (const TerrainVegetationRealization &realization, const LoadedTerrainMaterial &material, const TerrainMaterialAtlases &atlases, const TerrainVegetationWeightDomain &domain)
 Apply terrain RGBA layer weights to procedural instances using stable stochastic thinning.
 

函数说明

◆ bindPackedTerrainMaterial()

◆ bindTerrainMaterialGroup()

EVENGINE_API_ORCHESTRATION Result< void > eve::asset_procgen::bindTerrainMaterialGroup ( graphics::Shader &  shader,
const TerrainMaterialGpuSet &  gpu,
const LoadedTerrainMaterial &  material,
std::size_t  groupIndex 
)

Bind one uploaded group and its four layer values to a terrain shader.

参数
shaderBorrowed shader configured by Procgen::createTerrainMaterialShader.
groupBorrowed uploaded group retained through the draw.
materialOwning metadata retained for the call.
groupIndexGroup in [0, groups); selects layers groupIndex*4 through +3.
返回
Success after all bindings are published, or failure before an invalid index is used. @thread Graphics thread only; synchronous and non-reentrant.

在文件 TerrainMaterialAtlas.cpp 第 379 行定义.

引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), group, eve::asset_procgen::TerrainMaterialGpuSet::groups, eve::asset_procgen::TerrainMaterialGpuSet::holes, eve::InvalidArgument, layer, material, metallic, shader , 以及 eve::Result< T >::success().

◆ buildTerrainDetailCard()

EVENGINE_API_ORCHESTRATION Result< TerrainDetailCardGeometry > eve::asset_procgen::buildTerrainDetailCard ( const RuntimeInstancePrototype &  prototype)

Build bottom-anchored unit cards for a texture-backed terrain Detail prototype.

参数
prototypeBorrowed immutable prototype metadata.
返回
One camera-facing quad for GrassBillboard or two crossed quads for Grass. @thread Worker-safe; allocates only detached CPU arrays and invokes no callbacks.
备注
Mesh-backed and VertexLit prototypes return Unsupported so their authored mesh is never replaced.

在文件 TerrainDetailCard.cpp 第 19 行定义.

引用了 eve::asset_procgen::TerrainDetailCardGeometry::cameraFacing, eve::Diagnostic::error(), eve::Failed, eve::Result< T >::failure(), eve::InvalidArgument, eve::asset_procgen::RuntimeInstancePrototype::prototype, eve::asset_procgen::RuntimeInstancePrototype::renderMode, eve::Result< T >::success(), eve::Unsupported , 以及 eve::asset_procgen::RuntimeInstancePrototype::usePrototypeMesh.

◆ buildTerrainMaterialAtlases()

EVENGINE_API_ORCHESTRATION Result< TerrainMaterialAtlases > eve::asset_procgen::buildTerrainMaterialAtlases ( const asset::EvpackResourceReader &  reader,
const LoadedTerrainMaterial &  material,
const asset::EvpackCapabilities &  capabilities,
const TerrainMaterialAtlasLimits &  limits = {} 
)

Resolve canonical image references and assemble one 2x2 atlas per control map.

参数
readerBorrowed immutable package reader valid for the call.
materialOwning loaded terrain metadata; image references are observed only for the call.
capabilitiesRuntime capability selection used for every image.
limitsLayer, dimension and allocation budgets.
返回
Detached linear RGBA8 atlases. Missing layer images use documented neutral texels; group zero without a control map uses red, and missing holes use white. @thread Worker-safe when reader is read concurrently; performs no GPU calls or callbacks.

在文件 TerrainMaterialAtlas.cpp 第 87 行定义.

引用了 albedo, count, eve::Diagnostic::error(), eve::Result< T >::failure(), first, eve::asset_procgen::TerrainMaterialAtlasGroup::firstLayer, group, eve::asset_procgen::TerrainMaterialAtlases::groups, eve::asset_procgen::TerrainMaterialAtlases::holes, image, eve::InvalidArgument, layer, limits, mask, material, normal, eve::NotFound, eve::asset_procgen::TerrainAtlasImage::pixels, eve::Result< T >::success() , 以及 eve::Result< T >::takeValue().

◆ buildTerrainVegetationGpuPlan()

EVENGINE_API_ORCHESTRATION Result< TerrainVegetationGpuPlan > eve::asset_procgen::buildTerrainVegetationGpuPlan ( const TerrainVegetationRealization &  realization,
ITerrainVegetationGpuResolver &  resolver,
const TerrainVegetationGpuFrame &  frame = {} 
)

Resolve every prototype and build GPU records transactionally.

参数
realizationBorrowed immutable prototype-sorted realization.
resolverBorrowed provider invoked once per bucket.
返回
Detached GPU records, or failure before any graphics submission. @thread Graphics thread only because resolver resources are backend-owned.

在文件 TerrainVegetationGpu.cpp 第 18 行定义.

引用了 bucket, eve::asset_procgen::TerrainVegetationRealization::buckets, eve::Conflict, detail, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::asset_procgen::TerrainVegetationGpuPlan::instances, eve::asset_procgen::TerrainVegetationRealization::instances, eve::InvalidArgument, eve::graphics::kInvalidGpuDrivenSlot, eve::graphics::GpuInstance::model, model, eve::NotFound, offset, eve::asset_procgen::TerrainVegetationRealization::prototypes, eve::asset_procgen::ITerrainVegetationGpuResolver::resolve(), rotation, source, eve::Result< T >::success(), terrainWave, terrainWaveTint, eve::asset_procgen::TerrainVegetationGpuFrame::timeSeconds, eve::asset_procgen::TerrainVegetationRealization::wavingGrassAmount, eve::asset_procgen::TerrainVegetationRealization::wavingGrassSpeed, eve::asset_procgen::TerrainVegetationRealization::wavingGrassStrength , 以及 eve::asset_procgen::TerrainVegetationRealization::wavingGrassTint.

被这些函数引用 eve::asset_procgen::TerrainDetailRuntime::load(), submitTerrainVegetation() , 以及 eve::asset_procgen::TerrainVegetationRenderer::TerrainVegetationRenderer().

◆ filterTerrainVegetationByLayerWeights()

EVENGINE_API_ORCHESTRATION Result< TerrainVegetationRealization > eve::asset_procgen::filterTerrainVegetationByLayerWeights ( const TerrainVegetationRealization &  realization,
const LoadedTerrainMaterial &  material,
const TerrainMaterialAtlases &  atlases,
const TerrainVegetationWeightDomain &  domain 
)

Apply terrain RGBA layer weights to procedural instances using stable stochastic thinning.

参数
realizationBorrowed realization; only instances with a non-empty layer are filtered.
materialBorrowed layer table whose names resolve instance layer attributes.
atlasesBorrowed linear RGBA8 control maps, one per four layers.
domainExplicit world XZ projection and source V orientation.
返回
Detached, re-bucketed realization; invalid maps or unknown layers fail atomically. @thread Worker-safe while all inputs remain immutable.

在文件 TerrainVegetationRuntime.cpp 第 170 行定义.

引用了 eve::Conflict, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::asset_procgen::TerrainVegetationWeightDomain::flipV, found, eve::asset_procgen::TerrainVegetationRealization::generatedCount, group, eve::asset_procgen::TerrainMaterialAtlases::groups, index, eve::asset_procgen::TerrainVegetationRealization::instances, eve::InvalidArgument, layer, material, eve::asset_procgen::TerrainVegetationWeightDomain::maximumX, eve::asset_procgen::TerrainVegetationWeightDomain::maximumZ, eve::asset_procgen::TerrainVegetationWeightDomain::minimumX, eve::asset_procgen::TerrainVegetationWeightDomain::minimumZ, eve::NotFound, eve::Result< T >::success(), u, v, weight , 以及 eve::asset_procgen::TerrainVegetationRealization::weightCulledCount.

◆ packTerrainMaterialAtlases()

◆ prepareGtsTerrainLodPackage()

EVENGINE_API_ORCHESTRATION Result< asset_import::PreparedAssetImport > eve::asset_procgen::prepareGtsTerrainLodPackage ( const asset_import::ImportPackageIdentity &  package,
const procgen::GtsTerrainLodSet &  lods,
const std::string &  terrainName,
const asset_import::AssetImportLimits &  limits = {} 
)

Prepare a complete .eva source package containing every non-empty GTS tile LOD as eve.mesh/2.

参数
packageStable caller-owned package identity copied into the result.
lodsBorrowed immutable generated LOD set consumed synchronously.
terrainNameFilesystem-safe source terrain name used for audit mappings and mesh labels.
limitsAllocation and output limits applied before candidate publication.
返回
Owned import candidate ready for buildEvaArchive, or a structured failure with no partial result. @thread Worker-safe; performs no filesystem, graphics, script or callback operation.

在文件 GtsTerrainLodPackage.cpp 第 14 行定义.

引用了 eve::asset_import::detail::assetRef(), eve::asset_import::detail::baseManifest(), blob, eve::asset::buildEvaArchive(), eve::detail::Id128< Tag >::child(), eve::asset::CanonicalMeshData::colors, eve::asset::encodeCanonicalMesh(), eve::Diagnostic::error(), eve::Result< T >::failure(), eve::asset_import::detail::finalizeImportReport(), eve::procgen::GtsTerrainLodSet::getLevelCount(), eve::procgen::GtsTerrainLodSet::getTileCount(), eve::asset::CanonicalMeshData::indices, eve::InvalidArgument, key, limits, eve::asset::CanonicalMeshLimits::maximumDecodedBytes, eve::asset::CanonicalMeshLimits::maximumIndices, eve::asset::CanonicalMeshLimits::maximumVertices, mesh, eve::asset::CanonicalMeshData::normals, eve::asset_import::ImportPackageIdentity::packageId, eve::procgen::planGtsTerrainLodAssets(), eve::asset::CanonicalMeshData::positions, positions, eve::asset_import::detail::sha256(), eve::Result< T >::success(), eve::asset::CanonicalMeshData::texcoords , 以及 eve::procgen::GtsTerrainLodSet::tileAt().

◆ realizeTerrainVegetation()

EVENGINE_API_ORCHESTRATION Result< TerrainVegetationRealization > eve::asset_procgen::realizeTerrainVegetation ( LoadedPointGraph *  graph,
const LoadedInstanceSet *  explicitInstances,
const TerrainVegetationLimits &  limits = {} 
)

Execute an optional terrain PCG graph and merge an optional baked instance set.

参数
graphMutable owning graph because execution updates its cache and metrics; caller serializes access for the duration of this call. Null omits procedural vegetation.
explicitInstancesBorrowed immutable baked instances. Null omits baked vegetation.
limitsAllocation and execution limits checked before publishing the detached result.
返回
Prototype-sorted instances and buckets, or a structured failure with no partial result. @thread Worker-safe across distinct graph objects. Does not perform GPU calls or callbacks. @reentrancy Not reentrant for the same graph object.

在文件 TerrainVegetationRuntime.cpp 第 81 行定义.

引用了 eve::procgen::derivePointId(), ended, eve::Diagnostic::error(), eve::asset_procgen::TerrainVegetationRealization::explicitCount, eve::Result< T >::failure(), finite, eve::asset_procgen::TerrainVegetationRealization::generatedCount, graph, eve::asset_procgen::TerrainVegetationRealization::graphMilliseconds, eve::asset_procgen::TerrainVegetationRealization::graphNodesEvaluated, eve::asset_procgen::TerrainVegetationInstance::id, index, eve::asset_procgen::LoadedInstanceSet::instances, eve::asset_procgen::TerrainVegetationRealization::instances, eve::InvalidArgument, eve::asset_procgen::TerrainVegetationInstance::layer, limits, eve::asset_procgen::TerrainVegetationInstance::normal, eve::NotFound, eve::ParseError, point, points, eve::asset_procgen::TerrainVegetationInstance::position, eve::asset_procgen::TerrainVegetationInstance::prototype, eve::asset_procgen::LoadedInstanceSet::prototypes, eve::asset_procgen::TerrainVegetationRealization::prototypes, eve::asset_procgen::TerrainVegetationInstance::rotation, eve::asset_procgen::TerrainVegetationInstance::scale, eve::asset_procgen::TerrainVegetationInstance::seed, source, eve::Result< T >::success(), eve::asset_procgen::LoadedInstanceSet::wavingGrassAmount, eve::asset_procgen::TerrainVegetationRealization::wavingGrassAmount, eve::asset_procgen::LoadedInstanceSet::wavingGrassSpeed, eve::asset_procgen::TerrainVegetationRealization::wavingGrassSpeed, eve::asset_procgen::LoadedInstanceSet::wavingGrassStrength, eve::asset_procgen::TerrainVegetationRealization::wavingGrassStrength, eve::asset_procgen::LoadedInstanceSet::wavingGrassTint , 以及 eve::asset_procgen::TerrainVegetationRealization::wavingGrassTint.

被这些函数引用 eve::asset_procgen::TerrainDetailRuntime::load().

◆ releasePackedTerrainMaterialAtlases()

◆ releaseTerrainMaterialAtlases()

EVENGINE_API_ORCHESTRATION Result< void > eve::asset_procgen::releaseTerrainMaterialAtlases ( graphics::IResourceFactory &  factory,
TerrainMaterialGpuSet &  set 
)

◆ submitTerrainVegetation()

Result< void > eve::asset_procgen::submitTerrainVegetation ( graphics::Graphics &  graphics,
const TerrainVegetationRealization &  realization,
ITerrainVegetationGpuResolver &  resolver,
const TerrainVegetationGpuFrame &  frame = {} 
)

Build and submit one terrain vegetation realization to the current GPU-driven frame.

返回
Applied status after submission, or a structured failure without a partial submit. @thread Graphics thread only; synchronous and non-reentrant.

在文件 TerrainVegetationGpu.cpp 第 117 行定义.

引用了 buildTerrainVegetationGpuPlan(), eve::Diagnostic::error(), eve::Failed, eve::Result< T >::failure(), eve::graphics::Graphics::gpuDrivenSubmitOpaque() , 以及 eve::Result< T >::success().

◆ uploadPackedTerrainMaterialAtlases()

◆ uploadTerrainMaterialAtlases()