Valve veröffentlicht Quellcode für Direct3D-zu-OpenGL-Übersetzer
Gibt es bald eine Schwemme von Spielen für Linux? Valve veröffentlicht den Direct3D-zu-OpenGL-Konverter ToGL, der Entwicklern bei der Portierung eigener Titel helfen könnte.
Valve hat fraglos große Ambitionen. Ursprünglich nur als Entwickler der erfolgreichen Spieleserien Counter-Strike und Half-Life bekannt, hat das Unternehmen aus Bellevue nahe Seattle mit Steam den erfolgreichsten Online-Spielevertrieb auf die Beine gestellt. Nun will Valve das Windows-Spielemonopol sprengen und es Entwicklern schmackhaft machen, ihre Spiele auch auf Linux zu veröffentlichen. Dazu bietet Valve das Spiele-Linux SteamOS mit integriertem Steam-Client und GPU-Treibern an – derzeit allerdings noch als Beta.
(Bild: Valve)
Es gibt nur ein Problem: Nahezu alle wichtigen Titel nutzen Microsofts 3D-Schnittstelle Direct3D, die ausschließlich unter Windows läuft. Aufwendig produzierte Top-Spiele unter Linux, etwa Metro Last Light, lassen sich derzeit immer noch an einer Hand abzählen; der Großteil der im Steam-Store erhältlichen Linux-Spiele sind Indie-Games. Valve hat seit geraumer Zeit damit angefangen, seine eigenen, von der Source-Engine getriebenen Spiele für Linux von Direct3D auf OpenGL zu portieren.
Nun hat das Unternehmen erstmals den Quellcode seines Direct3D-zu-OpenGL-Übersetzers ToGL freigegeben. Der Translation Layer ist mittlerweile ein Teil von Valves Source-Engine. Die freigegebene Version unterstützt allerdings nur einen Teilbereich der Direct3D-Schnittstelle und stammt direkt aus dem Quellcode des Spiels DOTA 2. Einfach übertragbar für andere Spiele ist er folglich nicht, könnte aber Entwicklern als Hilfe für eigene Portierungen dienen.
(Bild: Valve)
ToGL übersetzt auch auf Bytecode-Ebene die DirectX-Shader-Programmiersprache HLSL (High Level Shading Language) zum OpenGL-Pendant GLSL (OpenGL Shading Language), spricht aber nur einen Teilbereich des Shader Model 3.0. Die von vielen aktuellen Spielen häufig genutzten Multiple Render-Targets sind dabei, Vertex Texture Fetching (VTF) wiederum nicht. VTF erlaubt Vertex-Shadern, Daten aus Texturen auszulesen, was etwa für 3D-Effekte wie Displacement Mapping und zur Wassersimulation nützlich ist.
ToGL könnte also zumindest für die Portierung von Spielen hilfreich sein, die im Kern noch auf Direct3D 9 setzen – und dadurch mehr ältere Titel in die Linux-Steambibliothek schwemmen. Denn aktuelle Spiele setzen mittlerweile meist auf Direct3D 11 – das läuft sogar schon unter Windows Vista. Derweil steht sogar schon DirectX 12 vor der Tür – erste Details dazu soll es bereits im März geben. (mfi)