ページ「リダンダント」と「SL Sharp」の間の差分

提供: MonoBook
(ページ間の差分)
ナビゲーションに移動 検索に移動
imported>GamerBook
 
(ページの作成:「'''SL#'''(えすえるしゃーぷ)とは、GPUで実行されるプログラマブルシェーダーを、超高級言語であるC#で書け...」)
 
1行目: 1行目:
'''リダンダント'''(redundant)とは、「[[冗長]]な」という意味の英単語である。
+
'''SL#'''(えすえるしゃーぷ)とは、[[GPU]]で実行される[[プログラマブルシェーダー]]を、超高級言語である[[C Sharp|C#]]で書けてしまうという夢のような[[オープンソース]]の[[フレームワーク]]である。[[ライセンス]]は[[MITライセンス]]となっている。
  
''冗長に関する詳細は「[[冗長]]」の項目を参照。''
+
== 概要 ==
 +
SL#の一番の核となる機能は、[[.NET Framework]]の世界で使われている[[中間コード]]形式である[[共通中間言語]]([[CIL]])を、[[DirectX]]で使われる[[HLSL]]や[[OpenGL]]で使われる[[GLSL]]などの各種高級[[シェーディング言語]]に変換するエンジンにある。
  
日本語の会話中にリダンダントという単語が単独で出現することは非常に少なく、主に[[冗長化]]した物の冠として付けることが多い。たとえば[[冗長化]]された[[電源]]のことを[[リダンダント電源]]などと呼んだりする。
+
この変換エンジンはSL#に同梱されるクラスライブラリを使用(継承)して作られた[[シェーダー]][[CIL]]の中から自動抽出し、対象となる[[シェーディング言語]]に変換する。これにより[[HLSL]]([[DirectX]])と[[GLSL]]([[OpenGL]])の非互換の垣根を超えることができる。
 +
 
 +
さらに[[HLSL]]や[[GLSL]]といった[[シェーディング言語]]に変換された[[ソースコード]]は、内部的に各種シェーディング言語の[[コンパイラ]]により暗黙的に[[コンパイル]]されたのち、自動的に[[GPU]]に送り込まれる。このため[[プログラマー]]は[[GPU]]を深く意識する必要がない。
 +
 
 +
また、[[プログラマー]]は[[Visual Studio]]や[[MonoDevelop]]、[[SharpDevelop]]といった使い慣れた[[統合開発環境]]を使用でき、[[コード補完]]や[[構文チェック]]などの恩恵を受けることができる。さらに[[シェーダー]]は[[C Sharp|C#]]の[[コンパイラ]]で事前に検証されるため[[実行時エラー]]を最小限に抑えることができ[[デバッグ]]が捗るという利点もある。
 +
 
 +
== 備考 ==
 +
SL#はまだ実験的な[[ライブラリ]]であり、将来的に[[構文]]が変わる可能性などもあるので注意する必要がある。
 +
 
 +
SL#に関する[[不具合]]などについては可能な限り[[GitHub]]上の同プロジェクト宛てに報告してほしいとしている。
 +
 
 +
現段階では[[ジオメトリシェーダー]]はサポートされておらず、また[[C Sharp|C#]]以外の[[プログラミング言語]]([[F#|F Sharp]]や[[Boo言語]]、[[Phalanger]]など)については完成度が高まってからのサポートとなる予定であるとしている。
 +
 
 +
== 関連ライブラリ ==
 +
SL#は下記のライブラリを使用している。
 +
* [[Mono.Cecil]]
 +
* [[ICSharpCode.NRefactory]]
 +
* [[ICSharpCode.Decompiler]]
  
 
== 関連項目 ==
 
== 関連項目 ==
* [[冗長]]
+
* [[シェーディング言語]]
 +
* [[GPU]]
 +
* [[GPGPU]]
  
== 参考文献 ==
+
== 外部リンク ==
{{reflist}}
+
* https://github.com/IgniteInteractiveStudio/SLSharp
  
 
{{stub}}
 
{{stub}}

2013年3月27日 (水) 02:04時点における版

SL#(えすえるしゃーぷ)とは、GPUで実行されるプログラマブルシェーダーを、超高級言語であるC#で書けてしまうという夢のようなオープンソースフレームワークである。ライセンスMITライセンスとなっている。

概要

SL#の一番の核となる機能は、.NET Frameworkの世界で使われている中間コード形式である共通中間言語(CIL)を、DirectXで使われるHLSLOpenGLで使われるGLSLなどの各種高級シェーディング言語に変換するエンジンにある。

この変換エンジンはSL#に同梱されるクラスライブラリを使用(継承)して作られたシェーダーCILの中から自動抽出し、対象となるシェーディング言語に変換する。これによりHLSL(DirectX)とGLSL(OpenGL)の非互換の垣根を超えることができる。

さらにHLSLGLSLといったシェーディング言語に変換されたソースコードは、内部的に各種シェーディング言語のコンパイラにより暗黙的にコンパイルされたのち、自動的にGPUに送り込まれる。このためプログラマーGPUを深く意識する必要がない。

また、プログラマーVisual StudioMonoDevelopSharpDevelopといった使い慣れた統合開発環境を使用でき、コード補完構文チェックなどの恩恵を受けることができる。さらにシェーダーC#コンパイラで事前に検証されるため実行時エラーを最小限に抑えることができデバッグが捗るという利点もある。

備考

SL#はまだ実験的なライブラリであり、将来的に構文が変わる可能性などもあるので注意する必要がある。

SL#に関する不具合などについては可能な限りGitHub上の同プロジェクト宛てに報告してほしいとしている。

現段階ではジオメトリシェーダーはサポートされておらず、またC#以外のプログラミング言語F SharpBoo言語Phalangerなど)については完成度が高まってからのサポートとなる予定であるとしている。

関連ライブラリ

SL#は下記のライブラリを使用している。

関連項目

外部リンク