Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matrix 非矩形摄像机矩阵_Matrix_Three.js_Geometry - Fatal编程技术网

Matrix 非矩形摄像机矩阵

Matrix 非矩形摄像机矩阵,matrix,three.js,geometry,Matrix,Three.js,Geometry,我的项目结合了一个投影屏幕和一个头部跟踪设备,屏幕应该作为一个窗口,通过它我可以看到我的虚拟“世界”。基本上 起初,我认为这很容易:将相机位置映射到头部跟踪,让它指向虚拟世界中我的窗口,调整相机参数以使其平截头体适合窗口,然后瞧 除了它不起作用,因为我以一个角度观察窗口(真实和虚拟),所以常规透视摄影机不起作用:如果我理解正确,摄影机“输入”总是矩形的,但我需要将其“适应”为梯形 我认为我应该能够通过制作自己的投影矩阵来实现这一点,但我对如何做到这一点有点迷茫:我曾玩过一些基本的矩阵变换(平移、

我的项目结合了一个投影屏幕和一个头部跟踪设备,屏幕应该作为一个窗口,通过它我可以看到我的虚拟“世界”。基本上

起初,我认为这很容易:将相机位置映射到头部跟踪,让它指向虚拟世界中我的窗口,调整相机参数以使其平截头体适合窗口,然后瞧

除了它不起作用,因为我以一个角度观察窗口(真实和虚拟),所以常规透视摄影机不起作用:如果我理解正确,摄影机“输入”总是矩形的,但我需要将其“适应”为梯形

我认为我应该能够通过制作自己的投影矩阵来实现这一点,但我对如何做到这一点有点迷茫:我曾玩过一些基本的矩阵变换(平移、缩放、旋转),但我对更复杂的东西(即透视)没有任何经验

目前我最好的猜测是试图从已知的变换点(窗口的角=>屏幕的角)推断投影矩阵,但我觉得每帧都要花费相当大的成本,这还不能解释“窗口”内的透视图


谢谢你的帮助

您需要使用指定了焦点(投影中心)的投影矩阵请参见您需要使用指定了焦点(投影中心)的投影矩阵请参见