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 [1] 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 [2] 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 [3], 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 [4] 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 [5] seines Direct3D-zu-OpenGL-Übersetzers ToGL [6] 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 [7] vor der Tür – erste Details [8] dazu soll es bereits im März geben. (mfi [9])
URL dieses Artikels:
https://www.heise.de/-2140502
Links in diesem Artikel:
[1] http://www.steampowered.com
[2] https://www.heise.de/news/Angriff-auf-Windows-Valve-enthuellt-optimiertes-Spiele-Linux-SteamOS-1965163.html
[3] https://www.heise.de/news/DirectX-11-2-in-Windows-8-1-Hochdetaillierte-Spielwelten-durch-Megatexturen-1897910.html
[4] http://store.steampowered.com/browse/linux/?l=german
[5] https://github.com/ValveSoftware/ToGL/blob/master/README.md
[6] https://github.com/ValveSoftware/ToGL/blob/master/README.md
[7] https://www.heise.de/news/Microsoft-nimmt-mit-DirectX-12-Mobilgeraete-ins-Visier-2136466.html
[8] https://www.heise.de/news/Microsoft-nimmt-mit-DirectX-12-Mobilgeraete-ins-Visier-2136466.html
[9] mailto:mfi@heise.de
Copyright © 2014 Heise Medien