CodeZine(コードジン)

特集ページ一覧

Curl 3Dアプリケーションにおける壁判定処理の考え方

第3回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/06/19 16:00

目次

手順の図解

  • 凡例

1)壁判定必要性の確認の例

 壁判定を行わず、新視点位置に移動します。

2)移動前の視点位置での確認の例

 移動前、接近猶予距離以内に面(壁)があるので、面(壁)より、接近猶予距離離れた位置を現視点位置とする。

3)移動後の視点位置の確認の例

 移動後、接近限界距離以内に面(壁)があるので、現視点位置のままとする。

 移動前の位置調整により、壁面に沿って、ジグザグに移動することもできます。

 壁判定の処理は、「3D-Gallery\SCENE\CustomSceneGraphic.scurl」のmovement-eyepointメソッドで行っていますので、参照してみてください。

平面との距離計算

 次に、平面との距離計算についても触れておきたいと思います。

 CurlのSceneには、get-intersectionsメソッドがあり、交差する面と交点座標を得ることができるのですが、簡易実装となっているようです。交差する面は得られるのですが、交点座標は、斜めの面の場合、その面が内接する直方体の最も近い面での交点座標となり、実際の交差面との交点は得られません。

 そのため、「Curl 3D Gallery」では、get-intersectionsメソッドで交差面を求め、交点座標は、交差面との幾何計算により、厳密に求めるようにしています。

 ソースコードは、Geom. calc-coords-plane-intersectionメソッドになります。具体的には、交差面の平面方程式を求めます。求められた平面方程式との交点座標を求め、交点座標が、交差面に内包するか否かで、実交点を求めています。

 今回は、具体的なソースコード説明はありませんでしたが、「Curl 3D Gallery」の解読や、他への応用のお役にたてれば幸いです。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Curl 3D Gallery技術解説

著者プロフィール

  • 尾松 秀紀(オマツ ヒデキ)

    2度目の成人式を過ぎても、なお、現役で組んでたりします。 ^__^; 「ものづくり」は大好きな2児の父親です。真新しい技術には興味ありありで、暇を作っては、試してみたりしています。機会があれば、いろいろご紹介していきたいと思いますので、今後とも、よろしくお願いします。 P.S. 株式会社ベーシッ...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5