差分

ナビゲーションに移動 検索に移動

SL Sharp

366 バイト追加, 2020年5月19日 (火) 02:07
編集の要約なし
'''SL#'''(えすえるしゃーぷ)とは、(読み:えすえるしゃーぷ)とは、超高級言語である[[GPUC Sharp|C#]]で実行されるを使い、 [[プログラマブルシェーダーGPU]]を、超高級言語であるで実行される[[C Sharp|C#プログラマブルシェーダー]]で書けてしまうという夢のようなを書けてしまうという夢のような[[オープンソース]]の[[フレームワーク]]である。[[ライセンス]]は[[MITライセンス]]となっている。
== 概要 ==
SL#の一番の核となる機能は、[[.NET Framework]]の世界で使われている[[中間コード]]形式である[[共通中間言語]]([[CIL]])を、[[DirectX]]で使われる[[HLSL]]や[[OpenGL]]で使われる[[GLSL]]などの各種高級[[シェーディング言語]]に変換するエンジンにある。
この変換エンジンはSLこの変換エンジンは、SL#に同梱されるクラスライブラリを使用(継承)して作られた[[シェーダー]]を[[CIL]]の中から自動抽出し、対象となる[[シェーディング言語]]の[[ソースコード]]に変換する。これにより[[HLSL]]([[DirectX]])と[[GLSL]]([[OpenGL]])の非互換の垣根を超えることができ、[[Windows]]上で開発した[[プログラム]]を[[Linux]]や[[Mac OS X]]上の[[Mono]]で動かす際に桁違いに捗ることを意味する。
さらにまた、[[HLSLプログラマー]][[GLSLVisual Studio]]といった[[シェーディング言語Xamarin Studio]]に変換された[[ソースコードMonoDevelop]]は、内部的に各種シェーディング言語の[[コンパイラSharpDevelop]]により暗黙的にといった使い慣れた[[コンパイル統合開発環境]]されたのち、自動的にを使用でき、それらが持つ[[GPUコード補完]]に送り込まれる。このため[[プログラマー]]は[[GPU構文チェック]]を深く意識する必要がない。などの恩恵を受けることができる。
また、一般的な[[プログラマーシェーダー]]は[[Visual Studioアプリケーション]][[MonoDevelopソースコード]]が内包された状態で配布され、[[SharpDevelopプログラム]]といった使い慣れたの実行時に[[統合開発環境GPU]]を使用でき、[[コード補完デバイスドライバー]]に同梱される[[構文チェックコンパイラ]]などの恩恵を受けることができる。さらに[[シェーダーコンパイル]]される。一方、SL#では[[C Sharp|C#]]の[[コンパイラ]]で事前に検証されるため[[実行時エラー]]を最小限に抑えることができ[[デバッグ]]が捗るという利点もある。
== 備考 ==
== 関連ライブラリ ==
SL#は下記のライブラリを使用している。
* [[Mono.Cecil]]- [[CIL]]の[[バイナリ]]をごにょごにょいじくり回せるライブラリ
* [[ICSharpCode.NRefactory]]
* [[ICSharpCode.Decompiler]]
 
実のところ、巷で話題の[[ゲームエンジン]]「[[Unity]]」が[[CIL]]から[[Flash]]を生成するなどの[[マルチプラットフォーム]]対応を実現するために使っているライブラリ群とほぼ同一である。
== 関連項目 ==
* https://github.com/IgniteInteractiveStudio/SLSharp
{{stub}}[[category: 3DCG]][[category: シェーディング言語]]

案内メニュー