如何操作 three.js 中的棋子

How to manipulate frustum in three.js

我看到了这个伟大的视差视图实现,它创造了一种深度错觉,我想在 Three.js 中构建类似的东西。

http://www.anxious-bored.com/blog/2018/2/25/theparallaxview-illusion-of-depth-by-3d-head-tracking-on-iphone-x

但是,似乎需要一个 non-symmetric 相机视锥体。这意味着相机的截锥体以某种方式固定到渲染对象上。

我的问题是,如何在 three.js 中实现这一点?是否可以操纵截锥体的角或截锥体的边?

在这里你可以看到我相机的俯视图。

直视对象

向左移动相机后

您可以使用 setViewOffset 来倾斜截锥体。您也可以直接操作相机投影矩阵。

我的问题的解决方案是 pailhead 已经建议的投影矩阵。 更改矩阵数组的 8. 和 9. 索引会在 x 和 y 方向上进行仿射变换。

https://i.stack.imgur.com/Qrjb0.png