0

我正在尝试渲染一个盒子,其中近面与显示器的角落完全对齐,但其余部分可以剪切(透视)有点像视差效果。基本上和这个一模一样。

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

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

然而,视图体积似乎在体积中心周围发生剪切,因此一旦您开始旋转,盒子的正面就会在显示区域之外摆动。

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

4

1 回答 1

0

首先将所需剪切的中心平移到中心,然后进行剪切,然后再平移回来。

于 2014-04-10T07:50:41.267 回答