Gambaran Umum X3DAudio
X3DAudio adalah API yang digunakan dengan XAudio2 untuk memposisikan suara di ruang 3D untuk menciptakan ilusi suara yang berasal dari titik di ruang relatif terhadap posisi kamera. Secara khusus, judul yang menampilkan adegan 3D akan ingin menggunakan X3DAudio. Suara tidak memerlukan pemosisian 3D, seperti soundtrack atau suara sekitar yang tidak diposisikan, dapat melewati X3DAudio sepenuhnya.
Pendengar dan Pemancar
Untuk mengelola suara di ruang 3D, X3DAudio menggunakan konsep pendengar dan emitor. Pendengar dan emitor mewakili posisi apa pun yang mendengar suara 3D, dan titik dari mana suara tersebut berasal.
- Pendengar didefinisikan sebagai titik dalam ruang dan orientasi. Ini adalah posisi di mana suara terdengar. Posisi dan orientasi pendengar umumnya sama dengan posisi dan orientasi kamera. Ini benar apakah judul menggunakan tampilan perspektif orang pertama atau orang ketiga. Posisi pendengar dinyatakan dalam koordinat dunia. Penting untuk dicatat bahwa itu adalah posisi pendengar relatif terhadap emiter yang menentukan cara menghitung volume pembicara akhir.
- Emitor didefinisikan sebagai satu (atau lebih) titik di ruang asal suara. Posisi emitor dapat berada di mana saja dalam ruang 3D. Seperti pendengar, posisi emiter dinyatakan dalam koordinat dunia. Ini adalah posisi emiter relatif terhadap pendengar yang menentukan bagaimana volume pembicara akhir dihitung.
- X3DAudio menggunakan koordinat sebelah kiri. Untuk menggunakan dengan koordinat dengan tangan kanan, pengembang perlu meniadakan elemen .z dari anggota OrientTop, OrientFront, Posisi, dan Kecepatan X3DAUDIO_LISTENER dan X3DAUDIO_EMITTER.
Selain posisi, pendengar dan emiter dapat mencakup kecepatan. Tidak seperti mesin penyajian 3D, X3DAudio hanya menggunakan kecepatan untuk menghitung efek Doppler (tidak digunakan untuk menghitung posisi).
Untuk detail selengkapnya tentang pendengar dan pemancar, lihat topik referensi struktur X3DAUDIO_LISTENER dan X3DAUDIO_EMITTER .
Menggunakan X3DAudio dengan XAudio2
Untuk semua interaksi antara X3DAudio dan XAudio2, gunakan fungsi X3DAudio berikut.
-
Panggil fungsi X3DAudioInitialize untuk menginisialisasi X3DAudio. Biasanya, Anda hanya perlu memanggil X3DAudioInitialize sekali dalam masa pakai permainan, kecuali konfigurasi pembicara diubah.
-
Setelah menginisialisasi X3DAudio, Anda dapat menentukan volume dan nilai lain untuk suara tertentu dengan meneruskan emiter suara dan pendengar ke fungsi X3DAudioCalculate . Nilai yang dihitung oleh X3DAudioCalculate kemudian dapat diterapkan ke suara atau efek XAudio2 yang sesuai untuk bendera yang diteruskan ke fungsi. Anda dapat menerapkan nilai volume dan pitch yang dihitung oleh X3DAudio ke suara dengan metode IXAudio2Voice::SetOutputMatrix dan IXAudio2SourceVoice::SetFrequencyRatio . Nilai lain yang dihitung oleh X3DAudio perlu diterapkan ke efek gaung menggunakan metode IXAudio2Voice::SetEffectParameters .
Untuk contoh langkah demi langkah menggunakan X3DAudio dengan XAudio2, lihat Cara: Mengintegrasikan X3DAudio dengan XAudio
Topik terkait