Vật liệu của một phần model: mỗi file glTF/OBJ có một hay nhiều vật liệu, mỗi mesh dùng một. Tiếp...
#include <njin_3d.h>
Các thuộc tính Public | |
| rgba | color {1.0f, 1.0f, 1.0f, 1.0f} |
| Màu gốc, nhân với ảnh albedo. Mặc định là màu trong file. | |
| texture_handle | albedo {} |
| Ảnh màu. | |
| texture_handle | normal {} |
| Normal map (tangent space, xanh lá hướng lên như glTF). | |
| texture_handle | emission {} |
| Ảnh phát sáng, nhân với emission_color. | |
| rgba | emission_color {1.0f, 1.0f, 1.0f, 1.0f} |
| Màu nhân vào ảnh phát sáng (của file hay emission). | |
| shader_handle | shader {} |
| Shader riêng cho phần này, như shader_begin() với hình khối, cả khi model vẽ bằng draw_instanced3d() (shader đọc instanceFloats để biết mình đang vẽ kiểu nào). | |
| material3d | surface {} |
| Độ bóng, phát sáng, unlit, đổ bóng, world_uv. | |
| bool | double_sided = false |
| Vẽ cả hai mặt của mỗi tam giác (không bỏ mặt sau), cho lá cây, giấy, vải mỏng một lớp. | |
Vật liệu của một phần model: mỗi file glTF/OBJ có một hay nhiều vật liệu, mỗi mesh dùng một.
Đọc bằng model_material_get(), sửa rồi đặt lại bằng model_material_set().
Texture để trống (handle không hợp lệ) nghĩa là giữ texture trong file (nếu có). Normal map không cần tangent trong file: shader tự dựng từ đạo hàm màn hình.
| shader_handle njin::model_material::shader {} |
Shader riêng cho phần này, như shader_begin() với hình khối, cả khi model vẽ bằng draw_instanced3d() (shader đọc instanceFloats để biết mình đang vẽ kiểu nào).
Không hợp lệ là shader có sẵn của engine.
| material3d njin::model_material::surface {} |
| bool njin::model_material::double_sided = false |
Vẽ cả hai mặt của mỗi tam giác (không bỏ mặt sau), cho lá cây, giấy, vải mỏng một lớp.
Mặc định theo doubleSided của vật liệu trong file glTF.