Object3DCamera

正交相机(OrthographicCamera)

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

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

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

代码示例

const camera = new v3d.OrthographicCamera(width / - 2, width / 2, height / 2, height / - 2, 1, 1000); app.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 -- 包含有元数据的对象,例如对象后代中的纹理或图像
将摄影机转换为 Verge3D JSON Object/Scene format(Verge3D JSON 物体/场景格式)。

源代码

src/cameras/OrthographicCamera.js