私は最近、チームメンバーが数か月前に辞めたまま停滞したプロジェクトを引き継ぎました。スピードを上げようとしているときに、この頂点シェーダーに出くわしましたが、その機能を理解するのに苦労しています。
uniform int axes;
varying vec4 passcolor;
void main()
{
// transform the vertex
vec4 point;
if (axes == 0) {
point = gl_Vertex;
} else if (axes == 1) {
point = gl_Vertex.xzyw;
} else if (axes == 2) {
point = gl_Vertex.xwzy;
} else if (axes == 3) {
point = gl_Vertex.yzxw;
} else if (axes == 4) {
point = gl_Vertex.ywxz;
} else if (axes == 5) {
point = gl_Vertex.zwxy;
}
point.z = 0.0;
point.w = 1.0;
// eliminate w point
gl_Position = gl_ModelViewProjectionMatrix * point;
passcolor = gl_Color;
}
私がよりよく理解したい行は、次のような行です。
point = gl_Vertex.xwzy;
これを説明するドキュメントが見つからないようです。
誰かがこのシェーダーが何をしているのか簡単に説明できますか?