Threejs 透视相机PerspectiveCamera

阅读数:7 评论数:0

跳转到新版页面

分类

html/css/js

正文

这一相机使用透视投影,是3D场景的渲染中使用最普遍的投影模式。

一、构造器

PerspectiveCamera( fov : Number, aspect : Number, near : Number, far : Number )

1、fov

相机视锥体垂直视野的角度。

2、aspect

相机视锥体长宽比。

3、near

相机视锥体近端面。

4、far

相机视锥体远端面。

二、属性

1、zoom:number

相机的缩放倍数,其默认值为1.

三、方法

1、setViewOffset(fullWidth: Float,fullHeight: Float,x: Float, y: Float, width: Float,height: Float)

(1)fullWidth

多视图的全宽设置。

(2)fullHeight

多视图的全高设置。

(3)x

副相机的水平偏移。

(4)y

副相机的垂直偏移。

(5)width

副相机的宽度。

(6)height

副相机的高度。

例如,如果你有一个3x2的显示器阵列,每个显示器分辨率都是1920x1080,且这些显示器排列成像这样的网格:

+---+---+---+
| A | B | C |
+---+---+---+
| D | E | F |
+---+---+---+
		

那对于每个显示器,你可以这样来设置、调用:

var w = 1920;
var h = 1080;
var fullWidth = w * 3;
var fullHeight = h * 2;

// A
camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );
// B
camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );
// C
camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );
// D
camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );
// E
camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );
// F
camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );

当然,显示器不必具有相同的大小,或者不必在网格中。