FPSを作ってみる@wiki
05)
最終更新:
slice
-
view
(2014/05/28)
テクスチャなしの単体モデルを表示。
やっとこさって感じだが、まだまだやる事は沢山ある。
前のように右手左手系の変換はテキトーに軸反転して見た目合ってたらいいやーじゃなくて
クォータニオンも含めちゃんと対応する予定。
やっとこさって感じだが、まだまだやる事は沢山ある。
前のように右手左手系の変換はテキトーに軸反転して見た目合ってたらいいやーじゃなくて
クォータニオンも含めちゃんと対応する予定。
(2014/05/17)
GLEffectChecker完成
地味にGLSLCheckerも更新しつつ、自作エフェクトファイルのコンパイルチェッカも完成。
GLSLコードはともかく他の部分に関してはエラーがあるかどうかしか表示してくれないが・・
これ自体というよりは、自作ライブラリとQtの組み合わせに手間取ってた気がする。
GLSLコードはともかく他の部分に関してはエラーがあるかどうかしか表示してくれないが・・
これ自体というよりは、自作ライブラリとQtの組み合わせに手間取ってた気がする。
さっさとモデルをインポートせねばっ
(2014/05/08)
GLSLChecker公開
誰得か知らないけど、完成したので公開。
この機会に見様見真似でmarkupなREADMEを書いてみた。
この機会に見様見真似でmarkupなREADMEを書いてみた。
さて、自前エフェクトファイルのエディタを作ろうか。
(2014/05/07)
バグつぶし
結構前になっちゃったけど、GLSLのシンタックスハイライタ(&エラーチェックのコンパイル)
ツールは一先ず完成していて
5月入ってからは自作ライブラリのバグ取りが中心だった。
ツールは一先ず完成していて
5月入ってからは自作ライブラリのバグ取りが中心だった。
というのも今思えば描画周りのルーチンがガッタガタで、よくこんなので動いていたな!?という感じだったので。
例えばテキストのフォントテクスチャを作ってそのフレームですぐにリソースハンドルを開放すると
OpenGLのテクスチャがきちんと削除されない。
GLSLのコンパイルでシェーダーのバージョンを指定する必要があるのだけど
これが#version 130 (GLSL 1.3 -> OpenGL 3相当)固定になってたし
処理落ちで描画をスキップする際もglBufferData()等のデータ転送命令は実行したい関係上
描画スレッドの関数をdraw(bool bSkip)として引数にスキップ時のフラグを渡していたのだけど
使ってなかった(常に描画)
例えばテキストのフォントテクスチャを作ってそのフレームですぐにリソースハンドルを開放すると
OpenGLのテクスチャがきちんと削除されない。
GLSLのコンパイルでシェーダーのバージョンを指定する必要があるのだけど
これが#version 130 (GLSL 1.3 -> OpenGL 3相当)固定になってたし
処理落ちで描画をスキップする際もglBufferData()等のデータ転送命令は実行したい関係上
描画スレッドの関数をdraw(bool bSkip)として引数にスキップ時のフラグを渡していたのだけど
使ってなかった(常に描画)
初歩的なミスも幾つか。
インタフェースのデストラクタをvirtualにしてなくて解放漏れに、
参照カウンタを使ったリソースハンドルの循環参照で同じく解放漏れ。
std::vector<std::function<void ()>>のコールバック関数群をstd::move()として
moveしたつもりが呼び出し先の関数の引数がrvalue referenceになってなかった為に
実はcopyされていて、キャプチャされた変数もコピーされるし
自分はmoveしたつもりでclear()を呼んでないから
コールバック関数が毎フレーム積み上がって500個とかなったり。
インタフェースのデストラクタをvirtualにしてなくて解放漏れに、
参照カウンタを使ったリソースハンドルの循環参照で同じく解放漏れ。
std::vector<std::function<void ()>>のコールバック関数群をstd::move()として
moveしたつもりが呼び出し先の関数の引数がrvalue referenceになってなかった為に
実はcopyされていて、キャプチャされた変数もコピーされるし
自分はmoveしたつもりでclear()を呼んでないから
コールバック関数が毎フレーム積み上がって500個とかなったり。
予定
最近これといってネタもないし
GLSLのハイライタ自体はQt5のクラスだけで作ってあるから、githubで公開したいなと。
今ソースを少しは見られる様に掃除してる。
GLSLのハイライタ自体はQt5のクラスだけで作ってあるから、githubで公開したいなと。
今ソースを少しは見られる様に掃除してる。
それが終わったら自作エフェクトファイルのハイライタ。
キーワードや色の定義なんかは全部JSONファイルで外部に出してあるから
エフェクトコンパイル用の自作ライブラリを組み込んで終わり・・の筈。
キーワードや色の定義なんかは全部JSONファイルで外部に出してあるから
エフェクトコンパイル用の自作ライブラリを組み込んで終わり・・の筈。
その次はやっとこさ、FBXモデルインポーターの再開。
元々これの為に頑張っていた訳なので、早いとこ戻って5月中頃までには片をつけたい。
元々これの為に頑張っていた訳なので、早いとこ戻って5月中頃までには片をつけたい。