检测矩阵是否镜像 OpenGL 中的对象

Detecting whether if the matrix mirrors object in OpenGL

当对象被镜像时(缩放向量的每个轴的乘积<0),需要反转剔除模式以防止视觉伪影。 (只能看到背面)

如果 scaleX > 0,立方体看起来很正常:

但是如果 scaleX < 0 看起来很奇怪:

我们可以反转剔除模式来解决这个问题。

gl.cullFace(gl.FRONT)

但是,我想测试一个矩阵是否应该反转剔除。但是,由于轮换,我不确定该怎么做。

有没有办法检测矩阵是否镜像对象?

您可以只检查您的坐标 determinant of your transfromation matrix is negative. This can also be interpreted as a change in "handedness" 是否为 space。