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. | |
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()).
| 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.