OpenGL Правомерность действия
В ходе моего обучения OpenGL у меня возник вопрос.
Я получаю с камеры видео поток используя GL_TEXTURE_EXTERNAL_OES.
Далее для правильной выборки из текстуры (нужно перевести "стандартные" st координаты в координаты текстуры) я использую трюк:
glm::mat4 st {
0, 1, 0, 0,
1, 0, 0, 0,
0, 0, 0, 0,
1, 1, 0, 0
};
compensate_matrix = st * glm::rotate(glm::mat4(1.0f), glm::radians(180.0f), glm::vec3(0,0,1));
Далее в шейдере:
var_st = (compensate_matrix * vec4(st.x, st.y, 0, 1.0)).xy;
Собственно вопрос, насколько правомерно выражение, и что оно значит:
... st * glm::rotate ...?