vec3 camPosInModelSpace = (inverse(mat_world) * vec4(worldCamPos, 1)).xyz;
vec3 axisZ = normalize(camPosInModelSpace);
vec3 axisY = axisZ.y > 0.999 ? vec3(0, 0, 1) : vec3(0, 1, 0);
vec3 axisX = normalize(cross(axisY, axisZ));
axisY = normalize(cross(axisZ, axisX));
mat4x4 rotate = mat4x4(vec4(axisX, 0), vec4(axisZ, 0), vec4(-axisY, 0), vec4(0, 0, 0, 1));
//vec3 vertexModelSpace = (transpose(rotate) * vec4(vPosition, 1)).xyz; // Here is my confused point
vertexModelSpace = axisX * vPosition.x + axisZ * vPosition.y + -axisY * vPosition.z;
gl_Position = mat_mvp * vec4(vertexModelSpace, 1);
Как видите, код GLSL рекламного щита очень прост, но у меня просто есть вопрос по этому поводу, после того как я получил 3 оси под пространством модели, почему я не могу использовать матрицу чтобы преобразовать вершину (когда я это делал, казалось, работает только ось Y) , но когда я использовал способ руководства, он работает нормально.
Пожалуйста, помогите мне, я действительно сбит с толку, спасибо вы.