進捗 No.3 2013

今日はvertex buffer Obj、vertex Array Objを使用した頂点バッファクラスを作成しました。
モデル描画を早く取りかからなければいけないな。


参考にしたのは下記
http://d.hatena.ne.jp/setuna-kanata/20100720/1279644165
http://www.opengl.org/wiki/Vertex_Array_Objects#Vertex_Array_Object


shaderのlocationの設定方法がよくわかりました。
vaoについてはよくわかりましたが、
逆にvboのみの描画がなかなかうまくいかなくなっちゃって調査してました。


vaoが簡単に使えるのでスルーしてしまいそうです。
次はまだ試していない、インデックスバッファとテクスチャはりつけです。
その次はいったんデバッグフォント描画を作ろうかな。

進捗 No.2 2013

OpenGLでのシェーダー処理を俺俺ライブラリに追加しました。
シェーダを担当してガリガリ書いたことがないので
入出力の変数とかLocationとかの管理をどうしようか悩み中です。
困るまでは放置になりそうですが・・・



今日はモデルを描画したいのでFBXSDKをMacで使うための
簡単なxcodeプロジェクトを作成していました。
動作するsampleがSDKに付属していたのでなんとかリンクできるところまでいきました。
ネット上の日本語の情報がほとんど見当たらなくてあせりました。


Consoleのプロジェクトを作成してコンパイラgccに変更。
FBXSDKを静的リンクしてビルドしてみたところ"_CFBundle~URL"とかなんとかでリンクエラーって悩みました。
サンプルをみて解決しましたが、-framework Carbonのリンクオプションが必要でした。
動的リンクだと思うのですが、frameworkもcarbonもいまいちわかってません。
carbonはosxAPIかな?


最初はMMDかMQOにしようと思っていたのですがなんとなくFBXを試したせいで時間かかってます。

2013 その1

間が空きましたが元気です。
相変わらずOpenGLで遊んでいます。
omakeでglfwはubuntuでうまくいかなかったり、
omakeそのもののルールで面倒だと感じたり理解しきれなかったりしました。

面倒だったところ
 ・試していた限りではすべてのディレクトリにOmakefileを配置。
  SUBDIRにもすべてのディレクトリを設定する必要があった。
 ・間違えていたときにエラーがわかりにくく感じた。(詳細は忘れた。)


わかっていなかったところ
 ・UnixでのOpenglのプログラムの仕方。
  Qtで作成していたときはよかったが、
  自分でライブラリをmakeしたりした際にインストール先がバラバラで
  追えなかったり追うのが面倒になったりしていた。

 ・やはりコマンドラインでビルド・リンクすることに慣れていなかったことが大きかった。
  OMakeを試していくに従って段々と慣れていっていたし、
  意識することはMakefileIDEも差はないと感じた。
  (インクルード・ライブラリのディレクトリ設定など)

  これに関しては、C++11も試したいのでgccやclangで後々触れることになると思う。



今やっていることは、
 ・Xcodeを使ったMacOSXのプログラミング。
 ・glfw+OpenGL3.2(on macbook)
やりたいことは
 ・IOSのアプリ作成
 ・CMake
 ・WindowsをbootしてDirectX11・OpenGL4.0


最近MacBookProを購入したのでそれがらみになっています。
Xcodeには慣れていないけど処理が軽く、かっこいいUIでいい感じです。
英語なのもあって慣れるにはまだ時間がかかりそう。


OpenGLは描画で遊んだらゲーム作成に移る予定。まだそんな状態です。
IOSは息子がIpadで喜ぶようになってきたので、
息子向け・家族向けになにか作っていきたくなってきました。もともと興味もありました。
CMakeは、もともとWindows用でいろいろ作っていたので
OS変更でのビルド環境変更が面倒だったため。
CMakeはライブラリやサンプルのビルドで何度も使用しているし
便利なので使えるようになりたい。
MacbookがせっかくいいGPUを積んでるのに、OpenGLが3.2Coreまでしか対応していないので
WindowsBootして最新版を使いたいなーとか考えてます。
Steamでのゲーム用にもWindowsも欲しいな。(Windows8を購入済みですし活用したい。)


息子も夜泣きなどなくぐっすり眠るので
勉強の時間がしっかりとれるようになってきました。
今年はもうすこしアウトプットできるようになりたいです。

gcc or mingw32-gcc + OMake + glfw

プログラマブルシェーダでのOpenGLをいろいろやりたくてフレームワークにGLFW、
ビルドにOMake(gcc)を使ってあれこれしようとしてます。


Windows上のVC++で動作確認までできたコードで試していたんですがなかなかうまく言っていません。

前々から興味のあったOMakeでビルドしようと思い、
有志の方の翻訳したサイトで複数ファイル + 複数ディレクトリのチュートリアルを済ませ、
自作ライブラリ + GLFW + プロジェクトのソースで検証。

・いきなりUbuntu + OMake + 自作ライブラリ
さっぱりわからん!
mylib.aをビルドするルールが見つからない!?(CStaticLibraryに含まれてないの?)
glfwInitがリンクエラー?glClearがリンクエラー?
全部書いてるつもり・・・


・なれたWindows上のCygwinでOMake

しかしVC++に甘え切っていたためOMakeどころかgccですらビルドできなかった。


・次に段階を落として、単ファイル(main.cpp) + glfwでコンパイルするところから。

  • Iオプションでインクルードディレクトリ
  • Lオプションでリンクディレクトリ
  • lオプションでライブラリ ライブラリはビルド対象よりも後ろに記述する。
  • oオプションで出力ファイル名

ロスコンパイラ(i686-w64-mingw32-gcc)でGUIプログラムはビルドする!

基本を学んでMakefileからビルド&実行に成功!というか簡単だった・・・


Cygwin + OMakeで単ファイル(main.cpp) + glfw
まず、OMakeのOSTypeにCygwinの判定があるはずなのにclでコンパイルしようとする!
if $(equal $(OSTYPE), Cygwin)に引っかからない!→Win32をCywin用としてごまかした。
各オプションもすべてgcc用に置き換える。
CXXFLAGS コンパイラへ渡すオプションを記述
LDFLAGS リンカへ渡すオプションを記述


WinMainがどこからか参照されている?→mingw固有の問題?ubuntuと共有のコードで行きたいので保留
Makefile直書きだと問題ないので謎


UbuntuでOMakeで単ファイル + glfw
大体Cygwinと同じで、パスだけUbuntu用に修正
ビルドはかなりすんなりいけたけど、実行時にエラーorz
X Error of failed request: BadRequest(invalid request code or no such operation


わけわからんので今日はここまで。
gccが分かってなかったので話になりません。
やっとコマンドラインでビルドできそうな感じになってきた。
IDE楽すぎたんだな

近況

前回の記事からだいぶ間があいてしまいましたが、
その間にとてもいろんなことがありました。


〜11月 激務。ほぼ会社に泊まり続けプライベートが一切ない。
9月   結婚式、準備はほぼ奥さんまかせ。
10月  伯父が亡くなった。突然だった。
12月  息子誕生。
2月   奥さんと息子が実家から住まいに戻ってきた。



プログラム的には、
Collada    そこそこフォーマットを調査した。
Rubyを勉強中 簡単にスクリプト言語を勉強したかった。
        時間が空けばWebアプリなんかつくってみたい。
C#を勉強中  GUIアプリ(ツール用)を簡単に作れるようになるため
DirectX    C#の勉強と合わせて。SlimDXというものを使用。SharpDXの方がいい?
・Pssuite    C#の勉強がすすめつつ。なにか出したいな。


全体的にC#が使った感じもゲームを作る環境もいい感じです。
子育てをしながら勉強中ですが、生活がただされモチベーションも保てていい感じです、。

今はC#+SlimDXでグラフィックの勉強をしながら自分用フレームワークを作成しています。
XNAPssで動くようにうまく設計していけたらいいな

ColladaDom2.2

結局NO_BOOSTがどうとかではなく、Boostもビルドして全部そろえる事になりました。
追加のライブラリを増やしたくないのは変わっていませんが、データコンパイルの手段を
ColladaDomを使用して作成するまではこのまま使用していくつもりです。


BoostをVC2008でビルドする際に
VC++コマンドプロンプトを使用する
・引数でビルドターゲット・VC++のバージョンの設定を行う
上記2点をきちんと行う必要がありました。
コンパイルが通った後もいくつかの.dllファイルがなかったりと嫌な感じでしたが
なんとか今日中にコンパイルが通ってDAEクラスでの読み込みを実行できるところまではきました。



後、自サバを稼働していろんなソフトをインストールして再起動をしたことがなかったのですが、
奥さんにサーバーPCの電源を引っこ抜かれたことでついにその機会が訪れてしまいましたorz

案の定、eth0のモジュールをインストールしなおす必要があったりredmine
なにかの設定がおかしいのか使えなくなったり、と不安が的中してしまいました。


結局redmineは復旧できてません・・・


まあApacheは使えるのでSVNも問題なく一安心です。
明日からようやくモデルデータの表示を作成していきます。