「MonoGameでプログラマブルシェーダーを使う」の版間の差分
Administrator (トーク | 投稿記録) 編集の要約なし |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| 1行目: | 1行目: | ||
== MonoGame 3.8.0から == | |||
2020年5月時点の[[MonoGame]] 3.8.0 (プレビュー版)から | |||
[[Windows]]だけでなく、[[MacOS]]や[[Linux]]でも[[プログラマブルシェーダー]]の[[コンパイル]]ができるようになった。[[Mac]]や[[Linux]]では内部的に[[wine]]を用いているので若干の環境構築が必要となる。 | |||
=== Macでの環境構築 === | |||
[[xquartz]]を[[インストール]]する。 | |||
* https://www.xquartz.org/index.html | |||
[[wine]]を[[インストール]]する。 | |||
この際に「64 bit support」のチェックを必ずいれること。 | |||
内部的にはwine64コマンドしか使わないので[[macOS 10.15 Catalina]]でも大丈夫。 | |||
* https://dl.winehq.org/wine-builds/macosx/download.html | |||
[[7z]]を[[インストール]]する。 | |||
brew install p7zip | |||
mgfxcコンパイラをインストールするスクリプトを実行する。 | |||
<source lang="bash"> | |||
curl -O https://raw.githubusercontent.com/MonoGame/MonoGame/develop/Tools/MonoGame.Effect.Compiler/mgfxc_wine_setup.sh | |||
chmod +x mgfxc_wine_setup.sh | |||
./mgfxc_wine_setup.sh | |||
</source> | |||
mgfxcコンパイラなどは「$HOME/.winemonogame」ディレクトリに格納される。 | |||
環境変数を追加する。 | |||
<source lang="bash"> | |||
#bashの場合 | |||
echo 'export MGFXC_WINE_PATH="$HOME/.winemonogame"' >> ~/.profile | |||
</source> | |||
<source lang="bash"> | |||
#zshの場合 | |||
echo 'export MGFXC_WINE_PATH="$HOME/.winemonogame"' >> ~/.zprofile | |||
</source> | |||
== MonoGame 3.7.1まで == | |||
2020年4月時点の[[MonoGame]] 3.7.1では[[プログラマブルシェーダー]]([[fxファイル]])の[[コンパイル]]は「[[Windows]]上でのみ」できる。 | 2020年4月時点の[[MonoGame]] 3.7.1では[[プログラマブルシェーダー]]([[fxファイル]])の[[コンパイル]]は「[[Windows]]上でのみ」できる。 | ||
| 9行目: | 47行目: | ||
このため現状の実装では[[Mac]]や[[Linux]]ではどうにもならない。 | このため現状の実装では[[Mac]]や[[Linux]]ではどうにもならない。 | ||
=== 解決策 === | |||
== 解決策 == | |||
[[Mac]]や[[Linux]]上の[[Xamarin Studio]]で[[シェーダー]]([[fxファイル]])を使えるようにする素晴らしい[[クラウドサービス]]が登場した。その名も「[[InfinitespaceStudios.Pipeline]]」の「RemoteEffectProcessor」。 | [[Mac]]や[[Linux]]上の[[Xamarin Studio]]で[[シェーダー]]([[fxファイル]])を使えるようにする素晴らしい[[クラウドサービス]]が登場した。その名も「[[InfinitespaceStudios.Pipeline]]」の「RemoteEffectProcessor」。 | ||
* https://www.nuget.org/packages/InfinitespaceStudios.Pipeline/ | * https://www.nuget.org/packages/InfinitespaceStudios.Pipeline/ | ||
| 72行目: | 109行目: | ||
* [[HLSL]] ([[fxファイル]]) | * [[HLSL]] ([[fxファイル]]) | ||
* [[シェーダー]] | * [[シェーダー]] | ||
[[category: MonoGame]] | |||
[[category: HLSL]] | [[category: HLSL]] | ||