ページ「GLSL」と「DirectX Shader Compiler」の間の差分

提供: MonoBook
(ページ間の差分)
ナビゲーションに移動 検索に移動
 
 
1行目: 1行目:
'''GLSL'''(語源:OpenGL Shading  Language)とは、主に[[OpenGL]]で使われる[[シェーディング言語]]である。
+
'''DirectX Shader Compiler'''(通称:dxc)とは、[[マイクロソフト]]が中心となり[[オープンソース]]のもとで開発が行われている[[LLVM]]/[[Clang]]の技術をベースとした[[HLSL]]の[[コンパイラー]]である。
  
==互換性==
+
==概要==
GLSLには複数のバージョンが存在し、それらはそもそもの構文からして違うため[[互換性]]がない。一般的な[[プログラマー]]はコンパイルエラーで悩まされることになる。
+
DirectX12から登場した新しいHLSL向けのコンパイラである。
 +
[[Windows]]だけでなく[[MacOS]][[Linux]]でも動くという特徴がある。
  
このようなグダグダな状況は[[Steam]]で有名な[[Valve]]の中の人により「今週のGLSLバージョン地獄( GLSL version of the week hell)」と命名された。
+
* https://github.com/microsoft/DirectXShaderCompiler
*https://cpplover.blogspot.com/2014/05/opengl.html
 
*http://richg42.blogspot.com/2014/05/things-that-drive-me-nuts-about-opengl.html
 
  
==備考==
+
dxcを使うと[[HLSL]][[ソースコード]])をDXIL([[中間コード]])に[[コンパイル]]できる。
当初、VulkanでもGLSLを採用していたが、あまりにGLSLがクソすぎるためか[[Google]]は[[Vulkan]]で[[HLSL]]を使えるようにした。[[Vulkan]]は実質的に[[Android]]でしか使われていないので[[Google]]の方針がすべてになるであろう。
+
従来のfxc.exeで作られるDXBC(中間コード)とは別物である。
 +
移行期間なのかDirectX12ではdxcとfxcの両方が搭載されている。
  
*[[DirectX Shader CompilerでSPIR-Vを出力する]]
+
途中から[[Google]]も開発に参加してきて[[Vulkan]]で動かすための[[SPIR-V]](中間コード)も吐けるようになった。こいつ[[Android]]でも使えるぞ!
  
前述の[[互換性]]問題などを考慮すると、人間が手で書くものではなく、以下のような使い方の方が現実的である。
+
* [[DirectX Shader CompilerでSPIR-Vを出力する]]
  
*[[HLSL]]で書いて
+
==関連項目==
*[[SPIR-V]][[コンパイル]]して
+
* [[MacでDirectX Shader Compilerをビルドする]]
*[[GLSL]][[逆コンパイル]]する
+
* [[DirectX Shader CompilerでSPIR-Vを出力する]]
 +
* [[SPIR-VからGLSLを生成する]]
 +
* [[SPIR-VからHLSLを生成する]]
 +
* [[MacにMoltenVKを入れてVulkanを使ってみる]]
  
[[逆コンパイラ]]は[[Vulkan]]の中の人が開発してくれている。
+
==類似ツール==
 
+
* [[HLSLcc]]
*[[SPIR-VからGLSLを生成する]]
+
* [[MojoShader]]
 
 
*[[SPIR-VからHLSLを生成する]]
 
 
 
==関連項目==
 
  
*[[GLSLのversionディレクティブ一覧]]
+
[[category: HLSL]]
 +
[[category: SPIR-V]]

2020年1月23日 (木) 05:19時点における版

DirectX Shader Compiler(通称:dxc)とは、マイクロソフトが中心となりオープンソースのもとで開発が行われているLLVM/Clangの技術をベースとしたHLSLコンパイラーである。

概要

DirectX12から登場した新しいHLSL向けのコンパイラである。 WindowsだけでなくMacOSLinuxでも動くという特徴がある。

dxcを使うとHLSLソースコード)をDXIL(中間コード)にコンパイルできる。 従来のfxc.exeで作られるDXBC(中間コード)とは別物である。 移行期間なのかDirectX12ではdxcとfxcの両方が搭載されている。

途中からGoogleも開発に参加してきてVulkanで動かすためのSPIR-V(中間コード)も吐けるようになった。こいつAndroidでも使えるぞ!

関連項目

類似ツール