OpenAL 'a Giriş
OpenAL Hakkında
OpenAL platformdan bağımsız 3B ses API
dır. OpenAL'ın ilk maksadı Oyunlar ve Oyun geliştiricileridir,
programcıya; dinleyicinin etraftaki ses kaynaklarıyla etkileşim halinde
bulunabileceği, 3Boyutlu bir ortam oluşturmak, 3Boyutlu ortamda
kullanılacak kaynakları işlemek ve yönetmektir. OpenAL Eklentilerinde
ses kaynakları için efekt kullanabilme imkanı vardır. Creative Labs.
Şirketinin geliştirdiği OpenAL'ın kapasitesi, EAX ve AC3 gibi ses
standartları ile artırılmıştır.
OpenAL'ın arkasında Creative gibi dev bir firma bulunmaktadır, bu da
skor tablosunda bir puan kazanmasını sağlar, diğer önemli bir özelliği
ise yapılış amacı, yani platformdan bağımsızlığıdır |
|
|
OpenAL'a Giriş
Derslerimizde ve denemelerde OpenAL'ı kullanabilmeniz için [ http://www.openal.org ]
sitesinden işletim sisteminize uygun SDK ve denemeler için uygun kurlum
dosyasını seçmeniz gereklidir.
Size Direk ulaşabileceğiniz adresi veriyorum: OpenAL Download Page
Ayrıca OpenAL hakkında bilgilere, dokümanlara ve yeni teknolojilere
sitesinden ulaşabilirsiniz...
OpenAL Sistem Dosyalarının Kurulumu
Bu işlem indirdiğiniz kurulum dosyası ile çok kolay gerçekleşmektedir.
Örn: OpenALwEAX_WinInstaller.exe çalıştırdığınızda gelen pencerede Ok
düğmesini tıklamanız kurulum için yeterlidir. Karşınıza gelen "Kurulum
Başarıyla tamamlandı..." türünden bir mesaj ile gerekli dosyalar
otomatik olarak oluşturulacaktır.
OpenAL SDK Kurulumu
OpenAL SDK kurulum dosyasını bilgisayarınıza indirdikten sonra kuruluma
geçtiğinizde; kurlum dosyası standart olarak işletim sisteminiz
bulunduğu sabit disk bölümüne göre; X:Program FilesOpenAL
1.0 Software Development Kit dizinine kurulacaktır. Sizinde
kurulum aşamasında bu dizini tercih etmenizi tavsiye ederim...
Kurulum işlemi tamamlandığında, kurduğunuz dizine ulaşıp, bazı isim
değişikleri ve kopyalama işlemleri yapmanız gerekecek.
1. AL isimli klasörü, kullandığınız Geliştirme Programının Include
klasörünün içine kopyalayın... Bu örnek olarak: X:Program
FilesMicrosoft Visual StudioVC98Include olabilir
2. SDK da Libs klasörünün içindeki *.lib
uzantılı dosyaları, aynı şekilde Geliştirme Programının içinde bulunan Lib
dosyasının içine kopyalayın... Bu örnek olara: X:Program
FilesMicrosoft Visual StudioVC98Lib olabilir.
İşlemler bu kadar! artık Derslerde ve denemelerde problem yaşamamız
için bir neden kalmadı.
OpenAL?
OpenAL başlık altı tane başlık ve iki tane kütüphane dosyasına
sahiptir. Bunlar sırası ile Al.h, alc.h,
alctypes.h, altypes.h, alu.h,
Alut.h ve OpenAL32.lib, Alut.lib
dir
Başlık ve Kütüphaneler Hakkında:
al.h: Bu dosyada fonksiyonların prototip
bildirimleri vardır.
alc.h: Burada alc...
başlangıcı yani alcCreateContext satırı ile başlayan
fonksiyonların prototip bildirimleri vardır. Donanım ile ilgili
bilgileri alabileceğimiz ve donanım ile bağlantı kurabileceğimiz
fonksiyonları barındırır.
alctypes.h: Bu dosyada alcCreateContext için;
Alfloat, Aluint, Alenum gibi türetilmiş nesne türleri ve
ALC_INVALID_DEVIC gibi #define ile yapılmış sembolik sabitler mevcut.
altypes.h: Burada OpenAL için genel olan
Alfloat, Aluint, Alenum gibi türetilmiş nesne türleri ve
AL_ROLLOFF_FACTOR gibi #define ile yapılmış sembolik sabitler mevcut.
alu.h: Bu dosyada Vektör ve Matris işlemlerin
yapımında kullanılabilecek fonksiyon prototip bildirimleri vardır.
alut.h: Burada programcının işini
kolaylaştırmayı amaçlanmış fonksiyon prototip bildirimleri vardır. Örn:
alutLoadWAVFile()...
OpenAL32.lib: Tüm salt OpenAL fonksiyonlarını
barındıran kütüphane dosyası.
ALut.lib: OpenAL'ı fonksiyonel yapan
fonksiyonların bulunduğu kütüphane dosyası.
OpenAL ile EAX ve AC3
Şu an piyasada bulunan profesiyonel bir çok oyunda EAX teknolojisi
sonuna kadar kullanılmaktadır. OpenAL'ı Creative Ses Donanım devi
geliştiride EAX ve AC3 olmaz olurmu?
OpenAL eklentilerinde bu sistemleri kullanabilmemizi sağlayan
fonskiyonlar mevcuttur. Bunları OpenAL'ın rahatlığı ile kullanmak çok
kolaydır.
OpenAL Çalışma Mantığı
OpenAL'ın, OpenGL ile benzeyen çalışma mantığını OpenGL bilenler çok
çabuk şekilde OpenAL'ı kavrayacaklardır. OpenGL bilmeyenler ise
OpenGL'nin kullanım ve öğrenim kolaylığını OpenAL'da da bulacaklar. Bu
açıdan pek bir sorun yaşamayacaksınız.
OpenGL, ses dosyasını hız açısından belleğe (Buffer) direk ve hiçbir
işlem yapmadan yükler... Asıl olay yüklenen dosyanın alınan bilgiler
eşliğinde işlenerek başka bir yere yönlendirilmesinde, ve daha sonra
ilk aşamada yüklenen ses verisi silinir. Bununla birlikte Elimizde bir
adet yönlendirme sonrasında bellekte bulunan ses verisi ve bunu
kullanacak 3Boyutlu koordinat sisteminde konumları bulanan kaynaklar
(Sources) vardır... Eğer bunu kavradıysanız OpenAL sizin için artık
Bebek oyuncağıdır.
Hafızada bulunan Ses verisini Ağ sistemindeki Ana Bilgisayara
benzetebiliriz. Kaynakları da İstemcilere. Tabi ki doğal olarak
İstemciler, Ana Bilgisayardaki tüm nimetleri sonuna kadar
kullanabileceklerdir. Aynı şekilde birden fazla kaynağın (Sources)
olduğu gibi birden fazla bellekte (Buffers) ses verisi olabilir...
Böylece farklı sesler, gerçekçi oyunları yakalama imkanına sahibiz.
OpenAL ile gerektiği kadar ses verisini (Buffer) belleğe aldıktan sonra
bu ses verilerini kullanacak ses kaynaklarının 3Boyuttaki konumlarını
belirtiriz ve bir adette Dinleyici (Listener) yerleştirdikten sonra 3B
ses ağı içinde gezinmeye başlayabiliriz...
Kullanım açısından OpenAL çok rahat bir platformdur...
OpenAL Ders 1.: OpenAL'a Giriş: [VC++
örnek proje indir
- 403kb]
Bu Derste OpenAL giriş yapıcaz, Basitliğin korunması açısından
uygulamayı konsolda geliştirip çalıştıracaz
Diger OpenAL Dersleri:
OpenAL Ders 1.: OpenAL'a Giriş
OpenAL Ders 2.: Ses Verisi Bilgileri
OpenAL Ders 3.: Ses Şiddeti ve Çalma Hızı
OpenAL Ders 4.: 3B Ortamda Ses
OpenAL Ders 5.: Fazla Ses Verisi, Fazla Ses kaynağı
OpenAL Ders 6.: Tek Ses Verisi, Falza Ses Kaynağı
2004 - MD.C (md.c@mynet.com) |
|
|