载入中...
搜索中...
未找到
Grass.h
浏览该文件的文档.
103EVENGINE_API_BACKENDS std::vector<Point> samplePoisson(const float *posXYZ, const float *nrmXYZ, int vertexCount,
108EVENGINE_API_BACKENDS std::vector<Point> sampleHalton(const float *posXYZ, const float *nrmXYZ, int vertexCount,
124EVENGINE_API_BACKENDS BillboardMesh buildBillboards(const std::vector<Point> &points, float width = 0.62f,
128EVENGINE_API_BACKENDS int swayFrame(float time, float frameDuration, uint32_t instanceId, int frameCount = 4);
134EVENGINE_API_BACKENDS void makeSwayAtlasRGBA(int frameW, int frameH, int frames, std::vector<uint8_t> &rgbaOut);
184EVENGINE_API_BACKENDS void makePlane(float sizeX, float sizeZ, int segX, int segZ, std::vector<float> &posXYZ,
220 void bake(const float *posXYZ, const float *nrmXYZ, int vertexCount, const uint32_t *indices, int indexCount,
236 [[nodiscard]] Result<int> bakePoints(const std::vector<grass::Point> &points, float width, float height);
242 [[nodiscard]] Result<int> bakeTexturedPoints(const std::vector<grass::Point> &points, float width, float height,
249 [[nodiscard]] Result<int> bakeFoliagePoints(const std::vector<grass::Point> &points, float width, float height,
259 [[nodiscard]] Result<int> setTerrainDetailOverwrite(const grass::TerrainDetailOverwriteSettings &settings);
float getPhotoModeDensity() const noexcept{return photoModeDensity_;} float getPhotoModeDistance() const noexcept{return photoModeDistance_;} float getPhotoModeCellDistance() const noexcept{return photoModeCellDistance_;} int getPhotoModeCellSubdivision() const noexcept{return photoModeCellSubdivision_;} 270 PhotoModeFieldAcceptance acceptsPhotoModeField(const PhotoModeAssignment& assignment) const noexcept override;
306 [[nodiscard]] Result<int> bakePointData(const std::vector<grass::Point> &points, float width, float height,
Move-only, checked operation results for the common layer.
Definition Graphics.h:125
Dense grass + sparse dark tufts on a mesh. Caller owns GrassField*; GPU Mesh / Shader / Texture are o...
Definition Grass.h:193
void setReflectionCaptureMask(uint32_t mask)
Set the reflection-capture visibility layer mask.
Definition Grass.h:288
uint32_t getReflectionCaptureMask() const
Return the reflection-capture visibility layer mask.
Definition Grass.h:290
bool getReflectionCaptureEnabled() const
Return whether this field is included in reflection-probe captures.
Definition Grass.h:286
Shader * getShader() const
Borrow the shader on the owner thread; valid until this field is destroyed.
Definition Grass.h:297
GrassField(const GrassField &)=delete
Mesh * getDenseMesh() const
Borrow the dense mesh on the owner thread; valid until this field rebakes or is destroyed.
Definition Grass.h:293
void setReflectionCaptureEnabled(bool enabled)
Enable or disable inclusion in reflection-probe captures.
Definition Grass.h:284
Texture * getAtlas() const
Borrow the atlas on the owner thread; valid until this field uploads another atlas or is destroyed.
Definition Grass.h:299
GrassField & operator=(const GrassField &)=delete
Mesh * getSparseMesh() const
Borrow the sparse mesh on the owner thread; valid until this field rebakes or is destroyed.
Definition Grass.h:295
float getTerrainDetailHardDistance() const noexcept
Return the currently applied Unity-style hard detail distance.
Definition Grass.h:261
float getTerrainDetailDensity() const noexcept
Return the currently applied normalized detail density.
Definition Grass.h:263
GPU texture created via Graphics::newTexture. Owns GPU resources through an opaque backend handle.
Definition Texture.h:18
@ ImageData
void setFrameDuration(Shader *shader, float seconds)
Sets the frame duration.
Definition Grass.cpp:301
EVENGINE_API_BACKENDS TerrainDetailQuality terrainDetailQuality(int resolutionPerPatch) noexcept
Classify a Unity terrain detail patch resolution with Pcg's exact default mapping.
Definition GrassParameters.cpp:79
int swayFrame(float time, float frameDuration, uint32_t instanceId, int frameCount)
Discrete 4-frame index with a per-instance phase offset.
Definition Grass.cpp:322
Texture * createSwayAtlasFromFiles(Graphics *gfx, const std::vector< std::string > &grassFiles, const std::vector< std::string > &leafFiles, PackedAtlasInfo *infoOut)
Creates sway atlas from files.
Definition Grass.cpp:471
EVENGINE_API_BACKENDS void bindFoliage(Shader *shader, const GrassFoliageSettings &settings)
Select the static foliage profile and copy its validated surface parameters.
Definition GrassParameters.cpp:64
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:484
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:334
Texture * createSwayAtlas(Graphics *gfx, int frameW, int frameH, int frames)
Creates sway atlas.
Definition Grass.cpp:348
TerrainDetailQuality
Pcg quality category derived from detailResolutionPerPatch.
Definition Grass.h:64
EVENGINE_API_BACKENDS void bindDefaults(Shader *shader)
Binds defaults.
Definition GrassParameters.cpp:22
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:511
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:417
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:550
EVENGINE_API_BACKENDS Result< int > applyTerrainDetailOverwrite(GrassFoliageSettings &foliage, const TerrainDetailOverwriteSettings &settings)
Validate and copy TerrainDetailOverwrite distances/density into a foliage profile atomically.
Definition GrassParameters.cpp:90
EVENGINE_API_BACKENDS BillboardMesh buildBillboards(const std::vector< Point > &points, float width=0.62f, float height=0.95f, bool alwaysDark=false)
Expand a unit rectangle per point. Vertex layout: pos = grass root uv = quad corner in [0,...
Definition GrassBillboards.cpp:13
void bindAtlasLayout(Shader *shader, const PackedAtlasInfo &info)
Binds atlas layout.
Definition Grass.cpp:281
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
Definition AvatarInstance.h:25
PhotoModeFieldAcceptance
Capability implemented by the composition root that routes assignments to domain owners.
Definition PcgPhotoModeApply.h:32
@ Graphics
std::vector< std::string > grassAtlasFiles
Authored 2x2 sway masks (4 grass + 2 leaf). Empty = procedural strip.
Definition Grass.h:210
std::vector< std::string > leafAtlasFiles
Definition Grass.h:211
Pcg-style static foliage surface controls packed into the grass shader profile. Values are copied dur...
Definition Grass.h:40
float snowFadeDistance
Definition Grass.h:49
float snowMinimumHeight
Definition Grass.h:48
float hardRenderDistance
Definition Grass.h:46
Layout of a packed 2x2-per-variant sway atlas (4 grass + 2 leaf typical).
Definition Grass.h:144
float widthScale
Independent horizontal scale; zero retains the uniform scale behavior.
Definition Grass.h:80
glm::vec3 tint
Linear instance RGB; {-1,-1,-1} preserves legacy untinted encoding.
Definition Grass.h:82
Runtime terrain-detail overrides kept distinct from foliage material settings.
Definition Grass.h:55
int detailResolutionPerPatch
Definition Grass.h:60
float unityDetailDensity
Definition Grass.h:59
float pcgFadeoutDistance
Definition Grass.h:57
float pcgDetailDistance
Definition Grass.h:56
int unityDetailDistance
Definition Grass.h:58