-
Notifications
You must be signed in to change notification settings - Fork 0
srcs__world__terrain_gen_cpp
Ishi_eenn edited this page May 19, 2026
·
2 revisions
ノイズを使って高さ、バイオーム、洞窟、水、木、村をチャンク内へ生成する。
-
BiomeParams(struct, 行 48) -
VillageMat(struct, 行 181)
-
TerrainGenerator::setSeed: 行 39-42 -
hash3: 行 57-68 -
blendBiome: 行 71-74 -
biomeWeights: 行 79-87 -
computeTerrainHeight: 行 92-106 -
canPlaceTreeAt: 行 109-123 -
placeTree: 行 128-162 -
setBlockWorld: 行 169-176 -
getVillageMat: 行 187-190 -
computeFootprintBase: 行 198-210 -
levelBuilding: 行 219-235 -
getVillageCenter: 行 242-251 -
isVillageSuitable: 行 254-273 -
placePlaza: 行 278-283 -
placeWell: 行 288-307 -
placePath: 行 312-330 -
placeSmallHut: 行 338-358 -
placeHouse: 行 365-386 -
placeLargeHouse: 行 391-412 -
placeTower: 行 417-441 -
placeFarm: 行 446-464 -
layoutClassic: 行 472-525 -
layoutCompact: 行 533-585 -
layoutStreet: 行 593-669 -
placeVillage: 行 679-715 -
TerrainGenerator::generate: 行 720-870
- 場所: 行 39-42
- シグネチャ:
void TerrainGenerator::setSeed(uint32_t seed) - 内容: 内部状態や対象データに新しい値を設定する。
- 主な呼び出し:
setSeed()
- 場所: 行 57-68
- シグネチャ:
static uint32_t hash3(int x, int y, int z) - 内容: 座標や値から決定的な擬似乱数/ハッシュ値を生成する。
- 主な呼び出し:
hash3()
- 場所: 行 71-74
- シグネチャ:
static float blendBiome(float wP, float wD, float wT, float wR, float vP, float vD, float vT, float vR) - 内容: 地形生成に必要な補助計算を行う。
- 場所: 行 79-87
- シグネチャ:
static void biomeWeights(float temp, float humid, float& wP, float& wD, float& wT, float& wR) - 内容: 地形生成に必要な補助計算を行う。
- 場所: 行 92-106
- シグネチャ:
static int computeTerrainHeight(const NoiseGen& noise, int wx, int wz) - 内容: 地形生成に必要な補助計算を行う。
- 主な呼び出し:
computeTerrainHeight(),getTemperature(),getHumidity(),biomeWeights(),blendBiome(),getHeight(),getValley(),max(),clamp()
- 場所: 行 109-123
- シグネチャ:
static bool canPlaceTreeAt(const Chunk& chunk, int x, int z, int surface) - 内容: 条件を判定し、呼び出し元が処理を続けるべきか判断できるようにする。
- 主な呼び出し:
canPlaceTreeAt(),getBlock()
- 場所: 行 128-162
- シグネチャ:
static void placeTree(Chunk& chunk, int x, int z, int surface, uint32_t seed) - 内容: 地形生成時に、指定位置へ構造物や地形要素を配置する。
- 主な呼び出し:
placeTree(),hash3(),setBlock(),abs(),getBlock()
- 場所: 行 169-176
- シグネチャ:
static void setBlockWorld(Chunk& chunk, int chunk_wx, int chunk_wz, int wx, int wy, int wz, BlockType t) - 内容: 内部状態や対象データに新しい値を設定する。
- 主な呼び出し:
setBlock()
- 場所: 行 187-190
- シグネチャ:
static VillageMat getVillageMat(float wT) - 内容: 内部状態または計算結果を取得して返す。
- 主な呼び出し:
getVillageMat()
- 場所: 行 198-210
- シグネチャ:
static int computeFootprintBase(const NoiseGen& noise, int origin_wx, int origin_wz, int fw, int fd) - 内容: 地形生成に必要な補助計算を行う。
- 主な呼び出し:
computeTerrainHeight()
- 場所: 行 219-235
- シグネチャ:
static void levelBuilding(Chunk& chunk, const NoiseGen& noise, int chunk_wx, int chunk_wz, int origin_wx, int origin_wz, int fw, int fd, int base_y) - 内容: 入力データから描画または処理に使う中間データを構築する。
- 主な呼び出し:
computeTerrainHeight(),setBlockWorld()
- 場所: 行 242-251
- シグネチャ:
static bool getVillageCenter(int cell_cx, int cell_cz, uint32_t seed, int& out_wx, int& out_wz) - 内容: 内部状態または計算結果を取得して返す。
- 主な呼び出し:
hash3()
- 場所: 行 254-273
- シグネチャ:
static bool isVillageSuitable(const NoiseGen& noise, int vx, int vz) - 内容: 条件を判定し、呼び出し元が処理を続けるべきか判断できるようにする。
- 主な呼び出し:
isVillageSuitable(),getTemperature(),getHumidity(),biomeWeights(),computeTerrainHeight(),min(),max()
- 場所: 行 278-283
- シグネチャ:
static void placePlaza(Chunk& chunk, int chunk_wx, int chunk_wz, int vx, int vz, int base_y, int radius) - 内容: 地形生成時に、指定位置へ構造物や地形要素を配置する。
- 主な呼び出し:
setBlockWorld()
- 場所: 行 288-307
- シグネチャ:
static void placeWell(Chunk& chunk, int chunk_wx, int chunk_wz, int vx, int vz, int base_y) - 内容: 地形生成時に、指定位置へ構造物や地形要素を配置する。
- 主な呼び出し:
setBlock(),setWaterLevel(),setBlockWorld()
- 場所: 行 312-330
- シグネチャ:
static void placePath(Chunk& chunk, const NoiseGen& noise, int chunk_wx, int chunk_wz, int wx1, int wz1, int wx2, int wz2) - 内容: 地形生成時に、指定位置へ構造物や地形要素を配置する。
- 主な呼び出し:
computeTerrainHeight(),setBlockWorld()
- 場所: 行 338-358
- シグネチャ:
static void placeSmallHut(Chunk& chunk, int chunk_wx, int chunk_wz, int origin_wx, int origin_wz, int base_y, int orient, const VillageMat& mat) - 内容: 地形生成時に、指定位置へ構造物や地形要素を配置する。
- 主な呼び出し:
setBlockWorld()
- 場所: 行 365-386
- シグネチャ:
static void placeHouse(Chunk& chunk, int chunk_wx, int chunk_wz, int origin_wx, int origin_wz, int base_y, int orient, const VillageMat& mat) - 内容: 地形生成時に、指定位置へ構造物や地形要素を配置する。
- 主な呼び出し:
setBlockWorld()
- 場所: 行 391-412
- シグネチャ:
static void placeLargeHouse(Chunk& chunk, int chunk_wx, int chunk_wz, int origin_wx, int origin_wz, int base_y, int orient, const VillageMat& mat) - 内容: 地形生成時に、指定位置へ構造物や地形要素を配置する。
- 主な呼び出し:
setBlockWorld()
- 場所: 行 417-441
- シグネチャ:
static void placeTower(Chunk& chunk, int chunk_wx, int chunk_wz, int origin_wx, int origin_wz, int base_y, const VillageMat& /*mat*/) - 内容: 地形生成時に、指定位置へ構造物や地形要素を配置する。
- 主な呼び出し:
setBlockWorld()
- 場所: 行 446-464
- シグネチャ:
static void placeFarm(Chunk& chunk, int chunk_wx, int chunk_wz, int origin_wx, int origin_wz, int base_y) - 内容: 地形生成時に、指定位置へ構造物や地形要素を配置する。
- 主な呼び出し:
setBlockWorld()
- 場所: 行 472-525
- シグネチャ:
static void layoutClassic(Chunk& chunk, const NoiseGen& noise, uint32_t vh, int chunk_wx, int chunk_wz, int vx, int vz, int base_y, const VillageMat& mat) - 内容: 村の建物、道、広場などの配置パターンを決めて生成する。
- 主な呼び出し:
placePlaza(),placeWell(),jit(),computeFootprintBase(),levelBuilding(),placeTower(),placePath(),placeFarm(),placeLargeHouse(),placeHouse()
手順:
- 処理結果または成功/失敗を呼び出し元へ返す。
- 場所: 行 533-585
- シグネチャ:
static void layoutCompact(Chunk& chunk, const NoiseGen& noise, uint32_t vh, int chunk_wx, int chunk_wz, int vx, int vz, int base_y, const VillageMat& mat) - 内容: 村の建物、道、広場などの配置パターンを決めて生成する。
- 主な呼び出し:
placePlaza(),placeWell(),jit(),computeFootprintBase(),levelBuilding(),placeSmallHut(),placePath(),placeHouse(),placeTower()
手順:
- 入力値や現在状態を検査し、処理すべき条件を絞る。
- 処理結果または成功/失敗を呼び出し元へ返す。
- 場所: 行 593-669
- シグネチャ:
static void layoutStreet(Chunk& chunk, const NoiseGen& noise, uint32_t vh, int chunk_wx, int chunk_wz, int vx, int vz, int base_y, const VillageMat& mat) - 内容: 村の建物、道、広場などの配置パターンを決めて生成する。
- 主な呼び出し:
placePlaza(),placeWell(),computeTerrainHeight(),setBlockWorld(),jit(),computeFootprintBase(),levelBuilding(),placeLargeHouse(),placePath(),placeHouse()
手順:
- 入力値や現在状態を検査し、処理すべき条件を絞る。
- 対象範囲やキューをループで走査する。
- 計算結果を内部状態、配列、キュー、または対象オブジェクトへ反映する。
- 処理結果または成功/失敗を呼び出し元へ返す。
- 場所: 行 679-715
- シグネチャ:
static void placeVillage(Chunk& chunk, const NoiseGen& noise, uint32_t seed, int chunk_wx, int chunk_wz) - 内容: 地形生成時に、指定位置へ構造物や地形要素を配置する。
- 主な呼び出し:
floor(),getVillageCenter(),isVillageSuitable(),computeTerrainHeight(),getTemperature(),getHumidity(),biomeWeights(),getVillageMat(),hash3(),layoutClassic()
- 場所: 行 720-870
- シグネチャ:
void TerrainGenerator::generate(Chunk& chunk) const - 内容: チャンク内の地形高さ、地表ブロック、洞窟、水、木、村を決定してブロック配列へ書き込む。
- 主な呼び出し:
generate(),computeTerrainHeight(),computeHeight(),max(),abs(),getTemperature(),getHumidity(),biomeWeights(),getCaveEntrance(),getCave()
手順:
- チャンクのワールド原点を計算する。
- 各X/Z列の地形高さとバイオームをノイズから決める。
- 高さに応じて石、土、草、砂、雪、水などを配置する。
- 洞窟ノイズで地下の一部を空洞化する。
- 条件を満たす位置に木を生成する。
- チャンク周辺の村候補を調べ、範囲に重なる建物や道を配置する。
- 生成済みフラグとdirtyフラグを更新する。
ft_vox 仕様書
- Home
- 概要
- Core
- Player
- World
- Streaming
- Renderer
- srcs/renderer/frustum.cpp
- srcs/renderer/minimap.cpp
- srcs/renderer/renderer.cpp
- srcs/renderer/shader.cpp
- srcs/renderer/skybox.cpp
- srcs/renderer/texture_atlas.cpp
- srcs/renderer/title_screen.cpp
- srcs/renderer/frustum.hpp
- srcs/renderer/minimap.hpp
- srcs/renderer/renderer.hpp
- srcs/renderer/shader.hpp
- srcs/renderer/skybox.hpp
- srcs/renderer/texture_atlas.hpp
- srcs/renderer/title_screen.hpp
- Interfaces
- Shaders
- Build / Docs