Итак, стандартный способ преобразования вершин и последующего перехода к фрагментному шейдеру в GLSL выглядит примерно так:
uniform mat4 u_modelview;
attribute vec4 a_position;
void main() {
gl_Position = u_modelview * a_position;
}
Однако я работаю в 2D, поэтому в матрице 4x4 есть избыточность.Будет ли для меня более эффективным сделать это?
uniform mat3 u_modelview;
attribute vec3 a_position;
void main() {
gl_Position = vec4(u_modelview * a_position, 1.0);
}
gl_Position требует 4-компонентный вектор, поэтому при выводе требуется дополнительная операция.Тем не менее, умножение матриц для 9 элементов вместо 16. Могу ли я сделать лучше?