C++ 反射矩阵不能正常工作
我尝试过,这就是我如何创建和使用反射矩阵(我的水平面为z=0): 着色器:C++ 反射矩阵不能正常工作,c++,opengl,matrix,C++,Opengl,Matrix,我尝试过,这就是我如何创建和使用反射矩阵(我的水平面为z=0): 着色器: vec4 mvpvertex = MVP_reflection * vec4(vertex, 1.0); vec2 projCoord = mvpvertex.xy / mvpvertex.w; projCoord = vec2(0.5, 0.5) + 0.5 * projCoord; projCoord = clamp(projCoord, 0.0, 1.0); 但整个场景似乎被颠倒了。我应该看到的东西在我面前的倒影
vec4 mvpvertex = MVP_reflection * vec4(vertex, 1.0);
vec2 projCoord = mvpvertex.xy / mvpvertex.w;
projCoord = vec2(0.5, 0.5) + 0.5 * projCoord;
projCoord = clamp(projCoord, 0.0, 1.0);
但整个场景似乎被颠倒了。我应该看到的东西在我面前的倒影在我身后,反之亦然。我尝试了更多的矩阵变换,但如果我的尝试奏效,就没有了。
我做错了什么?如何修复它?因为您将从左侧乘以反射矩阵,这意味着它将应用于视图矩阵之后。因此,矩阵定义的z方向的反射将前后翻转 我认为您有两种选择来解决此问题:
camera.setViewMatrix(camera.View(), mReflection);
1.0, 0.0, 0.0, 0.0,
0.0, -1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0
1.0, 0.0, 0.0, 0.0,
0.0, -1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0