如何控制 THREE.PerspectiveCamera 的透视变形
How to controll perspective distortion of THREE.PerspectiveCamera
我的目标是渲染 collada 对象并将其完美地放置在带有该对象的图像上。
假设我有一个由 v-ray 渲染器在 3ds max 中渲染的图像(绿色)
和 collada 对象,我使用透视相机(红色的)由三个 js 渲染。
问题是渲染对象的透视变形比图像更大。
我看到 THREE.PerspectiveCamera
有 focus
属性,这似乎是我要找的。但是当我改变它时,什么也没有发生。
THREEJS 文档说:
.focus
Object distance used for stereoscopy and depth-of-field effects. This
parameter does not influence the projection matrix unless a
StereoCamera is being used.
但是我在三个js文档中没有找到任何关于StereoCamera的信息。
有人可以帮我解决这个问题吗?
最好更改 PerspectiveCamera
的 FOV。
camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 1, 3000);
所以,第一个参数60
是视野(FOV)。此参数的值越小,失真就越小,但您必须向后移动相机以保持场景的适当视图的次数越多,或者您必须缩小对象的比例就越多。取决于你想要得到什么,玩弄你相机的 FOV 和你的对象的缩放。
我的目标是渲染 collada 对象并将其完美地放置在带有该对象的图像上。
假设我有一个由 v-ray 渲染器在 3ds max 中渲染的图像(绿色)
和 collada 对象,我使用透视相机(红色的)由三个 js 渲染。
问题是渲染对象的透视变形比图像更大。
我看到 THREE.PerspectiveCamera
有 focus
属性,这似乎是我要找的。但是当我改变它时,什么也没有发生。
THREEJS 文档说:
.focus
Object distance used for stereoscopy and depth-of-field effects. This parameter does not influence the projection matrix unless a StereoCamera is being used.
但是我在三个js文档中没有找到任何关于StereoCamera的信息。
有人可以帮我解决这个问题吗?
最好更改 PerspectiveCamera
的 FOV。
camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 1, 3000);
所以,第一个参数60
是视野(FOV)。此参数的值越小,失真就越小,但您必须向后移动相机以保持场景的适当视图的次数越多,或者您必须缩小对象的比例就越多。取决于你想要得到什么,玩弄你相机的 FOV 和你的对象的缩放。