メインメニューを開く

差分

MonoGameでプログラマブルシェーダーを使う

1,755 バイト除去, 2020年6月10日 (水) 01:35
内容を「== プログラマブルシェーダーのコンパイル == 2020年5月に発表されたMonoGame 3.8.0 (preview版)からプログラマブルシェーダー周りが…」で置換
== MonoGame標準 プログラマブルシェーダーのコンパイル ==2019年10月時点の[[MonoGame]] 2020年5月に発表されたMonoGame 3.78.1では[[Windows]]上でのみ[[プログラマブルシェーダー]]([[fxファイル]])の[[コンパイル]]ができる。 逆を言えば0 (preview版)からプログラマブルシェーダー周りが大幅に変更された。[[Mac]]上の[[Visual Studio for Mac]]や[[Linux]]上の[[Xamarin Studio]]を使って開発している場合には[[プログラマブルシェーダー]]の[[コンパイル]]ができない。 これはMonoGameのコンパイラが複数の環境に対応したコードを生成する過程の問題ある。でもビルドできるようになったぞ。* まず[[SharpDX]]で[[HLSL]]を[[中間コード]]に[[コンパイル]]する(これがWindows専用)。* その中間コードを[[MojoShader]]に食わせて[[OpenGL]]形式([[GLSL]])に変換する。 このため現状の実装では[[Mac]]や[[Linux]]ではどうにもならない。 == 解決策 ==[[Mac]]や[[Linux]]上の[[Xamarin Studio]]で[[シェーダー]]([[fxファイル]])を使えるようにする素晴らしい[[クラウドサービス]]が登場した。その名も「[[InfinitespaceStudiosMonoGame 3.Pipeline]]」の「RemoteEffectProcessor」。 * https://www8.nuget.org/packages/InfinitespaceStudios.Pipeline/ リモート・エフェクト・プロセッサー! これは[[fxファイル]0以降で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: Xamarin3.7.Studio1以前でfxファイルをコンパイルする]]