Der Einfluß von 3D-Sound auf die Performance, Part 2
1. November 2005 / von Madkiller & Avalox / Seite 1 von 2
Einleitung
Länger ist es her, als ein Prozessoren-Riese, welcher bekannt für seine feinsten Arbeiten, im Gedanken versunken grübelte, wie er wohl die Nachfrage nach seinen Werken weiter vergrößern könne. Die Antwort, die er fand, war so einfach wie genial: Die CPU sollte übliche PC-Komponenten ersetzen, so zum Beispiel die beliebten Soundkarten.
So, oder zumindest so ähnlich muss sich die Geburt von Intels AC’97 Standard zugetragen haben. Onboard Soundlösungen auf PC-Mainboards sind inzwischen heutzutage die Regel. Meistens werden, über die Southbridge angebundene Codecs des AC’97- oder des moderneren HDA-Typs verwendet. Die Aufgabe des Codecs ist es dabei, die Anbindung an Audiogeräte aller Art bereit zu stellen. Zu diesem Zweck sind im AC’97/HDA-Codec die DACs, die ADCs und auch die digitalen S/PDif Schnittstellen integriert.
Der AC`97 Standard ist fast zeitgleich mit der x86 SIMD Befehlserweiterung MMX entwickelt worden. Eines der angestrebten Ziele dabei war es, die zwar leistungsfähigen, aber auch teuren digitalen Signalprozessoren der Soundkarten zu ersetzen. Die Funktionalität des Soundprozessings wird dabei allein von der CPU erbracht. Je nach Aufwand des Soundprozessings kann die benötigte Rechenleistung zwischen unmerklich und durchaus mit deutlichen Auswirkungen auf die Systemperformance schwanken.
Letztendlich bestimmen viele Einzelfaktoren über den Aufwand des jeweiligen Soundprozessings. Zwei Aufgabengebiete sind heutzutage primär zu nennen, welche jeweils hohe Anforderungen an das Soundprozessing stellen. Zum einen ist es die Erzeugung von Musik, zum anderen ist es die Klangerzeugung in Computerspielen. Beide Aufgaben stellen unterschiedliche Anforderungen an die zu benutzende Soundlösung. Während der Musikproduzent oftmals gerne bereit ist, zu Gunsten der Flexibilität einen Grossteil der CPU-Leistung dem Soundprozessing bereit zu stellen, ist es bei Computerspielen genau anders herum. Dort kann eigentlich nie genug Rechenleistung für das eigentliche Spiel bereitgestellt werden, deshalb sollte sich eine Soundlösung für diesen Zweck als nicht zu leistungshungrig erweisen.
Der Sound in Computerspielen wird dynamisch während des Spieles aus vorgefertigten Soundsamples erstellt und zum Spielgeschehen passend ausgegeben. Da es schier unmöglich ist, für jedes Geschehen im Spiel ein passendes Soundsample im vornherein und vorbereitet mitzuliefern, haben sich einige Standards zur dynamischen Sounderzeugung in den letzten Jahren durchgesetzt. Diese können in unterschiedlicher Leistungsfähigkeit den Sound im Raum positionieren und dabei sogar die Umgebungseinflüsse des virtuellen Spielumfeldes mit in dem Soundrendering berücksichtigen.
Neben der plattformübergreifenden Audio API OpenAL findet in PC-Spielen vor allen DirectSound3D(DS3D) aus dem Microsoft DirectX-Paket Verwendung. Ziel bei der Entwicklung von DirectSound3D war es, allein Klangquellen im 3D-Raum zu positionieren, um dann den Sound passend zu der Anzahl der verwendeten Lautsprecher des Soundsystems zu rendern.
Mit dem DS3D des DirectX5-Paketes unterstützte Microsoft es dann auch endlich, dass Hersteller von Soundlösungen eigene Routinen für die 3D-Sounderzeugung zu benutzen. Im Allgemeinen wird unterschieden zwischen dem DS3D Software-Modus, in welchen die Microsoft-Standardroutinen zur 3D-Sound-Verteilung genutzt werden und dem Hardware-beschleunigten Modus, in welchem die Hersteller eigene angepasste Routinen für die einzelnen Funktionen verwenden können. Der Begriff "Hardware-unterstützte Sounderzeugung" ist heute etwas irreführend, denn dieser eigentlich für Hardwarelösungen gedachter Ansatz, wird oftmals heute komplett mit einer Herstellereigenen Softwarelösung erbracht. DS3D geht allerdings nach wie vor davon aus, dass diese Lösung auf einer unterstützenden Hardware basiert und meldet dieses auch entsprechend dem nutzenden Programm.
1999 wurde im Rahmen der "Interactive 3D Audio Rendering Guidelines Level 2" eine Erweiterung von DirectSound3D vorgeschlagen, welche letztendlich eine Teilmenge von Creative Labs EAX 2 enthält und von Microsoft seitdem auch offiziell unterstützt wird. Ziel dieser Effekt-Erweiterung war es, neben der räumlichen Positionierung des 3D-Sounds durch zusätzliche, optionale Umgebungseinflüsse den Sound realistischer zu gestallten. So sind nicht nur verschiedene räumliche Effekte möglich, sondern auch optionale positionsabhängige Effekte, welche die Wiedergabe von verdeckten Klangquellen unterstützen. Die Realisierung dieser Effekte obliegt dabei dem Hersteller der Soundlösung, eine Kompatibilität ist an dem I3DL2 Logo zu erkennen.
Neben dieser für Hersteller frei zugänglichen API existieren auch Hersteller-spezifische Erweiterungen. Die gebräuchlichste dürfte EAX der Firma Creative Labs sein, deren API-Erweiterung existiert sowohl für DS3D wie auch für OpenAL. EAX 1 wurde mit der SoundBlaster Live! veröffentlicht und bot die Möglichkeit, acht unabhängige Klangquellen (Stimmen) zu verwenden. Der Raum konnte also verschiedene Klangeigenschaften annehmen. EAX 2 wurde kurze Zeit später veröffentlicht und bot schon 32 Klangquellen, welche zusätzlich hinter Objekten ganz oder teilweise verdeckt gerendert werden konnten.
Verbarg sich hinter EAX bis zur Version 2 ausschließlich ein Soundrendering, welches späte und diffuse Reflexionen mittels eines leistungsfähigen und flexiblen Reverb-Algorithmus berechnete, so fanden sich in der Version EAX 3 auch erste Ansätze, exakte Reflexionen mittels eines Geometrie-Ansatzes zu erreichen. Diese Erweiterung der Funktion zusammen mit weiteren Verbesserungen, welche das Rendering der diffusen Reflexionen betreffen, wird EAX HD genannt. Mit EAX 3 (HD) wurde die gleichzeitige Bearbeitung von bis zu 64 Klangquellen eingeführt.
EAX 4 erweitert vor allen die Möglichkeit, verschiedene Effekte gleichzeitig nutzen zu können. Momentan befindet sich EAX 5 in der Einführung, welches wiederum neue Effektmöglichkeiten bietet und die Verwendung von gleichzeitig nutzbaren Effekten erhöht. Die Polyphonie der Soundlösungen wurde auf 128 Stimmen erweitert. Die Nutzung dieser 128 Stimmen ist allerdings nicht an die EAX Version gebunden und abwärtskompatibel.
EAX 5 ist, zumindest zurzeit, nur als OpenAL-Erweiterung verfügbar. Es ist möglich, ein Soundprozessing zu unterteilen, indem man die Qualität der verwendeten Algorithmen, dessen Genauigkeit in der Bearbeitung, die Anzahl der Stimmen und die gleichzeitig möglichen Effekte beurteilt.
Test des neuen AC’97-Treibers
Obiger kurzer Abriss über die Geschichte von integrierten Soundlösungen und Creatives EAX wird nachfolgend noch wichtig bei der Beurteilung der Ergebnisse des folgenden Tests. Hierbei sind wir der Fährte nachgegangen, daß neuere AC’97-Treiber von Realtek die Performance der von uns im ursprünglichen Test benutzten Realtek ALC658 integrierten Soundlösung erheblich verbessern sollen.
Nachdem diese integrierte Soundlösung sich in unserem ursprünglichen Test als deutlich langsamer als die Hardware-Lösung in Form einer extra Soundkarte von Creative erwiesen hatte, war dieser Nachtest natürlich höchst spannend. Prinzipiell haben wir dabei auf das nachfolgend nochmal genannte identische Testsystem gesetzt, der Unterschied lag allein in den Realtek Treiber-Versionen: 3.59 vs. 3.75.
- AMD Athlon 64 (Winchester-Core, 512 kByte Level2 Cache) 2.0 GHz
- Abit AV8 3rd-Eye (VIA K8T800 Pro Chipsatz mit Realtek ALC658 6-Channel AC'97 Codec onboard)
- 2x 1024 MB RAM DDR1 auf 200 MHz bei 2.5-3-3-7-1T
- PowerColor Radeon X800 XT-PE mit 256 MB auf 520/560 MHz
- Microsoft Windows XP
- Benchmark-Settings: 1024x768 ohne Anti-Aliasing und anisotropen Filter
|
Die Ergebnisse zeigen nun einen verblüffenden Performanceanstieg: Während mit der Treiber-Version 3.59 der Realtek ALC658 Soundcodec noch 11,9 Prozent gegenüber der Creative Audigy 2 zurücklag, sind dies bei der neueren Treiber-Version 3.75 nur noch 5,5 Prozent, der ALC658 hat zwischen diesen Treiber-Versionen immerhin runde 7 Prozent Performance gut gemacht. Fällt nun unsere Aussage des ursprünglichen Artikels zum Thema, das eine extra Soundkarte deutlich schneller als ein integrierter Soundcodec ist?