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

标签 javascript matrix 3d webgl

当对象被镜像时(各轴尺度向量的乘积 < 0),需要反转剔除模式以防止视觉伪影。 (仅背面可见)

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

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

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

gl.cullFace(gl.FRONT)

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

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

最佳答案

您可以检查 determinant 是否你的转换矩阵的值为负。这也可以解释为 "handedness" 中的更改你的坐标空间。

关于javascript - OpenGL中检测矩阵是否镜像对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40344821/

相关文章:

java - 如何使用排列字符串迭代二维数组?

c++ - 3D vector 的 SSE 对齐

javascript - 检查字符串中的特定字符

javascript - css scrollLeft 动画垂直移动 body

javascript - 尝试使用模拟器测试 Firestore 安全规则时总是出现超时错误

c++ - 如何获取和比较数据?

r - 为什么 model.matrix 这么慢?

html - 仅使用 CSS 渐变创建立方体

c# - Unity3D - 防止3D角色在空中改变方向

javascript - 如何检测在数据表中的完整分页类型中单击的第一个、上一个、下一个、最后一个按钮