Skip to content

Camera (JavaScript)

Camera

Scripting Name:Insight.Camera

摄像机。

  • _在 Web _SDK__中无效

Properties


aspect

type : number

(只读)透视投影的长宽比。

cameraToWorldMatrix

type : Insight.Matrix4x4

(只读)相机空间到世界空间的变换矩阵。

cullingMask

type :number

可见性掩码。

对于一个 GameObject,必须所有 mask 为 1 的位在 cullingMask 中也为 1 才是可见的。

例 1,mask=1111,cullingMask=1111,这个 GameObject 可见

例 2,mask=1111,cullingMask=1110,这个 GameObject 不可见

例 3,mask=0001,cullingMask=0011,这个 GameObject 可见

depth

type :number

(只读)该 Camera 组件的优先级信息。

渲染时所有的 Camera 按照 depth 值从小到大排序,depth 小的 Camera 将被优先渲染。

estimationSHIntensity

type :number

(只读,AR 独有)真实相机(手机摄像头)中环境球谐光照强度的估算值。调用一次 Tracking 类中的 EstimateIllumination()方法可使 estimationSHIntensity 更新。

farClipPlane

type :number

(只读)透视投影的远平面。

fieldOfView

type :number

(只读)透视投影的 Y 方向视场角。

nearClipPlane

type :number

(只读)透视投影的近平面。

orthographic

type :number

(只读)是否为正交投影(总是返回 false)。

pixelHeight

type :number

(只读)该 Camera 组件的视口高度,以像素为单位。

pixelRect

type :Insight.Vector4

(只读)该 Camera 组件的视口矩形,以像素为单位。其中坐标系以左下角为(0,0)点。

pixelWidth

type :number

(只读)该 Camera 组件的视口宽度,以像素为单位。

projectionMatrix

type :Insight.Matrix4x4

(只读)投影矩阵。

rect

type :Insight.Vector4

(只读)该 Camera 组件的视口矩形。视口坐标系左下角为(0,0),右上角为(1,1)。

worldToCameraMatrix

type :Insight.Matrix4x4

(只读)世界空间到相机空间的变换矩阵。

Methods


toString

public string toString();

将 camera 内容以一定格式转为 string 类型。

// sample:
var camera = Insight.GameObject.Find("Main Camera").getComponent("Camera", 0);Insight.Debug.Log(camera.toString());

getPostEffectMaterial

public Insight.Material getPostEffectMaterial( number index );

获得 PostEffect 的 Material 对象。

Parameters index : number 材质索引

screenPointToRay

public Insight.Ray screenPointToRay( Insight.Vector3 position );

返回一条从摄像机位置发出通过屏幕上一点的射线。

这条射线在世界空间中,起始于摄像机的近平面,通过屏幕上一点 position,像素坐标为(x, y),position 的 z 是被忽略的。

屏幕坐标系以左下角为(0,0),右上角为(pixelWidth-1,pixelHeight-1)。

Parameters position : Insight.Vector3 屏幕上点的坐标

screenToViewportPoint

public Insight.Vector3 screenToViewportPoint( Insight.Vector3 position );

将屏幕空间中一点转换到视口空间。

屏幕坐标系以左下角为(0,0),右上角为(pixelWidth-1,pixelHeight-1)。 视口坐标系左下角为(0,0),右上角为(1,1)。

Parameters position : Insight.Vector3 屏幕上点的坐标

screenToWorldPoint

public Insight.Vector3 screenToWorldPoint( Insight.Vector3 position );

将屏幕空间中一点转换到世界空间。

Parameters position : Insight.Vector3 屏幕上点的坐标,z 为世界空间中点到相机平面的距离。

viewportPointToRay

public Insight.Ray viewportPointToRay( Insight.Vector3 position );

返回一条从摄像机位置发出通过视口坐标系中一点的射线。

视口坐标系左下角为(0,0),右上角为(1,1)。

Parameters position : Insight.Vector3 视口坐标系中点的坐标

viewportToScreenPoint

public Insight.Vector3 viewportToScreenPoint( Insight.Vector3 position );

将视口空间中一点转换到屏幕空间。

屏幕坐标系以左下角为(0,0),右上角为(pixelWidth-1,pixelHeight-1)。 视口坐标系左下角为(0,0),右上角为(1,1)。

Parameters position : Insight.Vector3 视口坐标系中点的坐标

viewportToWorldPoint

public Insight.Vector3 viewportToWorldPoint( Insight.Vector3 position );

将视口空间中一点转换到世界空间。

视口坐标系左下角为(0,0),右上角为(1,1)。

Parameters position : Insight.Vector3 视口坐标系中点的坐标

worldToScreenPoint

public Insight.Vector3 worldToScreenPoint( Insight.Vector3 position );

将世界空间中一点转换到屏幕空间。

屏幕坐标系以左下角为(0,0),右上角为(pixelWidth-1,pixelHeight-1)。

Parameters position : Insight.Vector3 世界空间中点的坐标

save

public void save( string filename, int x, int y, int w, int h );

保存为图片。(SDK 专用)

图片不会立即保存,而是在 Render 之后保存,需要在下一帧才能拿到渲染完成的图片

如果在同一帧中多次调用,则只会保存一次,保存用到的参数为最后一次调用的参数

Parameters filename : 保存图片到名称 x : int 要截取的保存图片的左上角起始 x 坐标 y : int 要截取的保存图片的左上角起始 y 坐标 w : int 要保存图片的宽 h : int 要保存图片的高

calculateObliqueMatrix

public Insight.Matrix4x4 calculateObliqueMatrix( Insight.Vector4 plane );

计算斜近平面的投影矩阵

给定一个裁剪平面向量,此函数返回相机的投影矩阵,该投影矩阵将此裁剪平面设置为其近平面

Parameters plan : Insight.Vector4 裁剪平面

Inherited Properties(继承自 Component)


enabled

type : boolean

该组件是否是可用的。

gameObject

type : Insight.GameObject

(只读)该组件所依附的 GameObject。

isActiveAndEnabled

type : boolean

(只读)该组件是否可用,且其依附的 GameObject 是否是活跃状态。

name

type : string

(只读)所依附的 GameObject 的名称。

tag

type : string

(只读)所依附的 GameObject 的 Tag。

⚠️ 暂时未启用

transform

type : Insight.Transform

(只读)所依附的 GameObject 的 transform。