载入中...
搜索中...
未找到
#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. | |