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.
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.
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)