「SL Sharp」を編集中

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

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

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

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)