是否有任何方法可以将three.js相机视图偏离中心?

kev*_*vin 1 renderer three.js

有没有办法设置Three.js渲染器,使摄像机的外观点不在渲染图像的中心?

澄清:在(0,0,0)只有一个1x1x1m立方体的场景成像.相机位于(0,0,10),并且外观点位于原点,与立方体的中心重合.如果我按原样渲染这个场景,我可能最终得到这样的东西:

正常渲染

但是我希望能够以这样的方式呈现这个场景,使得看点位于左上角,给我这样的东西:

想要渲染

如果正常图像是800x600,那么我想象的结果就好像我渲染了一个1600x1200的图像,中间有一个外观,然后裁剪掉那个正常的图像,这样只剩下右下部分.

当然,我可以改变外观以使立方体转到左上角,但后来我在一个角度下查看立方体,给我一个不希望的结果,如下所示:

test.moobels.com/temp/cube_angle.jpg

我还可以实际渲染完整的1600x1200图像并隐藏3/4的图像,但人们希望有一个更优雅的解决方案.有人知道吗?

Wes*_*ley 8

如果您希望透视摄像机具有偏心视图,则需要使用的模式为:

camera = new THREE.PerspectiveCamera( for, aspect, near, far );
camera.setViewOffset( fullWidth, fullHeight, viewX, viewY, viewWidth, viewHeight );
Run Code Online (Sandbox Code Playgroud)

请参阅文档:https://threejs.org/docs/#api/cameras/PerspectiveCamera

您可以在此示例此示例中找到此用法的示例.

three.js r.73