载入中...
搜索中...
未找到
VegetationFieldGpu.h 文件参考
#include "common/Export.h"
#include <array>
#include <cstdint>
#include <glm/vec3.hpp>
#include <span>
#include "common/Result.h"

浏览源代码.

类

struct  eve::graphics::VegetationGpuAtlas
 Immutable GPU projection of nine layers from one vegetation field channel. The source field remains authoritative; fieldRevision detects stale projections. Texture ownership remains with factory and the caller must release it through that factory. 更多...
 
struct  eve::graphics::VegetationGpuFieldSet
 Coherent detached projections for all four vegetation channels. Textures are factory-owned. The caller must release the set through releaseVegetationGpuFieldSet on the same graphics thread and factory. 更多...
 
struct  eve::graphics::VegetationGpuRuntime
 Runtime-owned global inputs shared by one coherent vegetation field binding. Time is explicit for deterministic replay. Noise and atlas textures remain borrowed. 更多...
 

命名空间

namespace  eve
 Build metadata (engine git commit, build time, third-party version).
 
namespace  eve::graphics
 卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局参数。 数据模型与渲染/交互逻辑见 CardTypes.h。
 

类型定义

using eve::graphics::VegetationExtrasGpuAtlas = VegetationGpuAtlas
 
using eve::graphics::VegetationColorsGpuAtlas = VegetationGpuAtlas
 
using eve::graphics::VegetationMotionGpuAtlas = VegetationGpuAtlas
 
using eve::graphics::VegetationVertexGpuAtlas = VegetationGpuAtlas
 

函数

Result< VegetationExtrasGpuAtlas > eve::graphics::uploadVegetationExtrasAtlas (IResourceFactory &factory, const VegetationField &field, glm::vec3 center, glm::vec3 extent, uint32_t width, uint32_t height, bool snapToTexel=true)
 Bake and atomically upload all nine Extras layers as a linear RGBA16F 2D array.
 
Result< VegetationColorsGpuAtlas > eve::graphics::uploadVegetationColorsAtlas (IResourceFactory &factory, const VegetationField &field, glm::vec3 center, glm::vec3 extent, uint32_t width, uint32_t height, bool snapToTexel=true)
 Bake and atomically upload all nine Colors layers as a linear RGBA16F 2D array. Ownership, revision, geometry, budget and threading contracts match uploadVegetationExtrasAtlas.
 
Result< VegetationMotionGpuAtlas > eve::graphics::uploadVegetationMotionAtlas (IResourceFactory &factory, const VegetationField &field, glm::vec3 center, glm::vec3 extent, uint32_t width, uint32_t height, bool snapToTexel=true)
 Bake and atomically upload all nine Motion layers as a linear RGBA16F 2D array.
 
Result< VegetationVertexGpuAtlas > eve::graphics::uploadVegetationVertexAtlas (IResourceFactory &factory, const VegetationField &field, glm::vec3 center, glm::vec3 extent, uint32_t width, uint32_t height, bool snapToTexel=true)
 Bake and atomically upload all nine Vertex layers as a linear RGBA16F 2D array.
 
Result< VegetationGpuFieldSet > eve::graphics::uploadVegetationGpuFieldSet (IResourceFactory &factory, const VegetationField &field, glm::vec3 center, glm::vec3 extent, uint32_t width, uint32_t height, bool snapToTexel=true)
 Bake and upload all four nine-layer projections as one publication. Earlier uploads are released if any later channel fails. The returned set is coherent by revision, snapped bounds and dimensions and owns no factory lifetime.
 
Result< VegetationGpuFieldSet > eve::graphics::uploadVegetationGpuFieldSet (IResourceFactory &factory, std::span< const VegetationAtlas, 9 > layers, std::uint64_t sourceRevision)
 Atomically upload nine pre-baked layer atlases into four coherent RGBA16F arrays.
 
Result< VegetationGpuFieldSet > eve::graphics::uploadVegetationGpuFieldSet (IResourceFactory &factory, std::span< const VegetationChannelAtlas, 9 > colors, std::span< const VegetationChannelAtlas, 9 > extras, std::span< const VegetationChannelAtlas, 9 > motion, std::span< const VegetationChannelAtlas, 9 > vertex, std::uint64_t sourceRevision)
 Atomically upload four independently sized groups of nine pre-baked channel layers. Each group must be internally coherent. The combined RGBA16F upload is limited to 256 MiB.
 
Result< void > eve::graphics::releaseVegetationGpuFieldSet (IResourceFactory &factory, VegetationGpuFieldSet &set)
 Release every texture still present in a detached field set. Successful entries are nulled. If a foreign/already-released entry is found, remaining entries are still attempted and the set retains only failed pointers.
 
Result< void > eve::graphics::bindVegetationGpuFields (PbrSurface &surface, const VegetationField &field, const VegetationExtrasGpuAtlas &extras, const VegetationColorsGpuAtlas &colors, const VegetationMotionGpuAtlas &motion, const VegetationVertexGpuAtlas &vertex, const VegetationGpuRuntime &runtime)
 Atomically bind four coherent GPU projections to an owning PBR parameter snapshot.
 
Result< void > eve::graphics::bindVegetationGpuFields (PbrSurface &surface, const VegetationField &field, const VegetationGpuFieldSet &set, const VegetationGpuRuntime &runtime)
 Convenience overload for a coherent detached four-channel set.
 
Result< void > eve::graphics::bindVegetationGpuFields (PbrSurface &surface, const VegetationGpuFieldSet &set, std::uint64_t expectedRevision, const VegetationGpuRuntime &runtime)
 Bind a coherent field set owned by a scene/runtime revision rather than VegetationField.