OpenGL

FTGLの日本語その2

toge氏の情報によると(http://d.hatena.ne.jp/toge/20050519) CharMapで指定するのは、FTGLに渡す文字列のコードではなく使用するフォントの文字コードだということらしい。 何故か漏れはFTGLが勝手に文字コード変換してくれるもんだと思い込んでいたぽい。…

FTGL続き

http://d.hatena.ne.jp/i-saint/20050515 WindowsでSJIS表示できるらしいとの情報。さっそく実験してみることに。FTGLのFTCharMap.hを読むと、SJISにも対応しているようなことが書かれている。 CharMapにエンコード方式を渡してやれば良いようだ。 ところが…

FTGLで日本語表示

http://d.hatena.ne.jp/m107/20050512/1115912015 FTGLで日本語が表示できないのでは?という情報が気になって寝るに寝られず実験。 ビルドするのにFreeTypeやらglutやらが必要で思いのほか手間取ってしまった。なんとかデモプログラムをビルドして日本語表…

描画の高速化3(VBOを使う)

toge氏の日誌(id:toge:20050420)を見て漏れ漏れもということで後回しにしていたARB_vertex_buffer_objectを試してみることに。 OpenGLではこういった拡張機能を使用する場合、使用できる拡張のリストを取得して目的の拡張が使えるのかどうかを調べ、必要な関…

可視判定

可視判定のための視錐台カリングを実装していたのだけれど案の定ハマりまくった。 何故か視野角によって出鱈目な結果になると思ったら、ラジアンを渡すとこにオイラー角を渡してたり、なんとか動くようになった物の、どうも判定漏れがあると思ったら、カメラ…

描画の高速化2

昨日の続き。頂点配列をOpenGLに渡すときにはglVertexPointer()、glNormalPointer()、などで頂点や法線のデータを個別の配列で渡してやる方法と、glInterleaveArrays()で指定のデータ構造の配列を渡してやる方法がある。 // 個別に配列を指定する場合 glVert…

描画の高速化

いくら最適化オフとはいえ、あんなに重くちゃかなわないので、ちょっくらコード最適化に乗り出してみることに。 ところでVC7.1ってプロファイラが無いんですね*1これを知ったときのorz加減といったら・・・というわけでググって見つけた日本コンピュウェアさ…

加算α爆発

バトルシティもどきでは爆発の表現にGL_POINTを加算合成したパーティクルを用いていたのだけれど、流石にこれだと大量に爆発を出すと重くなるので、ビルボードとテクスチャアニメーションの爆発を作ってみた。爆発アニメーションの表現には発色弾というツー…

glScalefのバカヤローヽ(`Д´)ノ

メタセコモデルのローダーを改良中。なんだけれど妙な問題にぶつかった。どうしてもモデルのシェーディングがおかしい。異常にハイライトがきつかったり暗すぎたり。法線の計算ルーチンがバグっているのかと思い見直してみるも問題ない様子。材質やライティ…

汎用的な衝突検知クラス

OpenGLの今まで書き散らしたコードを、適当にnamespaceで囲いつつクラス化してみる。こういう作業は楽しいもんですな。なるべく汎用的に使えそうなクラス設計を心がける。とりあえず衝突検知をクラス化して汎用的に使いまわせるようにしようという企て。衝突…

OpenGLで文字の描画その2

id:halo_w2:20050305の続き。I.Saint氏がgl_kanjiなる日本語表示プログラムを公開されている。 http://i-saint.abz.jp/pg/index.htmlBDFフォントを独自フォーマットに変換して使用しているらしい。独自の圧縮を施していて、フォントファイルのサイズは220KB…

OpenGLで透明なオブジェクトの描画

以下個人的メモ。 混合関数について glEnable(GL_BLEND);で混合機能を有効にする必要がある。しかしこれだけでは何の役にも立たないので、 glBlendFunc( src, dst );で混合元と混合先それぞれの混合関数を設定してやる必要がある。よく使うだろう混合関数の…