载入中...
搜索中...
未找到
Procgen.cpp
浏览该文件的文档.
546 pbr.addFunc("getRoughnessWidth", [](const PbrTextureSet *s) { return s->roughness->getWidth(); });
547 pbr.addFunc("getMetallicWidth", [](const PbrTextureSet *s) { return s->metallic->getWidth(); });
virtual std::string getName() const =0
Definition Graphics.h:56
virtual Texture * newTexture(int width, int height, const uint8_t *rgba, bool repeatU=false, bool repeatV=false)=0
virtual Mesh * newMeshFromArrays(const float *posXYZ, const float *nrmXYZ, const float *uvST, int vertexCount, const uint32_t *indices, int indexCount)=0
Upload a triangle mesh from packed CPU arrays. Owned by Graphics. posXYZ required (vertexCount*3)....
GPU texture created via Graphics::newTexture. Owns GPU resources through an opaque backend handle.
Definition Texture.h:17
ECS tile layer entity. Script mutates tile GIDs / tileset / draw; TileRenderSystem batch-draws atlas ...
Definition TileLayer.h:30
Deterministic, seamlessly-tiling, time-animated procedural cloud field.
Definition CloudField.h:17
void setWorldScale(float worldScale)
Definition CloudField.cpp:69
float coverageAt(float x, float z, float time) const
Cloud coverage at world (x, z) and time t, in [0,1].
Definition CloudField.cpp:86
void sample(float *out, int width, int height, float time, float x0, float z0, float extent) const
Definition CloudField.cpp:125
void setWind(float speed, float angleRad)
Definition CloudField.cpp:73
void setSunDirection(float x, float y, float z)
Definition CloudShadow.cpp:10
float coverageAt(float x, float z, float time) const
Cloud coverage projected onto ground (x, z) at time t, in [0,1].
Definition CloudShadow.cpp:27
void sampleCoverage(float *out, int width, int height, float time, float x0, float z0, float extent) const
Fill a buffer with projected coverage for a world region.
Definition CloudShadow.cpp:39
float shadowFactorAt(float x, float z, float time) const
Light multiplier in [0,1]: 1 = fully lit, (1-strength) = fully shadowed.
Definition CloudShadow.cpp:34
void setCloudAltitude(float altitude)
Definition CloudShadow.cpp:17
void registerBuiltins()
Register built-in DTL / custom map algorithms (idempotent).
Definition BuiltinAlgorithms.cpp:202
bool has(const std::string &id) const
Definition GeneratorRegistry.cpp:16
static GeneratorRegistry & instance()
Definition GeneratorRegistry.cpp:7
std::vector< std::string > list() const
Definition GeneratorRegistry.cpp:30
Intermediate 2D generation result. cells store semantic ids (see Semantic.h), not tile GIDs — convert...
Definition Grid2D.h:16
void setDetail(int x, int y, int value)
Per-cell detail layer (0..255), parallel to cells. Semantics stay in cells (palette/GID compatible); ...
Definition Grid2D.cpp:37
void addObject(const std::string &name, const std::string &type, float x, float y, float width, float height, int gid)
Definition Grid2D.cpp:60
void addObjectAt(const std::string &name, const std::string &type, float x, float y)
Script-friendly: name/type + tile coords.
Definition Grid2D.cpp:56
void setMeta(const std::string &key, const std::string &value)
Definition Grid2D.cpp:47
std::string getMeta(const std::string &key, const std::string &defaultValue) const
Definition Grid2D.cpp:49
In-memory terrain heightmap: a dense float grid (row-major, index = y * width + x) materialized from ...
Definition Heightmap.h:19
float sampleBilinear(float x, float y) const
Bilinear height at continuous coordinate within [0, w) x [0, h).
Definition Heightmap.cpp:37
bool toGrid(Grid2D &out, const TerrainBands &bands) const
Classify heights into a semantic Grid2D (source for tilemap generation).
Definition Heightmap.cpp:84
float sampleBilinearSeamless(float x, float y) const
Bilinear height with wrap-around (seamless tiling).
Definition Heightmap.cpp:52
static Heightmap generate(const TerrainSampler &sampler, int width, int height)
Materialize a Heightmap by sampling sampler at every pixel center.
Definition Heightmap.cpp:69
CPU triangle mesh from procedural mesh recipes (e.g. marching cubes). Positions/normals are xyz-packe...
Definition MeshBuild.h:14
const std::vector< float > & positions() const
Definition MeshBuild.h:39
std::string getMeta(const std::string &key, const std::string &defaultValue) const
Definition MeshBuild.cpp:83
const std::vector< float > & normals() const
Definition MeshBuild.h:40
void setMeta(const std::string &key, const std::string &value)
Definition MeshBuild.cpp:81
const std::vector< uint32_t > & indices() const
Definition MeshBuild.h:42
std::vector< std::string > list() const
Definition MarchingCubes.cpp:464
void registerBuiltins()
Definition MarchingCubes.cpp:472
static MeshRecipeRegistry & instance()
Definition MarchingCubes.cpp:441
bool has(const std::string &id) const
Definition MarchingCubes.cpp:450
Configurable generation sink. target: "grid" | "tilelayer" | "json"
Definition OutputSpec.h:15
void setTarget(const std::string &target)
Definition OutputSpec.cpp:7
void setPalette(const std::string &paletteName)
Definition OutputSpec.cpp:13
bool applyToLayer(const Grid2D &grid, const std::string &palette, map::TileLayer *layer, std::string *error) const
Definition Palette.cpp:24
void setGid(const std::string &palette, const std::string &semantic, int gid)
Definition Palette.cpp:9
int getGid(const std::string &palette, const std::string &semantic) const
Definition Palette.cpp:13
Generation parameters. Algorithm-specific keys live in values as strings (no overloads; typed setters...
Definition Params.h:13
float getFloat(const std::string &key, float defaultValue) const
Definition Params.cpp:32
void setFloat(const std::string &key, float value)
Definition Params.cpp:18
std::string getString(const std::string &key, const std::string &defaultValue) const
Definition Params.cpp:41
int getInt(const std::string &key, int defaultValue) const
Definition Params.cpp:23
void setString(const std::string &key, const std::string &value)
Definition Params.cpp:19
static PbrRecipeRegistry & instance()
Definition PbrMaterial.cpp:12
std::vector< std::string > list() const
Definition PbrMaterial.cpp:35
PbrTextureSet * generate(const std::string &id, const Params ¶ms, std::string &error) const
Definition PbrMaterial.cpp:25
void registerPbrBuiltins()
Definition PbrMaterial.cpp:43
bool has(const std::string &id) const
Definition PbrMaterial.cpp:21
Procedural generation module. Phase A: runtime maps (semantic Grid2D → TileLayer)....
Definition Procgen.h:37
int getTextureRecipeCount() const
Definition Procgen.cpp:210
CloudField * newCloudField()
New deterministic, tiling, time-animated cloud field (caller owns).
Definition Procgen.cpp:230
bool hasTextureRecipe(const std::string &recipeId) const
Definition Procgen.cpp:225
Grid2D * generate(const std::string &algorithmId, Params *params)
Definition Procgen.cpp:72
void sampleCloud(CloudField *field, float *out, int w, int h, float time, float x0, float z0, float extent)
Definition Procgen.cpp:252
float cloudCoverageAt(CloudField *field, float x, float z, float time)
Cloud coverage at world (x, z) and time (via a CloudField).
Definition Procgen.cpp:234
void setPaletteGid(const std::string &palette, const std::string &semantic, int gid)
Definition Procgen.cpp:122
void sampleCloudShadow(CloudShadow *shadow, float *out, int w, int h, float time, float x0, float z0, float extent)
Definition Procgen.cpp:262
graphics::Texture * generateTexture(const std::string &recipeId, Params *params, graphics::Graphics *gfx)
Upload recipe to GPU. repeatU/V follow params "seamless" (default on). Caller owns Texture*.
Definition Procgen.cpp:195
bool applyToLayer(Grid2D *grid, const std::string &palette, map::TileLayer *layer)
Definition Procgen.cpp:113
image::ImageData * generateImage(const std::string &recipeId, Params *params)
RGBA8 ImageData (caller owns). Pixel-friendly recipes: tex.soil/stone/marble/water/sky_cloud.
Definition Procgen.cpp:162
std::string getAlgorithmId(int index) const
Definition Procgen.cpp:135
bool heightmapToGrid(Heightmap *heightmap, Params *params, Grid2D *out)
Classify a heightmap into a semantic Grid2D using params bands (waterMax…).
Definition Procgen.cpp:371
Heightmap * generateHeightmap(Params *params)
Build a sampler from params (seed/scale/octaves/…) and materialize it (caller owns).
Definition Procgen.cpp:361
Heightmap * newHeightmap(int width, int height)
Empty in-memory heightmap (caller owns).
Definition Procgen.cpp:357
image::ImageData * generateNormalImage(const std::string &recipeId, Params *params)
Normal map derived from albedo luminance (caller owns).
Definition Procgen.cpp:175
bool generateTo(const std::string &algorithmId, Params *params, OutputSpec *output)
Definition Procgen.cpp:85
CloudShadow * newCloudShadow()
New sun projection over a cloud field → ground shadows (caller owns).
Definition Procgen.cpp:232
std::string getMeshRecipeId(int index) const
Definition Procgen.cpp:341
bool hasPbrRecipe(const std::string &recipeId) const
Definition Procgen.cpp:299
bool hasAlgorithm(const std::string &algorithmId) const
Definition Procgen.cpp:141
int getPaletteGid(const std::string &palette, const std::string &semantic) const
Definition Procgen.cpp:126
std::string getPbrRecipeId(int index) const
Definition Procgen.cpp:290
float cloudShadowFactor(CloudShadow *shadow, float x, float z, float time)
Light multiplier in [0,1] from a CloudShadow at world (x, z) and time.
Definition Procgen.cpp:243
graphics::Mesh * generateMesh(const std::string &recipeId, Params *params, graphics::Graphics *gfx)
Build + upload to GPU Mesh (owned by Graphics).
Definition Procgen.cpp:320
bool hasMeshRecipe(const std::string &recipeId) const
Definition Procgen.cpp:350
std::string gridToJson(Grid2D *grid) const
Definition Procgen.cpp:157
MeshBuild * buildMesh(const std::string &recipeId, Params *params)
CPU mesh (caller owns). Recipes: mesh.marchingcubes, mesh.hexplanet.
Definition Procgen.cpp:304
PbrTextureSet * generatePbrMaterial(const std::string &recipeId, Params *params)
Full metallic-roughness PBR set (albedo/normal/roughness/metallic/height/ao) derived from a single di...
Definition Procgen.cpp:272
std::string getTextureRecipeId(int index) const
Definition Procgen.cpp:216
TerrainSampler * newTerrainSampler()
Sampling function over continuous map coordinates (caller owns).
Definition Procgen.cpp:355
bool autotileGrid(Grid2D *grid)
Post-process a generated grid: fill each wall cell's detail with an 8-bit neighbour mask (autotile di...
Definition Procgen.cpp:145
Deterministic terrain height sampling (Red Blob Games / Perlin fBm recipe).
Definition TerrainSampler.h:27
float getContinent() const
Definition TerrainSampler.cpp:33
void setOctaves(int octaves)
Definition TerrainSampler.cpp:20
float sample(float x, float y) const
Definition TerrainSampler.cpp:65
float sampleTile(int tileX, int tileY) const
Height at the center of map tile (tileX, tileY).
Definition TerrainSampler.cpp:120
void setLacunarity(float lacunarity)
Definition TerrainSampler.cpp:22
void setFrequency(float frequency)
Definition TerrainSampler.cpp:14
float getFrequency() const
Definition TerrainSampler.cpp:15
float getCoastSoftness() const
Definition TerrainSampler.cpp:37
void setContinent(float continent)
Definition TerrainSampler.cpp:32
void setClamp(bool enabled, float minHeight, float maxHeight)
Definition TerrainSampler.cpp:48
int getWorldWidth() const
Definition TerrainSampler.cpp:42
void setAmplitude(float amplitude)
Definition TerrainSampler.cpp:46
void setScale(float scale)
Cycles per world unit (alias of frequency). Default 1/32.
Definition TerrainSampler.cpp:12
void setCoastSoftness(float softness)
Shore width of the land mask smoothstep. Smaller = cleaner, harder coast.
Definition TerrainSampler.cpp:36
int getWorldHeight() const
Definition TerrainSampler.cpp:43
float getLacunarity() const
Definition TerrainSampler.cpp:23
void setWorldSize(int width, int height)
Definition TerrainSampler.cpp:38
void setExponent(float exponent)
Definition TerrainSampler.cpp:30
static TerrainSampler fromParams(const Params ¶ms)
Definition TerrainSampler.cpp:128
float getAmplitude() const
Definition TerrainSampler.cpp:47
float getWavelength() const
Definition TerrainSampler.cpp:19
void setWavelength(float wavelength)
Distance per large oscillation. Sets frequency = 1/wavelength.
Definition TerrainSampler.cpp:16
bool has(const std::string &id) const
Definition TextureRecipe.cpp:19
std::vector< std::string > list() const
Definition TextureRecipe.cpp:33
image::ImageData * generate(const std::string &id, const Params ¶ms, std::string &error) const
Definition TextureRecipe.cpp:23
void registerBuiltins()
Definition BuiltinTextures.cpp:484
static TextureRecipeRegistry & instance()
Definition TextureRecipe.cpp:10
Definition BuiltinAlgorithms.cpp:13
void registerProcgenCapabilities()
Definition ProcgenCapabilities.cpp:101
uint32_t randomSeedValue()
Produce a fresh seed suitable for regenerating a level (never 0).
Definition RoguelikeGenerator.cpp:352
bool writeGridJson(const Grid2D &grid, const std::string &path, std::string *error)
Definition JsonExport.cpp:56
image::ImageData * heightToNormalImage(const std::vector< float > &height, int w, int h, float strength, bool seamless)
Definition TextureRecipe.cpp:106
bool autotileGridInPlace(Grid2D &grid)
Post-process any generated Grid2D: fill each wall cell's detail with an 8-bit neighbour mask describi...
Definition RoguelikeGenerator.cpp:347
std::string gridToJson(const Grid2D &grid)
Compact JSON for debugging / reload workflows (not full Tiled).
Definition JsonExport.cpp:29
Full metallic-roughness PBR map set. All maps are caller-owned; call destroy() (or delete each pointe...
Definition PbrMaterial.h:24
static TerrainBands fromParams(const Params ¶ms)
Definition TerrainSampler.cpp:168