我目前正在实现反射(使用render-to-texture方法),到目前为止,它是有效的,唯一的问题是反射版本中的所有对象都是从里到外渲染的。
我希望避免更改内部OpenGL顶点缠绕顺序,以确保我不会过多地干扰其他渲染操作。
相反,我想转换我的反射矩阵来进行反转。(这应该只是另一种反映?)
这是我的反射矩阵(它转换相机的视图矩阵):
glm::mat4 matReflection(
1.f -2.f *n.x *n.x,-2.f *n.x *n.y,-2.f *n.x *n.z,-2.f *n.x *d,
-2.f *n.x *n.y,1.f -2.f *n.y *n.y,-2.f *n.y *n.z,-2.f *n.y *d,
-2.f *n.x *n.z,-2.f *n.y *n.z,1.f -2.f *n.z *n.z,-2.f *n.z *d,
0.f,0.f,0.f,1.f
);N=反射平面的法线;d=平面的距离
有没有可能通过矩阵变换来颠倒顶点顺序?如果是这样的话,具体是怎么做的?
发布于 2014-06-07 18:08:59
如果您在所有其他转换(包括投影)之后应用矩阵将 y 轴缩放 -1,您将得到一个颠倒的图像(您可以通过包含类似 uv.y = 1-uv. y 管道中的某个位置)。
https://stackoverflow.com/questions/24095804
复制相似问题