2つのGLオブジェクト間の衝突を検出する簡単な方法はありますか?例:glutSolidCylinder&glutSolidTorus
簡単な方法がない場合、このオブジェクトをその場所に参照するにはどうすればよいですか?
そして、私が彼らの場所を知っている場合、考慮に入れるべき数学的な考慮事項は何ですか?
2つのGLオブジェクト間の衝突を検出する簡単な方法はありますか?例:glutSolidCylinder&glutSolidTorus
簡単な方法がない場合、このオブジェクトをその場所に参照するにはどうすればよいですか?
そして、私が彼らの場所を知っている場合、考慮に入れるべき数学的な考慮事項は何ですか?
いいえ、簡単な方法はありません。OpenGLはシーングラフやジオメトリライブラリではないため、オブジェクトを認識しないため、これらはとにかくGLオブジェクトではありません。三角形や点などの単純な形を画面に描画するだけで、まさにglutSolidTorus
それが友人たちの行動です。それらは、positionなどのプロパティを持つ抽象オブジェクトを構築しません。それらは画面に三角形の束を描画し、現在の変換行列を使用して頂点を変換します。
衝突検出や単純なオブジェクトとシーンの管理などを実行しようとしているときは、位置やジオメトリなどを備えたオブジェクトの管理を回避することはできません。OpenGLは、次の概念なしで三角形を描画するだけです。それらが構成する可能性のある抽象オブジェクト。
オブジェクトのジオメトリ(オブジェクトを構成する三角形と頂点)を完全に制御できるようになったら、オブジェクトを自分で描画したり、衝突検出アルゴリズム/ライブラリにフィードしたりできます。球、円柱、さらにはトーラスなど、数学的に記述可能なオブジェクトの場合は、特殊なアルゴリズムを見つけることもできます。ただし、覚えておいてください。それらを任意の抽象プロパティを持つオブジェクトとして管理するのはあなた次第です。OpenGLはそれらを描画するだけであり、これらの関数は単純なブロックglutSolid...
以外の何も含まない単なるヘプラー関数です。glBegin/glEnd
衝突をチェックして管理するシステムが必要になります。過剰なオブジェクトの使用を主張したい場合は、交差をチェックするために他のクラス/ジオメトリ表現にそれらを含める必要があります。
物理学/衝突検出に関するいくつかの興味深い読み取り/リンク:
www.realtimerendering.com/intersections.html
http://www.wildbunny.co.uk/blog/2011/04/20/collision-detection-for-dummies/ <彼には他の記事もあり、2Dの原理は簡単に3次元に拡張できます
http://www.dtecta.com/files/GDC2012_vandenBergen_Gino_Physics_Tut.pdf
編集、この本は良いimoです:http://www.amazon.co.uk/gp/product/1558607323/ref=wms_ohs_product