私の質問は:
平行移動または回転後に頂点の座標を取得する方法はありますか?
例: x = 10、y = 10、z = 0
glTranslate または glRotate への一連の呼び出しの後、x、y、および z の実際のステータスを知るにはどうすればよいですか?
ありがとう。
私の質問は:
平行移動または回転後に頂点の座標を取得する方法はありますか?
例: x = 10、y = 10、z = 0
glTranslate または glRotate への一連の呼び出しの後、x、y、および z の実際のステータスを知るにはどうすればよいですか?
ありがとう。
これは不可能です... opengl は頂点データを GPU に送信し、GPU でのみ変換後にそれらを取得できます。
変換された頂点を取得するには、自分で行列を乗算する必要があります
for each vertex:
vertex_transformed = matrix * vertex
古いOpenGLで:
glGetFloatv(GL_MODELVIEW_MATRIX, m);
x = pos.x*m[0] + pos.y*m[4] + pos.z*m[8] + m[12];
y = pos.x*m[1] + pos.y*m[5] + pos.z*m[9] + m[13];
z = pos.x*m[2] + pos.y*m[6] + pos.z*m[10] + m[14];
いくつかのより高度な方法は、変換フィードバックを使用して、変換された頂点をバッファーに格納することです (ただし、このバッファーは GPU に格納されます)。