「MonoGameでプログラマブルシェーダーを使う」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
(内容を「== プログラマブルシェーダーのコンパイル == 2020年5月に発表されたMonoGame 3.8.0 (preview版)からプログラマブルシェーダー周りが…」で置換)
タグ: 置換
 
(同じ利用者による、間の5版が非表示)
1行目: 1行目:
== MonoGame標準 ==
+
== プログラマブルシェーダーのコンパイル ==
2019年10月時点の[[MonoGame]] 3.7.1では[[Windows]]上でのみ[[プログラマブルシェーダー]]([[fxファイル]])の[[コンパイル]]ができる。
+
2020年5月に発表されたMonoGame 3.8.0 (preview版)からプログラマブルシェーダー周りが大幅に変更された。[[Mac]]や[[Linux]]でもビルドできるようになったぞ。
 
+
* [[MonoGame 3.8.0以降でfxファイルをコンパイルする]]
逆を言えば[[Mac]]上の[[Visual Studio for Mac]]や[[Linux]]上の[[Xamarin Studio]]を使って開発している場合には[[プログラマブルシェーダー]]の[[コンパイル]]ができない。
+
* [[MonoGame 3.7.1以前でfxファイルをコンパイルする]]
 
 
これはMonoGameのコンパイラが複数の環境に対応したコードを生成する過程の問題ある。
 
* まず[[SharpDX]]で[[HLSL]]を[[中間コード]]に[[コンパイル]]する(これがWindows専用)。
 
* その中間コードを[[MojoShader]]に食わせて[[OpenGL]]形式([[GLSL]])に変換する。
 
 
 
このため現状の実装では[[Mac]]や[[Linux]]ではどうにもならない。
 
 
 
== 解決策 ==
 
[[Mac]]や[[Linux]]上の[[Xamarin Studio]]で[[シェーダー]]([[fxファイル]])を使えるようにする素晴らしい[[クラウドサービス]]が登場した。その名も「[[InfinitespaceStudios.Pipeline]]」の「RemoteEffectProcessor」。
 
 
 
* https://www.nuget.org/packages/InfinitespaceStudios.Pipeline/
 
 
 
リモート・エフェクト・プロセッサー!
 
 
 
これは[[fxファイル]]を[[コンパイル]]してくれるオンラインサービスである。[[ネット]]が繋がっていれば利用できる。開発者はInfinitespace Studiosという英国紳士のようだ。こいつは凄い。
 
 
 
ただしちょっと遅い。[[ソースコード]]は[[GitHub]]上に[[オープンソース]]として公開されており、自前で[[サーバー]]を立てることもできる。
 
 
 
* https://github.com/infinitespace-studios/InfinitespaceStudios.Pipeline
 
 
 
[[ソース]]を読むと単にWindows上でfxファイルを投げているだけのようである。さっそく[[VirtualBox]]にWindowsをぶち込んで環境構築してみた。
 
 
 
== 関連項目 ==
 
* [[MonoGameでHLSLにMatrixを渡す]]
 
* [[HLSL]] ([[fxファイル]])
 
* [[シェーダー]]
 
* [[:Category:MonoGame|MonoGameカテゴリ]]
 
 
 
[[category: HLSL]]
 
[[category: MonoGame]]
 
[[category: Xamarin.Studio]]
 

2020年6月10日 (水) 01:35時点における最新版

プログラマブルシェーダーのコンパイル[編集 | ソースを編集]

2020年5月に発表されたMonoGame 3.8.0 (preview版)からプログラマブルシェーダー周りが大幅に変更された。MacLinuxでもビルドできるようになったぞ。