SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Curl 3D Gallery技術解説(PR)

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

第3回

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

手順の図解

  • 凡例

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」の解読や、他への応用のお役にたてれば幸いです。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Curl 3D Gallery技術解説連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3929 2009/06/19 16:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング