Хорошо, после еще одного тестирования мне наконец удалось заставить его работать.Хотя я этого не понимаю ... это «работает».Для тех, кому понадобится сделать это в будущем, вот мое решение.
float rv[3]; // the rotation vector
float rotMat[9]; // rotation matrix
float tv[3]; // translation vector.
rv[1]=-1.0f * rv[1]; rv[2]=-1.0f * rv[2];
//Convert the rotation vector into a matrix here.
//Complete matrix ready to use for OpenGL
float RTMat[] = {rotMat[0], rotMat[3], rotMat[6], 0.0f,
rotMat[1], rotMat[4], rotMat[7], 0.0f,
rotMat[2], rotMat[5], rotMat[8], 0.0f,
tv[0], -tv[1], -tv[2], 1.0f};
Как сказал в своем комментарии genpfault, все должно быть транспонировано начиная с OpenGL, так как OpenGL нуждается в мажорном столбце.(Спасибо за комментарий, я уже видел эту страницу ранее.) Кроме того, угол поворота y и z, а также перевод y и z нужно умножить на -1.Это то, что я нахожу немного странным.Почему только те, а не значения х тоже?
Это работает, как я должен догадаться.Но углы не совпадают точно.Я предполагаю, что это вызвано некоторыми неправильными конфигурациями openGLView.Поэтому, хотя я все еще не на 100% доволен своим решением, я думаю, что это ответ на мой вопрос.