Irrlicht

IrrlichtMLを取り込むところまでできた

先週は忙しくて全然できなかったが、今日から作業再開。 IrrlichtMLのfreetypeを使ったフォント表示と日本語入力のところを合体するところまでできた。 irrlichtをswigを使ってpythonバインディングにしたもので、 01.HelloWorld.py 02.Quake3Map.py 03.Cust…

irrlichtのpythonラップその2

Irrlichtのexampleの10番までがだいたい動くようになった。https://bitbucket.org/ousttrue/onibi/src/tip/swigirr/python/examplesswigに慣れてきたので、あっさりglslのサンプルを動かすことができた。あと、pythonラッパをirrlichtのnamespace毎に分割し…

irrlichtのpythonラップ

irrlicthのpythonラップができた。 とりあえず、HelloWorldがそのまま動くようになった。 当面は、Irrlichtのexampleの動作を確認しながら足りない要素のラップを進める方針。あと、データの読み込みが不便なので、python側でデータをロードしてirrlichtのメ…

irr::core::stringのラップ

Irrlichtはいい描画エンジンなのだが、なにもかもC++でやるとつらいのでスクリプト導入のターンとなるわけです。 そういうわけで、swigで半自動でCモジュールを作るのだがはまりポイントがある。 irr::core::stringであります。 以前、lua版作ったときも同じ…

premake4でirrlichtの詰め合わせ作成

bullet-2.79のプロジェクトファイル生成方法がpremake4になっていたので自分が使いやすいように編集していたら、irrlicht+bullet+glew+irrmmdの詰め合わせになった。とりあえあず、bitbucketに投入した。 https://bitbucket.org/ousttrue/onibi/overviewだい…

久しぶりにIrrlicht弄ってみる

1.7.2ゲット。 http://irrlicht.sourceforge.net/downloads.html とりあえずmakeしてみる $ unzip irrlicht-1.7.2.zip $ cd irrlicht-1.7.2 $ cd source/Irrlicht $ make MinGWだと、デバッグライブラリが無いと文句言われた。 コメントアウトしたが、どっか…

PMD用のスキンメッシュクラスをアップした

あまり需要が無さそうだがきりのいいところでいったんアップしてみる。 http://gunload.web.fc2.com/irrlicht/download.html ビルドにirrlicht-1.7.1, bullet-2.76, boost, glewが必要なのでちょっとめんどくさいが興味のある人はどうぞ。

bullet組み込み成功

ついにツインテールが揺れるようになった。 重力がおかしい主要な原因は、剛体の初期位置指定で位置と回転を逆に指定するというミスのせいだった。どういうことかというと剛体のオイラー角と位置の読み込みデータを同じ型の構造体(三次元ベクトル)に格納して…

剛体変換

bulletのbtTransformが扱うのは剛体変換で内部に3x3の回転行列と3次元ベクトルを持つ。 bulletは縦ベクトルモデルのようなので区分行列で書くと となりRが回転行列でTが移動要素となる。 なので bulletのソースsrc/LinearMath/btTransform.h /**@brief Mult…

回転が合わない

Irrlichtとbulletで回転が合わない?というか何があっていないのか良く判っていないのだが、髪などの物理演算の影響下にあるボーンがすべてコンストレイントの限界まで上昇している。重力を逆にしても関係なかったのでもっと他のところではまっている。 Irrl…

IKまで完了

テクスチャと表情モーフィングとIKを実装 IKのひざの特別処理で回転をオイラー角に分解してから、角度に制限を加えた後でオイラー角を回転に戻す処理があるのだがそこで使った core::matrix4::setRotationRadians か core::quaternion::quaternion(const cor…

FKまで実装完了

テクスチャ未処理(目) 足のIKが未解決 ひとまずFKの実装まで完了。 踏んだ地雷について。 core::quaternion::getMatrixがおかしい 今まで見たことのない微妙な歪み具合に2時間くらいはまる。結局Irrlichtの方に問題があったみたい。quaternionから回転行列…

pmdとvmdがちゃんと動くようにしてみよう

MMD本体付属の初音ミクVer2.pmdを読み込んでみた図 とりあえず、SAnimatedMeshにSMeshをのせて中身をSMeshBufferとSSharedMeshBufferで充填するところまでやってみた。 SSharedMeshBufferは2chのIrrlichtスレにあるとおり既に放置されているらしく仮想関数が…

サンプル03の改造

ISceneNodeを継承する方法ではなく、独自にSMeshを構築してaddMeshSceneNodeするサンプル。はじめはIMeshSceneNodeを継承したクラスを作っていたのだが、弄っている間に継承無しのこの形になった。 #include <irrlicht.h> int main() { using namespace irr; // create d</irrlicht.h>…

ダンジョンを作ってみる。

入力はこんな感じにする予定。 0 1 2 3 4 5 6 7 8 9 +-+-+-+-+-+-+-+-+-+-+ |S |*|*|*| |*|0 + +-+-+-+ +-+-+ +-+ | |*|*|*| |*|*| |*|1 +-+#+-+-+-+#+-+-+ +-+ |*| |*|*| |*|*| |*|2 +-+ +-+-+ +-+-+ +-+ |*| # |*|*| |*|3 +-+-+-+-+-+-+-+-+ +-+ |*|*|*|*|…

TPS風味のテストプログラム

三人称視点で城を移動するプログラムを書いてみた。 キーボード、マウス、アナログスティックの入力に対応。アクションはジャンプのみ。モデルは例によってSydney姉さんw。 バグで空中ジャンプができる時があるのでマップの隅々まで行けるようになった。 あ…

terrainを試してみる

この前発見したterrainノードを試してみる。 http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=20940&highlight=terrain 更に先日OpenGLで試したskydomeと合体してみた。 (skydomeのソースを配布していたサイトは無くなっているぽくて見つからず) な…

dropがどうもよろしくないと思ったら

irrlichtはreferenceカウントがついているのに何か素のポインタ使っているのと使い勝手が変わらんなぁと思ったら、実際生のポインタで運用しているからだった。しかし、全部intrusive_ptrで包むのもつらいしどうしたものか。

やっぱりLuaでやる

とりあえず確実にできる方法でさくっとやってみることにした。 使ったバインダはtolua++。 本当にさくっとできた。tolua++はテンプレートによるコード生成では無くて、実際にcppとhをはきだすのでこちらの方が分かりやすい。コードジェネレート時のメッセー…

irrlichtのクラス・列挙型をエクスポート

引き続き、前から順番にエクスポートしていくがひとつsqratの定数のエクスポート様式に合わせてスクリプトを変更した。c++でのネストしたnamespace内のenum irr::video::EDT_SOFTWARE をとりあえず irr.video.EDT_SOFTWAREとしていたが都合により irr.EDT.SO…

squirrelはじめました

irrlichtのシーン構築をC++の外部に出す方法を模索中。ノードの位置を変える度に再コンパイルが発生するなど、開発効率が大変よろしくない。はじめはluaでシーン記述をやるつもりだったのだが整数と浮動少数の区別が無いことなどいろいろ気になりだした。そ…

よさげなリンクを発掘

http://ariel.mmorpgplayer.com/ 主にterrain方面で使えそうなコードを発見。 地面とか雲とか木とか草を描画する動作するコードを確認した。 この辺の技を組み合わせて、スカイドームから地形まで一式揃えたいところだな。

Shader実験

irrLichtのシェーダー機能を試してみた。 OpenGLとDirectXでほとんどの部分を共用にできるので、GLSLとHLSL両方を試してみるには便利だ。irrLichtをマスターするという初期投資は必要になるが。 glslのテクスチャ周りではまった点をメモ。 その1 複数のunif…

mqoローダを作ってみる

ソース http://github.com/ousttrue/irrmqo pmdローダから始めようとしたら頓挫したので、敷居を下げて動かないモデルのローダからやってみることにした。ここのところpythonをメインで使っていたため、C++に対応できなくて妙に苦労したが何とか完了。 Irrli…

とりあえず日本語との戦いから

(Irrlicht-1.5.1を使用)チュートリアルをこなしていたらどうしても気になったのでまずは日本語の対処方法から。 こちらのチュートリアルでまずはFreeTypeでttfフォントを使うのをラーニング。 http://www.zgock-lab.net/irrlicht/tut06.htm これで文字列をリ…