したがって、頂点を変換してから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成分ベクトルが必要なため、出力時に追加の操作が必要です。ただし、行列の乗算は16ではなく9要素用です。これ以上のことはできますか?