さまざまな情報が格納されているrectクラスがあります。2Dで衝突検出を行うために使用します。
openGL 3以降でレンダリングしている場合、Rectをクワッドに追従させるにはどうすればよいですか。最初は、各頂点の位置を取得して、それらをRectの4つの位置(各コーナー)にフィードできると思いました。しかし、モデルマトリックスを適用した後、頂点の位置を取得するにはどうすればよいですか?
クワッドから長方形を作成するための情報を取得する別の方法はありますか?
しかし、モデルマトリックスを適用した後、頂点の位置を取得するにはどうすればよいですか?
Rectのモデル空間に4つの頂点(v1、v2、v3、およびv4)があり、モデル行列Mがある場合、Rectに従ってクワッドを追跡する場合は、頂点にモデル行列を乗算するだけです。 (OpenGLが行うのと同じことを行います)。
このようにモデルマトリックスをrectの座標に適用するだけで、4つの変換されたrect座標(vt1、vt2、vt3、vt4)を取得できます。
vt1 = M * v1;
vt2 = M * v2;
vt3 = M * v3;
vt4 = M * v4;
OpenGL 3 では、これを手動でプログラムする必要があります。パイプラインがプログラム可能であるためGL_QUADS
、古い固定パイプラインで の呼び出しがありましたが、3.0 で廃止され、3.1 以降で削除されました。
これは自分で行う必要があるため、問題にはいくつかの解決策があります。そのうちの 1 つはSOで説明されています。