载入中...
搜索中...
未找到
VegetationFieldGpu.cpp 文件参考
#include "graphics/VegetationFieldGpu.h"
#include <algorithm>
#include <bit>
#include <cmath>
#include <limits>
#include <new>
#include <vector>
#include "graphics/IResourceFactory.h"
#include "graphics/PbrSurface.h"
#include "graphics/VegetationField.h"

浏览源代码.

命名空间

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

函数

Result< VegetationGpuAtlas > eve::graphics::uploadAtlas (IResourceFactory &factory, const VegetationField &field, VegetationChannel channel, glm::vec3 center, glm::vec3 extent, uint32_t width, uint32_t height, bool snapToTexel)
 
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< 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< 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::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.