载入中...
搜索中...
未找到
LifeFieldMaterialBinding.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4#include "common/Result.h"
6
7#include <glm/glm.hpp>
8
9#include <cstdint>
10#include <string>
11#include <vector>
12
13namespace eve::graphics {
14class Graphics;
15class Texture;
16} // namespace eve::graphics
17
18namespace eve::gpuagents {
19
22 glm::vec3 origin{0.f};
23 float worldSize = 1.f;
24 int resolution = 1;
26 std::string lifeFieldSampler = "LifeFieldTexture";
28 std::string surfaceDataSampler = "SurfaceDataTexture";
29};
30
38public:
41
43 [[nodiscard("check life-field pack")]] Result<void> syncFrom(const SurfaceField& field);
44
46 const LifeFieldMaterialUniforms& uniforms() const { return uniforms_; }
47
49 const std::vector<std::uint8_t>& lifeFieldPixels() const { return lifePixels_; }
50
52 const std::vector<std::uint8_t>& surfaceDataPixels() const { return surfacePixels_; }
53
61 [[nodiscard("check life-field upload")]] Result<graphics::Texture*> uploadLifeField(graphics::Graphics* gfx);
62
70 [[nodiscard("check surface-data upload")]] Result<graphics::Texture*> uploadSurfaceData(graphics::Graphics* gfx);
71
80 [[nodiscard("check texture update")]] Result<void> updateTexture(graphics::Graphics* gfx,
81 graphics::Texture* texture, bool lifeField) const;
82
83private:
84 LifeFieldMaterialUniforms uniforms_{};
85 std::vector<std::uint8_t> lifePixels_;
86 std::vector<std::uint8_t> surfacePixels_;
87};
88
89} // namespace eve::gpuagents
#define EVENGINE_API_DOMAINS
Definition Export.h:110
Move-only, checked operation results for the common layer.
V3 origin
Definition RoadBake.cpp:138
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Packs SurfaceField channels into Graphics-uploadable RGBA8 textures.
const std::vector< std::uint8_t > & surfaceDataPixels() const
RGBA8 surface-data pixels (R=height01, GBA=normal*0.5+0.5).
LifeFieldMaterialBinding()=default
Life field material binding.
const std::vector< std::uint8_t > & lifeFieldPixels() const
RGBA8 life-field pixels (R=trail, G=nutrient, B=danger, A=freshness).
const LifeFieldMaterialUniforms & uniforms() const
Current material uniforms (valid after successful sync).
2.5D surface + life-field textures for Life Network.
GPU texture created via Graphics::newTexture. Owns GPU resources through an opaque backend handle.
Definition Texture.h:18
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
Uniform block exposed to materials consuming Life Network surfaces.