Qt OpenGL 入門
23-Aug-2013
Nobuhide Tsuda
自己紹介
名前:津田伸秀
サイト: http://vivi.dyndns.org/ twitter:vivisuke
facebook:https://www.facebook.com/nobuhide.tsuda
ぼちぼちソフト作家、年齢不詳のおじさん、自宅研究員(主席)
趣味:テニス、オセロ、思考ゲーム・パズル類
Qt/C++ 使い, 一応webアプリ(PHP, JS, jQ, SQL)も出来るよ
Windows用テキストエディタ ViVi を延々開発中
最近は、世界最速「さくさくエディタ」 開発中だよ
迷走中、お仕事募集中でござるぞ
名前:津田伸秀
サイト: http://vivi.dyndns.org/ twitter:vivisuke
facebook:https://www.facebook.com/nobuhide.tsuda
ぼちぼちソフト作家、年齢不詳のおじさん、自宅研究員(主席)
趣味:テニス、オセロ、思考ゲーム・パズル類
Qt/C++ 使い, 一応webアプリ(PHP, JS, jQ, SQL)も出来るよ
Windows用テキストエディタ ViVi を延々開発中
最近は、世界最速「さくさくエディタ」 開発中だよ
迷走中、お仕事募集中でござるぞ
Qt (キュート)
Qt
- C++アプリケーション フレームワーク
-
http://qt-project.org/
- Download
- 商用版/GPL版/LGPL版
- マルチプラットフォーム対応
- Windows, Mac, Linux, Android, iOS,...
- IDE
- QtCreator (clang/gcc 使用)
- VisualStudio、Qt-Addin
Qt
- moc によるC++拡張
- signal/slot による動的バインディング
- メタオブジェクト
-
動的レイアウト、動的翻訳による多国語対応
- OpenGL, Webkit, XML など便利なモジュール満載
- 素直な設計、高生産性
- 詳しくは 「Qtプログラミング入門」 買って読んでね ;^p
Qt で OpenGL
Qt で OpenGL
- プロジェクト作成時:「OpenGL」モジュール選択
- プロジェクト設定>モジュール で選択
- pro ファイル:「QT += opengl」 追加
Project Settings で追加
pro ファイルを修正
#include
- Windows, Mac でファイルが違うので注意
- Windows, Linux (未確認)
- #include <GL/glu.h>
- Mac OSX
- #include <OpenGL/glu.h>
- ソースを共通にしたい場合は #ifdef 使用
- Q_OS_WIN32
- Q_OS_MAC
- Q_OS_LINUX
QGLWidget
- OpenGL 画像を描画するウィジェット:
- QGLWidget 派生クラスを定義・実装
- 以下の3つの仮想関数を再実装
- initializeGL()
- resizeGL(int width, int height)
- paintGL()
- ソース
initializeGL()
- 初期化
- qglClearColor(Qt::lightGray); // 背景色指定
- glEnable(GL_DEPTH_TEST); // for 印面消去
resizeGL(int w, int h)
- ウィジェットリサイズ時の処理
- ビューポートの指定
- glViewport(0, 0, w, h);
paintGL()
- OpenGL 機能を使って画面描画
- バッファクリア
- 視野・視点設定
- 変換行列設定
- 描画処理
- 具体的なコードはここを見てね
Qt に OpenGL
アニメーション
視点変更UI
まとめ
- Qt を使えば、GUI を備えた OpenGL アプリをとりあえず簡単に作れるぞ。
- ちゃんとしたアプリを作るには、OpenGL 自体の勉強が必須
- 個人的にはシェーディングが難しかったでござる
Qt OpenGL 入門
By Nobuhide Tsuda
Qt OpenGL 入門
- 16,515