OpenAL wer kennt das?
-
Hallo,
wer kennt OpenAL und wer hat damit schon programmiert?
Wie ist das so?
-
Noch ne Info:
How does OpenAL compare to MS DirectSound3D?
They approach the same problem with two different visions; DirectSound3D was architected back in the day of software mixers and sound cards with a limited amount of on-board memory. OpenAL was architected from the standpoint of hardware acceleration and lots of available sound memory. Both have pros and cons, that's why Creative are supporting both APIs. At the moment, we're able to take better advantage of our hardware by using OpenAL.
Rest gibt's hier:
http://developer.creative.com/articles/article.asp?cat=1&sbcat=31&top=38&aid=95
-
Also ich schreibe selber an einer kleinen Engine rum (halt mit allem drum und dran, die wird eigentlich nie fertig, ist halt son "Lern-Projekt") und für den Sound habe ich vorher mal FMOD benutzt, aber da das ja leider kommerziell ist (naja, für den free Gebrauch gibts das kostenlos, aber falls man mal mit seiner Software Geld verdienen will braucht man natürlich auch ne Lizenz für FMOD) bin ich jetzt auf OpenAL umgestiegen.
Und ich bin eigentlich recht zufrieden. Der Syntax lehnt sich größtenteils an OpenGL an, ist halt state-machine basiert (eine Menge von Funktionen, die die Arbeitsweise der state-machine beeinflussen). Gekapselt in eine OO-Klasse kommt das System bei mir zum Einsatz. Momentan zwar nur für WAV forms, aber ich habe in nächster Zeit vor libvorbis einzubaun, damit ich auch Ogg Vorbis Files abspielen kann. MP3 Support durch eine andere Lib wäre auch noch vorstellbar, aber ich stehe in dieser Hinsicht mehr auf Vorbis.
Und da sieht man auch schon das große Manko von OpenAL. Es bietet sogut wie keine Ladefunkionen für Sounddaten (FMOD tut das und bietet noch eine Menge mehr). OAL ist wirklich nur "Core", also alle basics sind drin, aber für alles weitere muss man dann externes Material verwenden. Natürlich nicht "so" optimal, aber man hat halt dann auch die Freiheit sich seine Audio-Engine selber zusammenzubasteln.
Dann wäre noch zu sagen, dass OAL afaik aktuell in der Version 1.0 zu haben ist (keine Ahnung wie das im CVS aussieht). Heisst jedenfalls dass du vieles fehlt. Es sind viele Funktionen vorhanden um Variablen abzufragen, aber man hat halt keine Vars die man abfragen könnte (in den Docs steht dann immer dass es für zukünftige Versionen zu gebrauchen wäre). Also das ganze steckt noch ein wenig in den Kinderschuhen, was jedoch nicht heisst dass es unstable ist. Laufen tut es wirklich ohne Mucken, da kann man sich nicht beklagen. Ein sauberes Interface, mehr kann man sich wirklich nicht wünschen. Naja, außer dass es halt ausgebaut wird, mit EAX Support, etc. und halt dem ganzen Schickimicki, den man heutzutage so braucht.
Und soweit ich weiss ist der OpenAL Treiber (meistens, ich glaube WENN auf NICHT-creative Karten ausgeführt) eigentlich nur ein Wrapper um die DirectSound3D Funktionalität. Unter Linux sieht das etwas anders aus, allerdings kann ich dazu auch nicht mehr sagen (mal im CVS gucken). Unter Windows ist DS3D jedenfalls momentan die einzige Möglichkeit die Karte anzusprechen. Natürlich wenn der OAL Treiber nicht direkt auf die Hardware aufsetzt.
Ja, dann noch kurz was zu den Ladefunktionen (wie gesagt nur sehr wenige). OAL selber hat gar KEINE. ALUT (openAL Utility Toolkit, vergleichbar mit GLUT) bietet eine rudimentäre WAV Lader Funktion, aber auch mehr nicht.
cya
liquid
-
afaik wird openal im moment nicht weiterentwickelt.
naja, ich benutze fmod und bin sehr zufrienden.
vorallem unterstütz fmod viele format, ohne das du dich darum
kümmern mußt, dass die codecs installiert sind.
-
[quote="Kane"]afaik wird openal im moment nicht weiterentwickelt.
[QUOTE]Dann schau dir mal die Mailingliste an die ist hochaktiv und vollgestopft mit Weiterentwicklungs Diskussionen.
naja, ich benutze fmod und bin sehr zufrienden.
vorallem unterstütz fmod viele format, ohne das du dich darum
kümmern mußt, dass die codecs installiert sind.Für das Laden von speziellen Soundformate gibt es z.b. libsndfile,
damit kann man die Dinger laden und im RAW Format OpenAL überreichen.