Microsoft Edge の WebGL GLSL トランスパイラーがオープンソースになりました
Microsoft Edge Dev Blog の記事を要約。
いつもの参照元
MicrosoftEdge WebGL GitHub のリポジトリ
GLSL::HLSL transpiler とは?
Web ページで使用している WebGL の 3D コンテンツのレンダリングは GPU を使用しており、
現在のリアルタイム 3DCG は物体の質感や画面の描画を GPU で動作するプログラム(シェーダー)を書いて動かします。
WebGL や OpenGL では GLSL というシェーディング言語していますが、Windows では DirectX 3D の HLSL を使用するためそのままでは動作しません。
そのため、Edge は実行時に GLSL を HLSL にトランスパイル(変換)しています。
(IE 11 も WebGL が使用できるため同じような処理をしています)
サンプル
赤のピクセルを描画する超簡単なプログラム
GLSL:
void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); // r g b a }
HLSL:
float4 main() : SV_Target { return float4(1.0f, 0.0f, 0.0f, 1); // r g b a }
また Chrome と Firefox でも同様なプロジェクトがあるようです。
ANGLE (software) - Wikipedia, the free encyclopedia
トランスパイラーは GLSL を解釈し、正確性およびセキュリティ上の制約をチェックし、HLSL を生成する変換処理をし出力、実行します。
今後の予定
追加のスクリプト、マニュアルの公開する予定とのこと。
以下、いろいろ記載されていますが、睡魔に勝てそうにないので今回は省略。