「MonoGameでプログラマブルシェーダーを使う」の版間の差分
imported>Administrator 細 (Administrator がページ「MonoGame/シェーダーを使う」を「MonoGameでプログラマブルシェーダーを使う」に移動しました) |
imported>Administrator |
||
1行目: | 1行目: | ||
== MonoGame標準 == | == MonoGame標準 == | ||
− | 2016年10月時点の[[MonoGame]] 3.5(および3.6ベータ版)では[[Windows]]上でのみ[[プログラマブルシェーダー]]([[fxファイル]])の[[コンパイル]]ができる。逆を言えば[[Mac]]や[[Linux]]上で[[Xamarin Studio]]を使って開発している場合には[[プログラマブルシェーダー]]の[[コンパイル]] | + | 2016年10月時点の[[MonoGame]] 3.5(および3.6ベータ版)では[[Windows]]上でのみ[[プログラマブルシェーダー]]([[fxファイル]])の[[コンパイル]]ができる。逆を言えば[[Mac]]や[[Linux]]上で[[Xamarin Studio]]を使って開発している場合には[[プログラマブルシェーダー]]の[[コンパイル]]できない。これはMonoGame付属のプログラマブルシェーダーのコンパイラが複数の環境に対応したコードを生成する過程の問題で、まず[[Direct3D]]向けにコンパイルし、その成果物を[[MojoShader]]に食わせて[[OpenGL]]形式に変換しているためである。このため現状の実装ではOpenGLしか存在しないMacやLinuxではどうにもならない。 |
− | + | なお、xnbファイルにコンパイルさえしてしまえば各環境で動かすことができる。 | |
− | |||
− | |||
== InfinitespaceStudios.Pipeline == | == InfinitespaceStudios.Pipeline == |
2017年11月24日 (金) 04:14時点における版
MonoGame標準
2016年10月時点のMonoGame 3.5(および3.6ベータ版)ではWindows上でのみプログラマブルシェーダー(fxファイル)のコンパイルができる。逆を言えばMacやLinux上でXamarin Studioを使って開発している場合にはプログラマブルシェーダーのコンパイルできない。これはMonoGame付属のプログラマブルシェーダーのコンパイラが複数の環境に対応したコードを生成する過程の問題で、まずDirect3D向けにコンパイルし、その成果物をMojoShaderに食わせてOpenGL形式に変換しているためである。このため現状の実装ではOpenGLしか存在しないMacやLinuxではどうにもならない。
なお、xnbファイルにコンパイルさえしてしまえば各環境で動かすことができる。
InfinitespaceStudios.Pipeline
MacやLinux上のXamarin Studioでシェーダー(fxファイル)を使えるようにする素晴らしいクラウドサービスが登場した。 その名も「InfinitespaceStudios.Pipeline[1][2][3]」の「RemoteEffectProcessor」。
リモート・エフェクト・プロセッサー!
これはなんとfxファイルをコンパイルしてくれるオンラインサービスである。 ネットが繋がっていれば利用できる。 開発者はInfinitespace Studiosという英国紳士のようだ。 こいつは凄い。
しかもコンテンツパイプライン用の拡張プラグインはもとより、サーバー実装もGitHub上にオープンソースとして公開されており[4][5]、自前でサーバーを立てることもできる。こいつは凄い。ソースを読むと単にWindowsマシンにfxファイルを投げているだけのようである。さっそくVirtualBoxにぶち込んでみた。
関連項目
参考文献
- ↑ https://pipeline.infinitespace-studios.co.uk
- ↑ https://github.com/infinitespace-studios/InfinitespaceStudios.Pipeline
- ↑ https://www.nuget.org/packages/InfinitespaceStudios.Pipeline/
- ↑ https://github.com/infinitespace-studios/InfinitespaceStudios.Pipeline
- ↑ https://www.nuget.org/packages/InfinitespaceStudios.Pipeline/