Valve имеет код с открытым исходным кодом для своего уровня абстракции Direct3D-OpenGL, который может помочь другим разработчикам игр, участвующим в переводе графики, а также предоставил альфа-код для своего отладчика захвата/воспроизведения Open GL.
Слой перевода ToGL был взят непосредственно из исходного дерева DOTA2, популярной многопользовательской игры.
Согласно его странице на GitHub, он поддерживает:
Ограниченное подмножество Direct3D 9.0 c
HLSL- > переводчик GLSL на уровне байт-кода
Некоторая поддержка SM3: Несколько целей рендеринга, без выборки текстур вершин
В своем блоге разработчик Valve Рич Гелдрич извиняется за то, что это просто «сырая свалка» .:
Я действительно хотел бы, чтобы у нас было время лучше упаковать его (чтобы вы могли его скомпилировать!) С некоторыми примерами и т. Д. Есть тонна практических ноу-хау драйверов Linux GL, упакованных по всему этому коду-если вы посмотрите внимательно.
Код далек от совершенства: многие части там больше похожи на поле битвы. Он оптимизирован для достижения результатов, и основными показателями успеха были perf vs. Корректность Windows и Source1, иногда в ущерб другим факторам.
Описывая историю ToGL, Гелдрих объясняет, что слой был запущен командой Valve, затем перенесен с Mac на Linux командой steam и, наконец, перенесен на Windows для целей отладки, поскольку лучшие доступные отладчики GL были только для Windows.
Он говорит, что Valve работает над устранением отсутствия отладчика GL с открытым исходным кодом с помощью vogl, и в его следующем сообщении в блоге сообщается, что источник отладчика GL находится на GithHub .
Этот проект, описанный как «удивительно масштабное начинание для ~3 разработчиков», находится на ранней стадии разработки, и предупреждение на его странице гласит::
Сейчас этот проект-альфа^2. Если вы готовы страдать от небольшой боли с ранними выпусками, пожалуйста, продолжайте — мы будем рады вашей помощи…
Разработчики игр и графики должны найти это полезным, поэтому, надеюсь, число участников проекта может вырасти в геометрической прогрессии.