正交相机(OrthographicCamera)

优质
小牛编辑
137浏览
2023-12-01

这一摄像机使用orthographic projection(正交投影)来进行投影。

在这种投影模式下,无论物体距离相机距离远或者近,在最终渲染的图片中物体的大小都保持不变。

这对于渲染2D场景或者UI元素是非常有用的。

代码示例

const camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 );
scene.add( camera );

例子

camera
interactive / cubes / ortho
materials / cubemap / dynamic
postprocessing / advanced
postprocessing / dof2
postprocessing / godrays
rtt
shaders / tonemapping
shadowmap

构造器

OrthographicCamera( left : Number, right : Number, top : Number, bottom : Number, near : Number, far : Number )

left — 摄像机视锥体左侧面。
right — 摄像机视锥体右侧面。
top — 摄像机视锥体上侧面。
bottom — 摄像机视锥体下侧面。
near — 摄像机视锥体近端面。
far — 摄像机视锥体远端面。

这些参数一起定义了摄像机的viewing frustum(视锥体)。

属性

共有属性请参见其基类Camera
请注意,在大多数属性发生改变之后,你将需要调用.updateProjectionMatrix来使得这些改变生效。

.bottom : Float

摄像机视锥体下侧面。

.far : Float

摄像机视锥体远端面,其默认值为2000

该值必须大于near plane(摄像机视锥体近端面)的值。

.left : Float

摄像机视锥体左侧面。

.near : Float

摄像机视锥体近端面。其默认值为0.1.

其值的有效范围介于0和far(摄像机视锥体远端面)之间。
请注意,和PerspectiveCamera不同,0对于OrthographicCamera的近端面来说是一个有效值。

.right : Float

摄像机视锥体右侧面。

.top : Float

摄像机视锥体上侧面。

.view : Object

这个值是由setViewOffset来设置的,其默认值为null

.zoom : number

获取或者设置摄像机的缩放倍数,其默认值为1

方法

共有方法请参见其基类Camera

.setViewOffset ( fullWidth : Float, fullHeight : Float, x : Float, y : Float, width : Float, height : Float ) : null

fullWidth — 多视图的全宽设置
fullHeight — 多视图的全高设置
x — 副摄像机的水平偏移
y — 副摄像机的垂直偏移
width — 副摄像机的宽度
height — 副摄像机的高度

在较大的viewing frustum(视锥体)中设置偏移量,对于多窗口或者多显示器的设置是很有用的。 对于如何使用它,请查看PerspectiveCamera中的示例。

.clearViewOffset () : null

清除任何由.setViewOffset设置的偏移量。

.updateProjectionMatrix () : null

更新摄像机投影矩阵。在任何参数被改变以后必须被调用。

.toJSON (meta : Object) : Object

meta -- 包含有元数据的对象,例如对象后代中的纹理或图像
将摄像机转换为 three.js JSON Object/Scene format(three.js JSON 物体/场景格式)。

源代码

src/cameras/OrthographicCamera.js