.Net で GLSL

( 2014/09/15 )

■ .Net で GLSL

『.NET で OpenGL』 を参考に GLSL も使えるプログラムを作ってみました。


■ 環境

作った時の環境。GLEW を導入してない方は こちら


■ ダウンロード


■ 作り方

大体こんな感じで作ります。


■ フォームアプリケーションを作る


 

■ OpenGL クラスを作ってフォームで使う


■ GLSL シェーダクラスを作って OpenGL クラスで使う

 
実行して三角形が赤く表示されればOK。
basic.frag を書き変えてカラーを変化させればシェーダが適用されているのが分かります。

 


■ おわり

Windows で動く GLSL のサンプルは glut でウィンドウ出してるものが多く、
.Net でコントロール使いたくても簡単なサンプルが見つからなかったので作りました。

C++ で .Net 使いたかったけど上手くいかなくて、結局 glut とか C# + OpenTK で
…ってなってた人の参考になればいいなあと。

これでフォームに、デザイナからメニューやコントロールを自由に置けます。
コントロールに描画したければ、そのコントロールのウィンドウハンドルを渡せばOKです。

イベントは、そのコントロールの Paint, SizeChanged などを追加すればOKなのですが、
背景の自動消去を止めようと思うと、子クラス作って OnPaintBackground をオーバーライド
しないといけないし、Express だとカスタムコントロールはデザイナで読めません。orz
多少チラついても気にしないなら、放っておくのが楽かもですが…。
どなたか良い案がありましたらお知らせ下さい。

OpenGL, GLSL の部分は最低限ですが、他に情報がたくさんありますのでそちらへ。


戻る