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)




Bu haberin geldigi yer: oyunyapimi.org
http://www.oyunyapimi.org

Bu haber icin adres:
http://www.oyunyapimi.org/modules.php?name=Sections&op=viewarticle&artid=60