Browser

Microsoft Edge(Project Spartan, Internet Explorer) 、ブラウザ周辺、Web フロントエンド開発、UI、など

Microsoft Edge まとめページ

Microsoft Edge の WebGL GLSL トランスパイラーがオープンソースになりました

Microsoft Edge Dev Blog の記事を要約。

いつもの参照元

blogs.windows.com

 

MicrosoftEdge WebGL GitHub のリポジトリ

github.com

 

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 を生成する変換処理をし出力、実行します。

 

今後の予定

追加のスクリプト、マニュアルの公開する予定とのこと。

 

以下、いろいろ記載されていますが、睡魔に勝てそうにないので今回は省略。

スポンサーリンク