Cách nghe một tiếng 3D. Tiếp...
#include <njin_audio.h>
Các thuộc tính Public | |
| f32 | volume = 1.0f |
| Nhân vào âm lượng của sound (và kênh của nó). Âm thì là 0. | |
| f32 | pitch = 1.0f |
| Cao độ trước Doppler. 1 là như bản ghi. | |
| f32 | min_distance = 1.0f |
| Gần hơn thì nghe đủ to. | |
| f32 | max_distance = 40.0f |
| Xa hơn thì im (và không tốn gì để trộn). | |
| audio_rolloff | rolloff = rolloff_inverse |
| Cách giảm theo khoảng cách. | |
| f32 | rolloff_factor = 1.0f |
| Độ dốc của rolloff_inverse và rolloff_exponential. | |
| f32 | spread = 1.0f |
| Độ lệch trái phải, 0..1. | |
| f32 | doppler = 1.0f |
| Độ mạnh của Doppler: tiếng cao lên khi nguồn và tai lại gần nhau, trầm xuống khi xa nhau. | |
| vec3 | cone_direction {0.0f, 0.0f, 0.0f} |
| Hướng phát của một loa có hướng (còi xe, loa phóng thanh), trong thế giới. | |
| f32 | cone_inner = 360.0f |
| Góc toàn phần (độ) của vùng nghe đủ to, quanh cone_direction. | |
| f32 | cone_outer = 360.0f |
| Góc toàn phần (độ) mà ngoài nó chỉ còn cone_outer_volume. | |
| f32 | cone_outer_volume = 0.0f |
| Hệ số âm lượng ngoài cone_outer, 0..1. | |
| bool | occlusion = false |
| Bị che: mỗi frame bắn một tia vật lý (physics3d_raycast()) từ tai tới nguồn; chạm một body ở trước nguồn thì tiếng nhỏ lại còn occlusion_volume, chuyển mượt trong khoảng 0,15 giây. | |
| f32 | occlusion_volume = 0.35f |
| Hệ số âm lượng khi bị che, 0..1. | |
| f32 | occlusion_margin = 0.5f |
| Chỗ chạm cách nguồn trong khoảng này thì không tính là che: body của chính vật phát tiếng (thân xe đang nổ máy) không che tiếng của nó. | |
Cách nghe một tiếng 3D.
Mọi trường sửa được lúc tiếng đang phát bằng voice3d_set_desc().
| f32 njin::sound3d_desc::rolloff_factor = 1.0f |
Độ dốc của rolloff_inverse và rolloff_exponential.
1 là như ngoài đời, 2 là tắt nhanh hơn, 0.5 là vang xa hơn.
| f32 njin::sound3d_desc::spread = 1.0f |
Độ lệch trái phải, 0..1.
1 là tiếng bên phải nghe hẳn ở loa phải; 0 là luôn ở giữa (chỉ đổi âm lượng). Gần tai hơn min_distance thì tự về giữa dần, để tiếng ngay trên đầu không nhảy từ loa này sang loa kia.
| f32 njin::sound3d_desc::doppler = 1.0f |
Độ mạnh của Doppler: tiếng cao lên khi nguồn và tai lại gần nhau, trầm xuống khi xa nhau.
0 là tắt, 1 là như ngoài đời.
| vec3 njin::sound3d_desc::cone_direction {0.0f, 0.0f, 0.0f} |
Hướng phát của một loa có hướng (còi xe, loa phóng thanh), trong thế giới.
{0, 0, 0} (mặc định) là phát đều mọi hướng và các trường cone_* bị bỏ qua.
| bool njin::sound3d_desc::occlusion = false |
Bị che: mỗi frame bắn một tia vật lý (physics3d_raycast()) từ tai tới nguồn; chạm một body ở trước nguồn thì tiếng nhỏ lại còn occlusion_volume, chuyển mượt trong khoảng 0,15 giây.
Chỉ đổi âm lượng, không làm tiếng đục đi. Không có thế giới vật lý thì không bao giờ bị che.
| f32 njin::sound3d_desc::occlusion_margin = 0.5f |
Chỗ chạm cách nguồn trong khoảng này thì không tính là che: body của chính vật phát tiếng (thân xe đang nổ máy) không che tiếng của nó.
Tăng cho vật lớn.