Skip to content

Commit e218621

Browse files
committed
Add simple terrain implementation
1 parent 337967a commit e218621

36 files changed

+3299
-1002
lines changed

Cargo.lock

Lines changed: 241 additions & 57 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
name = "dotrix"
33
version = "0.6.0"
44
authors = [
5-
"Elias Kartašov <elias@lowenware.com>",
6-
"Štěpán Wünsch <sw@lowenware.com>",
7-
"Nikita Zemtsov <z-nik@ya.ru>",
5+
"Elias Kartašov <elias@lowenware.com>",
6+
"Štěpán Wünsch <sw@lowenware.com>",
7+
"Nikita Zemtsov <z-nik@ya.ru>",
88
]
99
edition = "2021"
1010
description = "3D Engine"
@@ -18,27 +18,45 @@ path = "src/lib.rs"
1818
name = "demo"
1919
path = "demo/main.rs"
2020

21+
[[bin]]
22+
name = "dotrix-terrain"
23+
path = "utils/terrain/main.rs"
24+
required-features = ["terrain"]
25+
2126
[features]
22-
default = []
27+
default = ["terrain"]
28+
terrain = [
29+
"dep:noise",
30+
"dep:rand",
31+
"dep:num",
32+
"dep:structopt",
33+
"dep:toml",
34+
"dep:serde",
35+
]
2336

2437
[dependencies]
25-
rand = "0.8"
2638
bytemuck = { version = "1.4", features = ["derive"] }
2739
image = "0.25"
2840
uuid = { version = "1.1", features = ["v4"] }
2941
log = "0.4.20"
3042
once_cell = "1.18.0"
31-
futures = {version = "0.3", default-features = false, features = ["std", "executor"]}
32-
raw-window-handle = {version = "0.6.1"}
33-
winit = {version = "0.30.5", features = ["serde", "rwh_06"]}
43+
futures = { version = "0.3", default-features = false, features = [
44+
"std",
45+
"executor",
46+
] }
47+
raw-window-handle = { version = "0.6.1" }
48+
winit = { version = "0.30.5", features = ["serde", "rwh_06"] }
3449
bitflags = "2.4.1"
3550
ash = "0.38.0"
3651
ash-window = "0.13.0"
3752
gltf = "1.4.1"
3853
base64 = "0.22.0"
3954
glam = { version = "0.27.0", features = ["bytemuck"] }
40-
genmesh = "0.6.2"
41-
42-
[dev-dependencies]
43-
#noise = { version = "0.8" }
44-
#bytemuck = { version = "1.4", features = ["derive"] }
55+
genmesh = "0.6.2" # TODO: make optional
56+
# optional
57+
noise = { version = "0.9.0", optional = true }
58+
num = { version = "0.4", optional = true }
59+
rand = { version = "0.8.4", features = ["small_rng"], optional = true }
60+
structopt = { version = "0.3", optional = true }
61+
toml = { version = "0.8", optional = true }
62+
serde = { version = "1.0", optional = true }

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ glslc -fshader-stage=vertex src/models/shaders/only_mesh.vert -o src/models/shad
3737
glslc -fshader-stage=fragment src/models/shaders/only_mesh.frag -o src/models/shaders/only_mesh.frag.spv
3838
glslc -fshader-stage=vertex src/models/shaders/skin_mesh.vert -o src/models/shaders/skin_mesh.vert.spv
3939
glslc -fshader-stage=fragment src/models/shaders/skin_mesh.frag -o src/models/shaders/skin_mesh.frag.spv
40+
glslc -fshader-stage=vertex src/features/terrain/shaders/terrain.vert -o src/features/terrain/shaders/terrain.vert.spv
41+
glslc -fshader-stage=fragment src/features/terrain/shaders/terrain.frag -o src/features/terrain/shaders/terrain.frag.spv
4042
```
4143

4244
## Sponsors

configs/terrain.toml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name = "terrain"
2+
size = 1024
3+
4+
[noise]
5+
octaves = 4
6+
persistence = 0.5 # 0..1
7+
lacunarity = 2.0 # > 1
8+
scale = 250.0
9+
offset = [0.0, 0.0]
10+
seed = 0
11+
12+
[falloff]
13+
power = 2.6
14+
factor = 2.4

features/vulkan/Cargo.toml

Lines changed: 0 additions & 8 deletions
This file was deleted.

features/vulkan/src/lib.rs

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/features.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#[cfg(feature = "terrain")]
2+
pub mod terrain;

0 commit comments

Comments
 (0)