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

yoo*_*818 2 javascript 3d matrix webgl

当镜像对象(缩放矢量的每个轴<0的乘积)时,需要反转剔除模式以防止视觉伪影.(只有背面可见)

如果scaleX> 0,立方体看起来正常: Culling is normal if scaleX is 1

但是如果scaleX <0,它看起来很奇怪: Culling breaks if scaleX is -1

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

gl.cullFace(gl.FRONT)
Run Code Online (Sandbox Code Playgroud)

但是,我想测试矩阵是否应该反转剔除.但是,由于轮换,我不知道如何做到这一点.

有没有办法检测矩阵是否镜像一个物体?

der*_*ass 5

你可以只检查是否决定你transfromation矩阵为负.这也可以解释为坐标空间"手性"的变化.