Если у вас нет подходящей библиотеки векторов / матриц, загляните в GLM (она может делать такие вещи без суеты).
Если вы хотите сделать это вручную,Компоненты преобразованного вектора являются точечными произведениями соответствующих строк в матрице и нетрансформированного вектора.Это потому, что вектор можно рассматривать как матрицу с одним столбцом (тогда просто примените правила умножения матриц).
Таким образом, при условии размещения памяти OpenGL это будет:
x = x * m[0] + y * m [4] + z * m [8] + w * m [12], y = x * m [1] + y * m [5] + z * m [9] + w *м [13] и т. д.