メインメニューを開く

差分

MSL (Metal Shading Language)

105 バイト除去, 2022年6月8日 (水) 01:32
編集の要約なし
'''MSL''' (Metal Shading Language''')とは、[[Metal]]で利用する[[プログラマブルシェーダー]]を記述するための[[プログラミング言語]]である。
== 概要 ==
アップルは「[[C++14]]に似ているが完全に別言語である。がベースだ」と主張しているが完全に別言語である。
[[ソースコード]]の拡張子は「.metal」であり、それを[[ビルド]]した[[バイナリ]]の拡張子は「.metallib」となっている。
== 最小限 ==
<sourcelang="c">fragment half4 frag(VertexOut input [[stage_in]], constant Uniforms &uniforms [[buufer(0)]]) {
return half4(1.0);
}
[[引数]]名の後ろには「どこから来た」「なにに使う」かなどを指定するセマンティクスが付く。
[[HLSL]]と似ているな。ただ「中括弧が2個ワンセット」とかと似ているな。ただ「中括弧が2個ワンセット」と[[LISP]]ほどではないがカッコがうぜぇ。
[[定数バッファ]]([[ユニフォーム変数]])は[[引数]]として[[参照渡し]]されている。
[[戻り値]]は[[HLSL]]と同じく「return」だ。
[[GLSL]]の意味不明な「gl_FragColor」だ「gl_FragData」だより遥かにわかりやすいな。の「gl_FragColor」だ「gl_FragData」だといった[[グローバル変数]]に格納する意味不明な方式より遥かにわかりやすいな。
== Xamarinからの利用 詳細 ==「メインバンドル(アプリに含まれるリソース)に含まれるmetallib」はCreateDefaultLibraryメソッドで手軽に読み込める。とくに難しく考える必要性はない。* [[MetalとC++の違い]]<source>var library = _device* [[Xamarin.CreateDefaultLibrary();</source>iOSでMetalを利用する]]
== 関連項目 ==