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

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.

Mô tả chi tiết

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.

Thông tin về Member Data

◆ shader

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.

◆ surface

material3d njin::model_material::surface {}

Độ bóng, phát sáng, unlit, đổ bóng, world_uv.

surface.texture và surface.normal không dùng ở đây (đã có albedo, normal).

◆ double_sided

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.