Thema: Direct X
Einzelnen Beitrag anzeigen
  #16  
Alt 11-03-2003, 00:51
LeoDD LeoDD ist offline
Havocs Schuhputzer

 
Registriert seit: Mar 2001
Ort: Dresden
Beiträge: 466
LeoDD hat noch keine Bewertung oder ist auf 0
Dies hier ist ein Text den ich mal für unsere Kunden geschrieben habe:

Zitat:
Ausführliche Erklärung zu Treibern und DirectX.

Wir haben die Soundkarte und wir haben ein Programm,
was mit der Soundkarte arbeiten möchte.

Ganz früher (zu DOS-Zeiten) war es so, dass das Programm der Soundkarte gesagt hat "spiel dies und jenes".
Heute ist das nicht mehr so. Es gibt eine Unzahl an Modellen von Soundkarten und jedes Programm müsste jedes Soundkartenmodell kennen um es ganz speziell anzusprechen. (Man sieht es am besten so, als wenn jede Soundkarte einen eigenen Namen hat und auf keinen anderen als den Eigenen hört).

Mit Windows wurde das erstmals einfacher. Windows kennt alle Soundkarten, wenn nur ein funktionierender
Soundkartentreiber installiert wurde. Es klemmt sich praktisch zwischen Programm und Soundkarte. Das Programm sagt jetzt nicht mehr der Soundkarte, dass sie etwas spielen soll, sondern es sagt Windows, dass es der Soundkarte das sagen soll.

Wenn sich alle an diese Methode halten, klappt das hervorragend. Wenn es um einfache Sachen wie das Spielen von Melodien geht kommt man damit klar.

Kompliziert wird es, wenn es um das Manipulieren von Sounds geht. Also wenn man z.B. über eine Melodie Filter legen will um den Klang zu verfremden. Da man den Klang nicht als Datei vorliegen hat, sondern "live" erzeugen muss, muss das programmtechnisch gemacht werden. Soundmanipulation des heutigen Standards ist sehr aufwendig. Es kommen z.B. Surroundeffekte, dynamische Lautstärkenänderung usw. hinzu. Nun möchte man natürlich als Anwender nicht nur den Sound hören sondern vorrangig mit dem Programm arbeiten oder auch mal spielen.

Wenn das Programm allerdings diese Manipulationen selbst berechnen muss, bleibt für den Rest nicht mehr viel übrig. Die Grafik würde ruckeln, das Programm wäre
langsam.

Es wurde ein Standard Namens DirectSound geschaffen. DirectSound ist ein Bestandteil von DirectX. Das ist wie eine Art Bibliothek. Ein Buch beschreibt, wie man Sounds mit Filtern belegt. Das zweite Buch beschreibt, wie man Lautstärken dynamisch ändert usw.

Das eigentliche Anwendungsprogramm brauchte sich nicht mehr um diese Dinge zu kümmern sondern sagte dem DirectSound einfach "so und so will ich den Sound
haben". Die eigentlichen Berechnungen machte DirectSound. Wenn dessen Berechnungen fertig waren, wurde der Klang an die Soundkarte weitergereicht und
wurde so hörbar.

Hier fängt es an problematisch zu werden. Die Verbindung "Programm - DirectSound- Soundkarte" klappt nur, wenn sich alle drei Komponenten verstehen.

Hier kommen auch die Versionsnummern ins Spiel. Nehmen wir mal an, Sie haben DirectX8 installiert mit der Versionsnummer 4.08. Die Soundkarte hat aber
nur die Version 4.05.

Das Programm möchte nun einen Sound ausgeben. Es sagt zu DirectSound "spiel mir diesen Klang mit diesen Parametern". DirectSound berechnet den Klang und gibt
ihn mit Anweisungen der 8. Generation (!!) an die Soundkarte der 5. Generation weiter. Das Ergebnis: die Soundkarte versteht die Anfrage nicht, weil sie zu
"unterentwickelt" ist. Daher wird sie keinen Ton ausspucken. Allerdings wartet das Programm auf eine Erfolgsmeldung der Soundkarte, das der Klang abgespielt wurde, damit es weitermachen kann und wartet und wartet, nix passiert mehr. So in etwa läuft dann die Kommunikation intern ab.

Um die Soundkarte Generation-8 tauglich zu machen, benötigst man also Generation-8 Treiber. Anders herum, kann man auch das DirectX auf die 5. Generation herunterschrauben. Wie auch immer, die beiden Komponenten müssen sich unbedingt verstehen.

Es ist natürlich nicht so, dass der Rechner IMMER abstürzt, nur weil ein Programm einen Klang abspielt. Deshalb läuft vielleicht ein Spiel auch auf einem
inkorrekten DirectX System. Wir greifen allerdings mehr auf die Soundfunktionen zurück als Spiele das tun (wir stellen ja auch Musiksoftware her). Von daher brauchen
wir mehr Kompatibilität als manch andere Programme.
Vielleicht sehr ihr das jetzt etwas anders
__________________
Gruß
Leo
Mit Zitat antworten