SSAO, phản chiếu trên màn hình, decal, mờ chuyển động, tia nắng, lóa ống kính. Tiếp...
Classes | |
| struct | njin::post3d |
| Hiệu ứng màn hình của cảnh 3D, tính từ độ sâu của lần vẽ 3D: che khuất môi trường (SSAO), phản chiếu (SSR), mờ chuyển động, tia nắng và lóa ống kính. Tiếp... | |
| struct | njin::decal3d_desc |
| Một decal: ảnh chiếu lên mọi hình đục nằm trong một hình hộp (tường, sàn, model, địa hình), theo đúng hình của bề mặt. Tiếp... | |
Enumerations | |
| enum | njin::decal3d_blend { njin::decal3d_multiply , njin::decal3d_paint } |
| Cách một decal phủ lên bề mặt. Tiếp... | |
Các hàm | |
| void | njin::post3d_set (context &ctx, const post3d &fx) |
| Đặt hiệu ứng màn hình 3D, cho mọi lần vẽ 3D từ frame này. | |
| post3d | njin::post3d_get (const context &ctx) |
| Các hiệu ứng đang đặt. | |
| void | njin::draw3d_motion_id (const context &ctx, u64 id) |
| Đặt tên cho lần vẽ 3D kế tiếp, để TAA và mờ chuyển động biết nó ở đâu frame trước. | |
| vec3 | njin::decal3d_rotation (vec3 normal) |
| Góc xoay cho decal3d_desc::rotation để trục chiếu của decal trùng với pháp tuyến của bề mặt: decal nằm phẳng trên bề mặt đó. | |
| decal3d_handle | njin::decal3d_add (context &ctx, const decal3d_desc &desc) |
| Thêm một decal. | |
| void | njin::decal3d_remove (context &ctx, decal3d_handle handle) |
| Xóa một decal. | |
| void | njin::decal3d_clear (context &ctx) |
| Xóa mọi decal. | |
| i32 | njin::decal3d_count (const context &ctx) |
| Số decal đang có. | |
| void | njin::decal3d_set_max (context &ctx, i32 max) |
| Số decal tối đa, mặc định 256. | |
SSAO, phản chiếu trên màn hình, decal, mờ chuyển động, tia nắng, lóa ống kính.
| enum njin::decal3d_blend |
Cách một decal phủ lên bề mặt.
| void njin::post3d_set | ( | context & | ctx, |
| const post3d & | fx ) |
Đặt hiệu ứng màn hình 3D, cho mọi lần vẽ 3D từ frame này.
post3d{} là tắt hết.
| ctx | Context của engine. |
| fx | Các hiệu ứng. |
| post3d njin::post3d_get | ( | const context & | ctx | ) |
Các hiệu ứng đang đặt.
| ctx | Context của engine. |
| void njin::draw3d_motion_id | ( | const context & | ctx, |
| u64 | id ) |
Đặt tên cho lần vẽ 3D kế tiếp, để TAA và mờ chuyển động biết nó ở đâu frame trước.
Thường không cần gọi. Vận tốc của mỗi mesh và model được tính từ chỗ của chính lần vẽ đó ở frame trước: entity có njin::model3d được nhận ra theo entity; các lần vẽ khác theo model (hay hình: hộp, cầu...) và thứ tự trong pass, nên một cảnh vẽ theo cùng thứ tự mỗi frame tự khớp. Gọi hàm này khi thứ tự đổi giữa các frame (danh sách quái bị xóa bớt, sắp lại theo khoảng cách): mỗi vật một số riêng, không đổi theo frame, ví dụ số hiệu của nó. Chỉ áp cho lần vẽ ngay sau trong pass đang mở. Một vật nhảy xa hơn một phần tư màn hình trong một frame (dịch chuyển tức thời) được coi như không có vận tốc riêng.
| ctx | Context của engine. |
| id | Số khác 0, riêng cho mỗi vật. |
Góc xoay cho decal3d_desc::rotation để trục chiếu của decal trùng với pháp tuyến của bề mặt: decal nằm phẳng trên bề mặt đó.
Dùng với pháp tuyến của một tia chạm (ray3d_hit::normal, physics3d_raycast()) để đặt vết đạn đúng chỗ trúng.
| normal | Pháp tuyến (không cần độ dài 1). |
| decal3d_handle njin::decal3d_add | ( | context & | ctx, |
| const decal3d_desc & | desc ) |
Thêm một decal.
Decal có ở mọi lần vẽ 3D vào thế giới cho đến khi hết lifetime, bị xóa, hay bị decal mới thay chỗ (xem decal3d_set_max()).
| ctx | Context của engine. |
| desc | Decal. |
| void njin::decal3d_remove | ( | context & | ctx, |
| decal3d_handle | handle ) |
Xóa một decal.
Handle không hợp lệ hay decal đã hết bị bỏ qua.
| ctx | Context của engine. |
| handle | Decal. |
| void njin::decal3d_clear | ( | context & | ctx | ) |
Xóa mọi decal.
| ctx | Context của engine. |
| i32 njin::decal3d_count | ( | const context & | ctx | ) |
Số decal đang có.
| ctx | Context của engine. |
| void njin::decal3d_set_max | ( | context & | ctx, |
| i32 | max ) |
Số decal tối đa, mặc định 256.
Thêm quá số này thì decal cũ nhất bị thay; giảm xuống dưới số đang có thì các decal cũ nhất bị xóa.
| ctx | Context của engine. |
| max | Số tối đa, 1..4096. |