载入中...
搜索中...
未找到
Grass.h
浏览该文件的文档.
Definition Graphics.h:56
Dense grass + sparse dark tufts on a mesh. Caller owns GrassField*; GPU Mesh / Shader / Texture are o...
Definition Grass.h:124
void setFrameDuration(float seconds)
Definition Grass.cpp:752
GrassField(const GrassField &)=delete
~GrassField()=default
GrassField & operator=(const GrassField &)=delete
void bake(const float *posXYZ, const float *nrmXYZ, int vertexCount, const uint32_t *indices, int indexCount, const BakeParams ¶ms)
Definition Grass.cpp:669
void bakePlane(float sizeX, float sizeZ, int segX, int segZ)
Definition Grass.cpp:731
GPU texture created via Graphics::newTexture. Owns GPU resources through an opaque backend handle.
Definition Texture.h:17
void makeSwayAtlasRGBA(int frameW, int frameH, int frames, std::vector< uint8_t > &rgbaOut)
Procedural 4-frame fallback atlas (horizontal strip). GPU paths should load authored 2x2 PNG masks vi...
Definition Grass.cpp:369
int swayAtlasWidth(int frameW, int frames)
Definition Grass.cpp:366
void setFrameDuration(Shader *shader, float seconds)
Definition Grass.cpp:341
void makePlane(float sizeX, float sizeZ, int segX, int segZ, std::vector< float > &posXYZ, std::vector< float > &nrmXYZ, std::vector< uint32_t > &indices)
Unit XZ plane (Y-up) for tests / demos.
Definition Grass.cpp:618
void packSwayAtlasRGBA(const std::vector< std::string > &grassFiles, const std::vector< std::string > &leafFiles, std::vector< uint8_t > &rgbaOut, PackedAtlasInfo &info)
Load white-on-black (or RGBA) 2x2 sway PNGs and pack them into one atlas.
Definition Grass.cpp:451
int swayFrame(float time, float frameDuration, uint32_t instanceId, int frameCount)
Discrete 4-frame index with a per-instance phase offset.
Definition Grass.cpp:357
std::vector< Point > sampleHalton(const float *posXYZ, const float *nrmXYZ, int vertexCount, const uint32_t *indices, int indexCount, int count, uint32_t seed, float minSlopeDot)
Area-weighted Halton samples (deterministic, evenly spread).
Definition Grass.cpp:518
Texture * createSwayAtlasFromFiles(Graphics *gfx, const std::vector< std::string > &grassFiles, const std::vector< std::string > &leafFiles, PackedAtlasInfo *infoOut)
Definition Grass.cpp:505
std::vector< Point > samplePoisson(const float *posXYZ, const float *nrmXYZ, int vertexCount, const uint32_t *indices, int indexCount, const SampleParams ¶ms)
Fast Poisson-disk / dart-throwing blue noise on a triangle mesh.
Definition Grass.cpp:545
Texture * createSwayAtlas(Graphics *gfx, int frameW, int frameH, int frames)
Definition Grass.cpp:383
void bindLayer(Shader *shader, bool alwaysDark)
Definition Grass.cpp:331
BillboardMesh buildBillboards(const std::vector< Point > &points, float width, float height, bool alwaysDark)
Expand a unit rectangle per point. Vertex layout: pos = grass root uv = quad corner in [0,...
Definition Grass.cpp:583
void bindAtlasLayout(Shader *shader, const PackedAtlasInfo &info)
Definition Grass.cpp:321
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition AnimTrail.h:6
std::vector< std::string > grassAtlasFiles
Authored 2x2 sway masks (4 grass + 2 leaf). Empty = procedural strip.
Definition Grass.h:140
std::vector< std::string > leafAtlasFiles
Definition Grass.h:141
float denseRadius
Poisson spacing. Keep this well below width so tufts overlap.
Definition Grass.h:128
Layout of a packed 2x2-per-variant sway atlas (4 grass + 2 leaf typical).
Definition Grass.h:85
Definition Grass.h:30
Definition Grass.h:37