カメラのべクトルから一番近いノードを取ってくる関数を毎フレーム行うようにして、さらに全部のオブジェクトとの衝突判定もするようにした。
それで1000個ほどのキューブとTerrainを含んだ.irrファイルを読み込ませたら、大体50FPSは確保できた。毎秒50回のノードの検出をすることなんてそうないだろうし、1000個のオブジェクトもいらないだろうから、パフォーマンスは充分なんだろう。
なにかするにつけ速度が気になって仕方がない。関数の中身がどうなってるのかソースながめて、それだけじゃわからないから実際に試して、効率が悪いことこの上ない。モチベーションを維持するためにも、しばらくは何も気にせず見える部分の実装を進めていくことにしよう…なんていいながらやっぱ気になる。

TODO

それにしてもIrrlichtのParticleやらビルボードやらはほんと使えなさ過ぎる。なんて言ってると1.5で全部解決しました!とかなるんだろな。

高速化?

あれみたいに区画整理された土地にビルが立つ感じのを再現するなら、その衝突の高速化って結構簡単にできるんじゃないかと思った。

1ブロックを覆う見えないSceneNode(緑)を作って、建物はその子ノードにするだけ。カメラのベクトルからノードを取ってくる関数も、うまくIDを振ってマスクをかければ総当りよりよっぽどマシにできそう!なんか、当たり前じゃないこれ?