Skip to content

まずはウインドウを表示

aokomoriuta edited this page Apr 19, 2012 · 2 revisions

トップページ: http://aokomoriuta.github.com/SimpleWindow/


何をするにしてもまずはウインドウを作りましょう。
レポジトリ
https://github.com/aokomoriuta/StudiesOfOpenTK/tree/master/SimpleWindow

Table of Contents

仕組み

OpenTKのGLControlを使いますが、問題は、GLControlがForm向けでWPFではそのままでは使えません。

色々解決する方法はあるんですが、もう手っ取り早くWindowsFormsHostを使っちゃいましょう。 今のところそんなにオーバーヘッドとか気になる様子はありません。

方法

  1. WPFアプリケーションを作る
  2. ウインドウにGLControlを追加する
  3. 初期化処理
  4. 描画
という手順を踏みます。順に説明します。

WPFアプリケーションを作る

普通に作るのはできるものとして割愛します!

GLControlの追加

MainWindow.xaml13-15行目です。

System.Windows.Forms.Integration.WindowsFormsHostを作って、その中にOpenTK.GLControlを追加します。

初期化処理

MainWindow.csの18-35行目で、ウインドウが読みこまれた時に、OpenGL関係の初期化処理をします。

やることは、

  1. 背景のクリア(22行目
  2. 投影法の設定(24-31行目
  3. ビューの設定(33行目
です。

大雑把に言えば、投影法は、3次元空間をどうやって2次元に表示するか、ビューはどこからどこまでを表示するかってとこですね。

描画

実際の描画処理は、MainWindow.csの37-65行目で設定されています。GLControlはPaintイベントを持っているので、その時に

  1. バッファーをクリアして(41行目
  2. 三角形を設定して(49-61行目
  3. バッファーを交換(64行目
しています。

おわりに(注意)

「とりあえず動く最小限の」を目指して書いたので、実際にはこのままだとあれこれ問題が起きる可能性があります。 また、時代は固定機能を使った方法からシェーダーを使う方法に移っているようなので、次回以降はその辺りを使ってみたいと思います。

が、ひとまずは動くようになったはずです。 あとはこれをもとにあれこれ自分が作りたいものを作ればよいでしょう。

Clone this wiki locally