资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

相机控制

ARCamera:ARNode

渲染相机类。

Public methods
ARCamera project
将世界坐标系中的一个点投影为屏幕坐标点
ARCamera unproject
将屏幕坐标上的一个点反投影成当前世界坐标系中的一个点
ARCamera is_visible_in_frustum
判断一个节点的包围盒是否在视椎体的可视区域内
ARCamera Key-Value Coding support
KVC支持

project

API起始版本:190

ARVec2 project(ARVec3 position);

将世界坐标系中的一个点投影为屏幕坐标点

Parameter

  • ARVec3 |position 世界坐标系中的一个点的位置

Return

  • ARVe2|屏幕坐标点,其中x, y为对应屏幕坐标
sample:

camera = scene:get_active_camera()

local world_pos = ARVec3:new_local(100, 20, 42)
local screen_point = camera:project(world_pos)
io.write("projected screen point: "..screen_point:to_string())

unproject

API起始版本:190

ARVec3 unproject(ARVec2 screen_point, float depth);

将屏幕坐标上的一个点反投影成当前世界坐标系中的一个点

Parameter

  • ARVec2 | screen_point 屏幕坐标点
  • float | depth 指定的/假设的屏幕点对应的世界坐标系中的点的深度

Return

  • ARVec3 | 世界坐标系中的一个位置点
sample:

camera = scene:get_active_camera()
local screen_point = ARVec2:new_local(100, 20)
local world_pos = camera:unproject(screen_point, 1000)
io.write("result point in worldspace: "..world_pos:to_string())

is_visible_in_frustum

API起始版本:190

bool is_visible_in_frustum(BoundingBox *box);

判断一个节点的包围盒是否在视椎体的可视区域内,当所有包围盒的点都不在视锥体内返回false,其余返回true

Parameter

  • BoundingBox | box 对应节点的包围盒

Return

  • bool | 给定节点是否在可视区内
sample: 

camera = scene:get_active_camera() 
local bounding_box = node1:get_bounding_box()
local visible = camera:is_visible_in_frustum(bounding_box)
io.write("is node1 visible in the frusum now? "..tostring(visible))

Key-Value Coding support

API起始版本:190

set_property

void set_property_float(const std::string &key, float value);
void set_property_mat44(const std::string &key, ae::ARMat44 value);

通过给定的Key和Value设置当前对象对应Key和类型的属性的值

get_property

float get_property_float(const std::string &key);
ae::ARMat44 get_property_mat44(const std::string &key);

通过给定的Key来获取当前对象对应属性的值

可用的Key和对应的类型如下:

Key 类型 描述 默认值 适用性 备注
view_matrix ae::ARMat44 渲染相机的视图矩阵 从场景配置文件中加载的相机配置计算得默认值 set & get
projection_matrix ae::ARMat44 渲染相机的投影矩阵 从场景配置文件中加载的相机配置计算默认值 get only
fov float 相机的视场角 由SDK层设置, 默认为56° set & get
z_near float 视椎体近平面的距离 1 set & get
z_far float 视椎体远平面的距离 100 set & get

备注:因为ARCamera继承于ARNode,也是一个ARNode,所以 ARNode中的Property也适用于ARCamera。

上一篇
物体识别
下一篇
动画