相机旋转至相反方向进行变形

时间:2018-07-11 14:32:06

标签: javascript 3d

首先,这不是任何游戏引擎的问题。我将使用我在Unity中学到的一些术语。

我尝试自己制作3D引擎,或更像是Web浏览器的3D渲染器。 我以为这会是地狱,但是坦率地说,我要做的就是绕3个相机轴旋转世界。我添加了一种制作模型的方法,甚至制作了一个三角形填充功能(然后意识到HTML canvas可以单独做到这一点)。一切都很好,对吧?但是后来我添加了旋转相机并移动它。它工作正常,但是在我旋转了多个轴之后,发生了一些奇怪的事情。

我进行了一些调试,这意味着我添加了第二个摄像机,该摄像机可以看到第一个摄像机的FOV,然后我注意到,相对于相对于Z轴旋转的变换,该摄像机看起来是相对的相对角度这是旋转(也称为[0,0,0]状态)的标识。 是的,我尝试过翻转相机的角度,同时保留了它的变换角度,但是实际上什么也没做。

我尝试做很多数学运算,也尝试更改其他内容,但这只会使事情更加混乱。

我真的无法弄清楚问题出在哪里,所以我问你。很明显,该代码太大了,无法粘贴到该线程中,因此我将提供指向gitHub rep的链接:https://github.com/Flutterish/3D-rendering

这需要我的其他代表QOL才能工作:https://github.com/Flutterish/JavaScript-QOL

控件是WASD空间,用于移动和Shift键,以及箭头键,Q和E用于旋转。您将在彼此之上有两个视图。顶部是预览相机的位置,底部是该相机的视图。线条显示了该相机的方形FOV。如果正方形在旋转时在底部摄像头上静止不动,您将知道已修复它。

我真的很感激,如果有人对3个维度的存在一两件事有所帮助,谢谢!

0 个答案:

没有答案