创建OpenGL投影矩阵以剪切对象

时间:2014-04-10 07:23:26

标签: opengl matrix projection-matrix

我正在尝试渲染一个盒子,其中近脸与显示器的角完全对齐,但其余的可以剪切(有透视),有点像视差效果。基本上与this one完全相同。

我发现用我的投影矩阵乘以这个剪切矩阵会产生正确的效果:

Shear = {
   1   0  -cot(theta) 0
   0   1  -cot(phi)   0
   0   0       1      0
   0   0       0      1
}

然而视线体积似乎围绕音量中心剪切,所以一旦开始旋转,盒子的正面就会在显示区域外摇摆。

也许我可以将模型或视口转换为补偿,但这似乎是作弊。这可以使用正确的投影矩阵来完成,还是有一种很好的方法来计算需要应用于模型视图矩阵的其他平移?

1 个答案:

答案 0 :(得分:0)

首先将所需剪切的中心转换为中心,然后剪切然后平移。