modelsUnderRay高速化2
modelsUnderRay高速化を今度は少し違うやり方で。
■HYO-GONOSUKEさん方式
当たり判定専用の3Dキャストメンバーを別に用意して、modelsUnderRayだけそのワールドで行う。
詳しくは、HYO-GONOSUKEのGAME制作日記参照。
■bamseさん方式
前のエントリーでは対象外グループを消す(worldグループから外す)事で高速化しましたが、bamseさん方式は、判定用モデルだけworldグループに置いて、それ以外の見た目とカメラをworldグループ外にするというやり方。
例えば、"myGroup"に見た目のモデルを入れて、
SW3DMember.group("myGroup").removeFromWorld()
とすればmyGroupはworldに属さないので判定対象から外れます。
そしてカメラのrootNodeをmyGroupにすれば、判定用モデルは不可視になり、見た目用モデルだけが表示されます。
参照:plasma Note 5
■オガワさん方式
modelsUnderRayの回数を半分に減らすというやり方。modelsUnderRayしない時は、前回と前々回のポジションデータから割り出す。
当然精度は落ちるけど、実用上さほど問題なく、負荷は2分の1なので判定対象を減らせない時などに有用です。
参照:もろこしクエスト制作記 :過去ログ
それぞれ好みやケースに合わせて活用しよう。