「MSL (Metal Shading Language)」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| (同じ利用者による、間の5版が非表示) | |||
| 1行目: | 1行目: | ||
'''Metal Shading Language | '''MSL''' (Metal Shading Language)とは、[[Metal]]で利用する[[プログラマブルシェーダー]]を記述するための[[プログラミング言語]]である。 | ||
== 概要 == | == 概要 == | ||
[[C++]] | アップルは「[[C++14]]がベースだ」と主張しているが完全に別言語である。 | ||
[[ソースコード]]の拡張子は「.metal」であり、それを[[ビルド]]した[[バイナリ]]の拡張子は「.metallib」となっている。 | [[ソースコード]]の拡張子は「.metal」であり、それを[[ビルド]]した[[バイナリ]]の拡張子は「.metallib」となっている。 | ||
| 9行目: | 9行目: | ||
== 最小限 == | == 最小限 == | ||
<source> | <source lang="c"> | ||
fragment half4 frag(VertexOut input [[stage_in]], constant Uniforms &uniforms [[buufer(0)]]) { | fragment half4 frag(VertexOut input [[stage_in]], constant Uniforms &uniforms [[buufer(0)]]) | ||
{ | |||
return half4(1.0); | return half4(1.0); | ||
} | } | ||
| 18行目: | 19行目: | ||
[[引数]]名の後ろには「どこから来た」「なにに使う」かなどを指定するセマンティクスが付く。 | [[引数]]名の後ろには「どこから来た」「なにに使う」かなどを指定するセマンティクスが付く。 | ||
[[HLSL]] | [[HLSL]]と似ているな。ただ「中括弧が2個ワンセット」と[[LISP]]ほどではないがカッコがうぜぇ。 | ||
[[定数バッファ]]([[ユニフォーム変数]])は[[引数]]として[[参照渡し]]されている。 | [[定数バッファ]]([[ユニフォーム変数]])は[[引数]]として[[参照渡し]]されている。 | ||
| 24行目: | 25行目: | ||
[[戻り値]]は[[HLSL]]と同じく「return」だ。 | [[戻り値]]は[[HLSL]]と同じく「return」だ。 | ||
[[GLSL]] | [[GLSL]]の「gl_FragColor」だ「gl_FragData」だといった[[グローバル変数]]に格納する意味不明な方式より遥かにわかりやすいな。 | ||
== | == 詳細 == | ||
* [[MetalとC++の違い]] | |||
* [[Xamarin.iOSでMetalを利用する]] | |||
== 関連項目 == | == 関連項目 == | ||