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::grass3d_desc Struct Tham chiếu

Cách mọc của một thảm cỏ trên địa hình (grass3d_create()). Tiếp...

#include <njin_world3d.h>

Các thuộc tính Public

terrain3d_handle terrain {}
 Địa hình cỏ mọc trên.
f32 density = 6.0f
 Số ngọn mỗi mét vuông nơi mọc dày nhất.
f32 height = 0.45f
 Chiều cao ngọn, mét.
f32 height_jitter = 0.4f
 Ngọn cao thấp khác nhau tới tỉ lệ này của height.
f32 width = 0.05f
 Bề rộng gốc ngọn, mét.
rgba base_color {0.12f, 0.30f, 0.07f, 1.0f}
 Màu ở gốc.
rgba tip_color {0.52f, 0.70f, 0.28f, 1.0f}
 Màu ở ngọn.
f32 color_jitter = 0.15f
 Mỗi ngọn sáng tối khác nhau tới tỉ lệ này.
i32 layer = 0
 Lớp địa hình cỏ mọc trên: số ngọn nhân với trọng số của lớp đó (terrain3d_layer_weight()).
f32 max_slope = 35.0f
 Không mọc chỗ dốc hơn, độ.
noise_desc patches {.seed = 3, .frequency = 0.06f, .octaves = 2}
 Nhiễu chia cỏ thành đám (tính theo mét), dùng khi patchiness > 0.
f32 patchiness = 0.4f
 0 là mọc đều; 1 là thành đám rõ, giữa các đám trống.
f32 draw_distance = 60.0f
 Xa hơn khoảng này không có cỏ, mét.
f32 fade = 20.0f
 Cỏ thấp dần trong khoảng này trước draw_distance, mét.
f32 sway = 1.0f
 Đung đưa theo gió nhiều hay ít. 0 là đứng yên.
u32 seed = 1
 Hạt giống: cùng hạt giống thì cỏ mọc y như nhau.
bool cast_shadows = false
 Ngọn cỏ đổ bóng (tốn: mọi ngọn vẽ thêm vào ảnh bóng). Luôn nhận bóng.

Mô tả chi tiết

Cách mọc của một thảm cỏ trên địa hình (grass3d_create()).

Mỗi ngọn cỏ là vài tam giác, vẽ hàng chục nghìn ngọn bằng instancing. Cỏ chỉ được tạo cho vùng quanh camera (trong draw_distance), thưa dần và thấp dần về xa rồi biến mất, nên địa hình rộng mấy cũng chỉ tốn cho phần gần. Cỏ đung đưa theo gió (wind3d_set(), hoặc gió của njin::weather3d khi vẽ trời bằng draw_sky3d()).

Thông tin về Member Data

◆ layer

i32 njin::grass3d_desc::layer = 0

Lớp địa hình cỏ mọc trên: số ngọn nhân với trọng số của lớp đó (terrain3d_layer_weight()).

-1 là mọc mọi nơi.