载入中...
搜索中...
未找到
#include "common/Export.h"#include "common/Result.h"#include "common/PcgPhotoModeApply.h"#include "graphics/Shader.h"#include <cstdint>#include <string>#include <vector>#include <glm/glm.hpp>类 | |
| struct | eve::graphics::grass::GrassFoliageSettings |
| Pcg-style static foliage surface controls packed into the grass shader profile. Values are copied during upload; colors are linear RGB. 更多... | |
| struct | eve::graphics::grass::TerrainDetailOverwriteSettings |
| Runtime terrain-detail overrides kept distinct from foliage material settings. 更多... | |
| struct | eve::graphics::grass::Point |
| Point public API. 更多... | |
| struct | eve::graphics::grass::SampleParams |
| SampleParams public API. 更多... | |
| struct | eve::graphics::grass::BillboardMesh |
| BillboardMesh public API. 更多... | |
| struct | eve::graphics::grass::PackedAtlasInfo |
| Layout of a packed 2x2-per-variant sway atlas (4 grass + 2 leaf typical). 更多... | |
| class | eve::graphics::GrassField |
| Dense grass + sparse dark tufts on a mesh. Caller owns GrassField*; GPU Mesh / Shader / Texture are owned by Graphics. 更多... | |
| struct | eve::graphics::GrassField::BakeParams |
| BakeParams public API. 更多... | |
命名空间 | |
| namespace | eve |
| Build metadata (engine git commit, build time, third-party version). | |
| namespace | eve::image |
| namespace | eve::graphics |
| 卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局参数。 数据模型与渲染/交互逻辑见 CardTypes.h。 | |
| namespace | eve::graphics::grass |
| t3ssel8r-style stylized grass. | |
枚举 | |
| enum class | eve::graphics::grass::TerrainDetailQuality { eve::graphics::grass::VeryLow64 , eve::graphics::grass::Low32 , eve::graphics::grass::Medium16 , eve::graphics::grass::High8 , eve::graphics::grass::VeryHigh4 , eve::graphics::grass::Ultra2 } |
| Pcg quality category derived from detailResolutionPerPatch. 更多... | |
函数 | |
| EVENGINE_API_BACKENDS TerrainDetailQuality | eve::graphics::grass::terrainDetailQuality (int resolutionPerPatch) noexcept |
| Classify a Unity terrain detail patch resolution with Pcg's exact default mapping. | |
| EVENGINE_API_BACKENDS Result< int > | eve::graphics::grass::applyTerrainDetailOverwrite (GrassFoliageSettings &foliage, const TerrainDetailOverwriteSettings &settings) |
| Validate and copy TerrainDetailOverwrite distances/density into a foliage profile atomically. | |
| std::vector< Point > | eve::graphics::grass::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. | |
| std::vector< Point > | eve::graphics::grass::sampleHalton (const float *posXYZ, const float *nrmXYZ, int vertexCount, const uint32_t *indices, int indexCount, int count, uint32_t seed=1, float minSlopeDot=0.25f) |
| Area-weighted Halton samples (deterministic, evenly spread). | |
| EVENGINE_API_BACKENDS BillboardMesh | eve::graphics::grass::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,1]^2 (0.5, 0) is the root normal.x = animation id, normal.y = height scale. normal.z uses legacy 0/1 for uniform width; independent width w encodes -w for dense or 1+w for dark grass. A normalized tint encodes RGB8 as negative normal.x; legacy tint {-1,-1,-1} retains id. The shader derives animation identity from the local root for tinted points, so model transforms do not change the wind phase. Alpha remains texture-owned. | |
| int | eve::graphics::grass::swayFrame (float time, float frameDuration, uint32_t instanceId, int frameCount=4) |
| Discrete 4-frame index with a per-instance phase offset. | |
| void | eve::graphics::grass::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 via packSwayAtlasRGBA / createSwayAtlasFromFiles. | |
| int | eve::graphics::grass::swayAtlasWidth (int frameW, int frames) |
| Sway atlas width. | |
| int | eve::graphics::grass::swayAtlasHeight (int frameH) |
| Sway atlas height. | |
| Texture * | eve::graphics::grass::createSwayAtlas (Graphics *gfx, int frameW=64, int frameH=64, int frames=4) |
| Creates sway atlas. | |
| void | eve::graphics::grass::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. | |
| Texture * | eve::graphics::grass::createSwayAtlasFromFiles (Graphics *gfx, const std::vector< std::string > &grassFiles, const std::vector< std::string > &leafFiles, PackedAtlasInfo *infoOut=nullptr) |
| Creates sway atlas from files. | |
| Shader * | eve::graphics::grass::createShader (Graphics *gfx) |
| Creates shader. | |
| EVENGINE_API_BACKENDS void | eve::graphics::grass::bindDefaults (Shader *shader) |
| Binds defaults. | |
| void | eve::graphics::grass::bindLayer (Shader *shader, bool alwaysDark) |
| Binds layer. | |
| void | eve::graphics::grass::bindAtlasLayout (Shader *shader, const PackedAtlasInfo &info) |
| Binds atlas layout. | |
| EVENGINE_API_BACKENDS void | eve::graphics::grass::bindFoliage (Shader *shader, const GrassFoliageSettings &settings) |
| Select the static foliage profile and copy its validated surface parameters. | |
| void | eve::graphics::grass::setTime (Shader *shader, float seconds) |
| Sets the time. | |
| void | eve::graphics::grass::setFrameDuration (Shader *shader, float seconds) |
| Sets the frame duration. | |
| EVENGINE_API_BACKENDS int | eve::graphics::grass::paramCount () |
| Param count. | |
| EVENGINE_API_BACKENDS std::string | eve::graphics::grass::paramName (int index) |
| Param name. | |
| void | eve::graphics::grass::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. | |