「SL Sharp」の版間の差分
(→概要) |
(→備考) |
||
15行目: | 15行目: | ||
SL#に関する[[不具合]]などについては可能な限り[[GitHub]]上の同プロジェクト宛てに報告してほしいとしている。 | SL#に関する[[不具合]]などについては可能な限り[[GitHub]]上の同プロジェクト宛てに報告してほしいとしている。 | ||
− | 現段階では[[ジオメトリシェーダー]]はサポートされておらず、また[[C Sharp|C#]]以外の[[プログラミング言語]]([[F | + | 現段階では[[ジオメトリシェーダー]]はサポートされておらず、また[[C Sharp|C#]]以外の[[プログラミング言語]]([[F Sharp|F#]]や[[Boo言語]]、[[Phalanger]]など)については完成度が高まってからのサポートとなる予定であるとしている。 |
== 関連ライブラリ == | == 関連ライブラリ == |
2013年3月27日 (水) 06:41時点における版
SL#(えすえるしゃーぷ)とは、GPUで実行されるプログラマブルシェーダーを、超高級言語であるC#で書けてしまうという夢のようなオープンソースのフレームワークである。ライセンスはMITライセンスとなっている。
概要
SL#の一番の核となる機能は、.NET Frameworkの世界で使われている中間コード形式である共通中間言語(CIL)を、DirectXで使われるHLSLやOpenGLで使われるGLSLなどの各種高級シェーディング言語に変換するエンジンにある。
この変換エンジンはSL#に同梱されるクラスライブラリを使用(継承)して作られたシェーダーをCILの中から自動抽出し、対象となるシェーディング言語に変換する。これによりHLSL(DirectX)とGLSL(OpenGL)の非互換の垣根を超えることができ、Windows上で開発したプログラムをLinuxやMac OS X上のMonoで動かす際に桁違いに捗ることを意味する。
さらにHLSLやGLSLといったシェーディング言語に変換されたソースコードは、内部的に各種シェーディング言語のコンパイラにより暗黙的にコンパイルされたのち、自動的にGPUに送り込まれる。このためプログラマーはGPUを深く意識する必要がない。
また、プログラマーはVisual StudioやMonoDevelop、SharpDevelopといった使い慣れた統合開発環境を使用でき、コード補完や構文チェックなどの恩恵を受けることができる。さらにシェーダーはC#のコンパイラで事前に検証されるため実行時エラーを最小限に抑えることができデバッグが捗るという利点もある。
備考
SL#はまだ実験的なライブラリであり、将来的に構文が変わる可能性などもあるので注意する必要がある。
SL#に関する不具合などについては可能な限りGitHub上の同プロジェクト宛てに報告してほしいとしている。
現段階ではジオメトリシェーダーはサポートされておらず、またC#以外のプログラミング言語(F#やBoo言語、Phalangerなど)については完成度が高まってからのサポートとなる予定であるとしている。
関連ライブラリ
SL#は下記のライブラリを使用している。