2016年12月24日

しんちょく。

今回の進捗を詰め込んだ一枚がこちら。

widget.jpg

まだ機能追加とかバグ修正とか設計変更とかやってます。
作業内容は以下のような感じでした。

1.ウインドウの描画順をリアルタイムに切り替える
2.FBOのアルファブレンディングの不具合修正
3.ウインドウからフレーム部分を切り離すよう変更
4.色選択用の色相環の描画
5.ウインドウの外枠を描画

主にウインドウの機能追加や不具合の修正でした。
以上です、進捗報告おしまい(早
いろいろ書いたんですけど、上手くまとまらなかったので、今回参考にしたURLだけ紹介して終わりにします。

2.FBOのアルファブレンディングの不具合については以下を参考にしました。

https://en.wikibooks.org/wiki/GLSL_Programming/GLUT/Transparency

具体的な解決方法としては、FBOの後のレンダリングで以下のブレンド関数を使うだけです。

glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA);

関数の意味については、上記URLに載っているglBlendFunc()をGLSL風に置き換えたコードを読むと分かりやすいかと思います。


4.HSV色空間についてはWikiの解説が参考になりました。

https://ja.wikipedia.org/wiki/HSV%E8%89%B2%E7%A9%BA%E9%96%93


今回はこんなところです。
ではまた。
posted by gency at 21:42| Comment(0) | 3DProgramming

2016年12月05日

近況報告-GUI制作

自作GUIが使えるレベルになってきました。
そろそろエディタの作成を始めます。

Windows10とグラボのドライバの調子が悪く、作業に支障が出ていたのでWin7に戻しました。それでまだアマレコが使えない状態なので、今回は画像だけになります(最近のNVのドライバはGIFでクラッシュすることもあるようなので自粛もかねて)。

bd.jpg

自作GUIの現在の様子です。
画面が全体的に赤くなっているのは別に不具合ではなくて、画面の状態を判別するために加工したものです(赤いときはレンダーテクスチャが表示されている)
2ヶ月くらいずっとこの状態だったので、すっかり馴染んでしまって元に戻すのを忘れてました。。見苦しいかもですが、まあ近影ということでひとつ。

最近まではウインドウを作っていて、レンダーテクスチャを使ったフレーム表示とスクロール機能を作っていました。フレーム表示はタブコントローラやシーングラフなどでも使うことになる重要な機能で、フレームの設計が固まったことは今回の大きな成果といえます。一つ作ったら、他は大半コピペで作れますので。
この作業で、FBOの扱いにもだいぶ慣れたので、今後のエンジン制作でも活かせそうな気がします。
すぐにでも反映させられそうなのは、ポストエフェクトでしょうか。
上の画像で、画面全体を赤く表示する加工はポストエフェクトそのものですので、これを少し整備するだけでポストプロセスシェーダーを実装できそうです。

ちなみに、最近になってGLES3.0に対応したのですが、GLES3.0にはマルチレンダーターゲット用のAPIしかないので、OpenGL3.3のコードを書き直す際、ついでにOpenGL側だけMRTに対応させました。
あとはシェーダープログラムの書き方は調べて、それを生成するコードを書けば、UnityやUE4のようなモダンなエフェクトも使用可能になる感じです。
実際にこの辺の作業に取りかかるのは、もっと後になる予定です。


では最後に、あまり晒したくはないのですが、上の画像と併せてみると分かりやすいと思うので、エディタのプロトタイプの画像を貼っておきます。

Untitled Page.jpg

こんな感じのエディタを作ろうとしております。
細かいところは全然詰めていませんが、まあ概ねはこんな感じで作る予定です。
詳しいことは進捗報告として紹介します。

今回は以上です。
ではまた。
posted by gency at 00:56| Comment(0) | 3DProgramming