njin
Engine 2D gọn nhẹ để tự tay làm game theo ý mình. Vibe coding cũng ổn luôn
Loading...
Searching...
No Matches
njin::scatter3d_desc Struct Tham chiếu

Cách rải một loại vật (đá, cây, bụi) lên địa hình (scatter3d_create()). Tiếp...

#include <njin_world3d.h>

Các thuộc tính Public

terrain3d_handle terrain {}
 Địa hình.
model_handle model {}
 Model vẽ ở gần.
model_handle far_model {}
 Model đơn giản hơn cho chỗ xa. Không hợp lệ là dùng model.
f32 density = 0.02f
 Số vật mỗi mét vuông nơi dày nhất.
f32 spacing = 2.0f
 Hai vật cách nhau ít nhất bấy nhiêu mét.
f32 min_height = -1.0e9f
 Chỉ đặt chỗ cao từ mức này, mét.
f32 max_height = 1.0e9f
 Chỉ đặt chỗ thấp hơn mức này, mét.
f32 min_slope = 0.0f
 Độ dốc nhỏ nhất, độ.
f32 max_slope = 30.0f
 Độ dốc lớn nhất, độ.
i32 layer = -1
 Chỉ đặt trên lớp này (trọng số từ layer_min); -1 là mọi lớp.
f32 layer_min = 0.5f
 Trọng số tối thiểu của layer.
noise_desc patches {.seed = 5, .frequency = 0.02f, .octaves = 2}
 Nhiễu chia thành cụm, khi patchiness > 0.
f32 patchiness = 0.0f
 0 là rải đều; 1 là thành cụm (rừng, bãi đá).
f32 scale_min = 0.8f
 Tỉ lệ nhỏ nhất.
f32 scale_max = 1.2f
 Tỉ lệ lớn nhất.
f32 align = 0.0f
 0 là đứng thẳng (cây); 1 là nghiêng theo mặt đất (đá).
f32 sink = 0.0f
 Lún xuống đất bấy nhiêu mét (chân đá không lơ lửng trên dốc).
rgba color {1.0f, 1.0f, 1.0f, 1.0f}
 Màu nhân vào model.
f32 color_jitter = 0.1f
 Mỗi vật sáng tối khác nhau tới tỉ lệ này.
f32 lod_distance = 80.0f
 Xa hơn thì dùng far_model, mét.
f32 draw_distance = 300.0f
 Xa hơn thì không vẽ, mét.
u32 seed = 1
 Hạt giống.

Mô tả chi tiết

Cách rải một loại vật (đá, cây, bụi) lên địa hình (scatter3d_create()).

Chỗ đặt được chọn một lần khi tạo, theo hạt giống: đủ xa nhau (spacing), trong khoảng độ cao, độ dốc và lớp cho phép. Vật được vẽ bằng instancing theo từng vùng, bỏ vùng ngoài tầm nhìn, dùng far_model cho vùng xa hơn lod_distance và không vẽ gì xa hơn draw_distance.