В какой последовательности выполняется поворот с помощью матрицы?
Изучаю OpenGL ES 2. Прочитал в книге, что для поворота вершины используется такой способ
private final float[] modelMatrix = new float[16];
setIdentityM(modelMatrix, 0);
rotateM(modelMatrix, 0, 90, 1f, 0f, 0f);
Т.е. создаю модельную матрицу (modelMatrix). Делаю её единичной матрицей. А потом умножаю эту единичную матрицу на матрицу поворота. В данном случае на матрицу поворота на 90 градусов по оси X. Если поворот происходит по одной оси, то всё понятно и ясно. А если я хочу повернуть вершину по 2-м осям.
rotateM(modelMatrix, 0, 90, 1f, 1f, 0f);
Не могу понять в какой последовательности будет рассчитываться поворот. Сначала вершина будет повёрнута по оси X, а потом по Y. Или наоборот? Или одновременно?. Но как можно повернуть одновременно вообще не понятно.
Подскажите, как рассчитывается поворот по 2 или 3-м осям? Если пытаюсь делать такие повороты на практике, то получается результат который я не могу предсказать.