上云无忧 > 文档中心 > 百度智能云虚拟现实核心技术套件 VRCORE iOS SDK
VR虚拟现实
百度智能云虚拟现实核心技术套件 VRCORE iOS SDK

文档简介:
安装: 环境准备: 1.运行环境,iOS12及以上 2.鉴权和认证 要使用百度智能云产品,您需要拥有一个百度智能云账号和一个有效的 AK(Access Key ID)、SK(Secret Access Key)用来进行签名认证。 可以通过如下步骤获得并了解您的AK/SK信息:
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

安装

环境准备

1.运行环境,iOS12及以上 2.鉴权和认证 要使用百度智能云产品,您需要拥有一个百度智能云账号和一个有效的 AK(Access Key ID)、SK(Secret Access Key)用来进行签名认证。 可以通过如下步骤获得并了解您的AK/SK信息:

  • 注册百度智能云账号
  • 创建AK/SK

下载和安装

SDK

  1. 从此处下载 Phoenix_release_{verison}.tar.gz。(version为具体版本号)
  2. 解压
  3. 导入Phoenix.xcframework到工程里

Demo

  1. 从此处下载Demo。
  2. 解压
  3. 请求授权接口填入申请的AK,SK。

具体功能

全景:全景图渲染,相机操作,多种交互模式,热点等 环物:环物渲染,手势操作,多种交互模式,热点等

快速入门

本节介绍如何快速使用Phoenix SDK完成常见操作。

请求授权

Phoenix SDK 使用前需要进行初始化,传入申请的 ak sk,依据回调结果进行后续操作。

PhoenixSDK.shared.authorize(ak: "your-access-key-id", sk: "your-secret-access-key", 
complete: { error in if error == nil { print("授权成功") } else { print("授权失败") } })

全景

目前全景图支持四种渲染类型,分别是 cube 散图、cube 雪碧图、单张全景图和分级分块图。

  1. 初始化

首先创建 PanoConfiguration:

let config = PanoConfiguration(resource: resourceString)

用户可对配置PanoConfiguration进行设置:

// 是否开启入场动画 config.enableEnterAnimation = false // 初始视角 config.cameraAngle = 0 
// 渲染分级分块图时,设置瓦片图加载延迟 ,默认500ms config.tileUpdateDuration = 0

初始化PanoView:

// 第一种方式 let panoView = PanoView(frame: view.frame, configuration: config) 
// 第二种方式 let panoView = PanoView(frame: view.frame) panoView.updateConfiguration(configuration: config)

  1. 添加热点

// 创建自定义热点View let helloHotspot = HelloPanoHotspot() helloHotspot.frame = CGRect
(x: 0, y: 0, width: 42, height: 42) // 初始PanoViewHotspot let hotspot = PanoViewHotsp
ot(view: helloHotspot, x: 0, y: -20, z: -80) //添加到panoView中 panoView?.add(hotspot: hotspot)

  1. 删除热点
// 删除热点 panoView?.remove(hotspot: hotspot) // 删除所有热点 panoView?.removeAllHotspots()
  1. 动画

// 属性动画 let animation = CABasicAnimation(keyPath: "eulerAngles.y") animation.byV
alue = degreeToRadians(angle: 360) animation.duration = 10 panoView?.camera?.add(ani
mation, forKey: "camera") // 开始自动旋转 (默认10s一圈) panoView?.startAutoRotate(d
uration: 10, isReverse: Bool = false) // 停止自动旋转 panoView?.stopAutoRotate()

环物

  1. 初始化

首先创建 SpinConfiguration:

let config = SpinConfiguration(resource: resourceString)

初始化SpinView:

// 第一种方式 let spinView = SpinView(frame: view.frame, configuration: config) //
 第二种方式 let spinView = SpinView(frame: view.frame) panoView.updateConfiguration(configuration: config)

  1. 添加热点

// 创建自定义热点View let helloHotspot = HelloPanoHotspot() helloHotspot.frame = CGRect(x: 
0, y: 0, width: 50, height: 50) // 初始PanoViewHotspot let hotspot = SpinHotspot(view: hel
loHotspot, row: 0, column: 0, x: 0.5, y: 0.5) //添加到panoView中 spinView?.add(hotspot: hotspot)

  1. 删除热点
// 删除热点 spinView?.remove(hotspot: hotspot) // 删除所有热点 spinView?.removeAllHotspots()
  1. 动画

// 属性动画 let columnAnimation = CABasicAnimation(keyPath: SpinAnimationP
roperty.column) columnAnimation.fromValue = 0 columnAnimation.toValue = 18 
columnAnimation.duration = 2 spinView?.add(columnAnimation, forKey: "columnAnimation")

API及参数

全景

PanoView接口列表
接口 描述
updateConfiguration(configuration: PanoConfiguration) 更新当前配置
switchView(configuration: PanoConfiguration) 切换当前配置
add(hotspot: PanoHotspot) 增加热点
remove(hotspot: PanoHotspot) 删除热点
startAutoRotate(duration: Double = 10, isReverse: Bool = false) 开始自动旋转 (默认10s一圈)
stopAutoRotate() 停止自动旋转
snapshot() -> UIImage 获取View截图
PanoView属性列表
属性 类型 描述
delegate PanoViewDelegate 设置delegate
isPinchEnabled Bool 是否开启pinch(默认开启)
isMotionEnabled Bool 是否开启陀螺仪(默认关闭)
isPitchEnabled Bool 是否开启Pitch(默认开启)
isPanEnabled Bool 是否开启Pan(默认开启)
camera PanoCamera 获取场景相机
PanoCamera接口列表
接口 描述
rotateBy(x: Float, y: Float, z: Float) 旋转Camera
rotateTo(x: Float, y: Float, z: Float) 旋转Camera
add(_ anim: CAAnimation, forKey key: String?) 增加动画
removeAnimation(forKey key: String) 删除动画
PanoCamera属性列表
属性 类型 描述
minPitch Float 获取/设置最小Pitch
maxPitch Float 获取/设置最大Pitch
minFov Float 获取/设置最小fov
maxFov Float 获取/设置最大fov
fov Float 获取/设置fov
PanoViewDelegate接口列表
接口 描述
func panoViewLoadStart(_ view: PanoView) 场景加载开始
func panoViewLoadFinish(_ view: PanoView, error: Error?) 场景加载结束
func panoViewLoadTileFailed(_ view: PanoView, error: Error?) 瓦片资源加载失败
func panoViewPanGestureBegin(_ view: PanoView) pan手势开始
func panoViewPanGestureEnd(_ view: PanoView) pan手势结束

环物

SpinView接口列表
接口 描述
spinTo(row: Int?, column: Int? = nil) 旋转Row Column
spinBy(row: Int?, column: Int?) 旋转Row Column
spinRound() 旋转一周
pan(to point: CGPoint) 移动到指定位置(0~1)
panToCenter() 移动到中间
zoomTo(scale: CGFloat) 放大当前图片
reset() 重置当前图片
add(_ anima: CAAnimation, forKey: String? = nil) 执行动画
removeAnimation(forKey: String) 删除动画
updateConfiguration(config: SpinConfiguration) 更新当前配置
add(hotspot: SpinHotspot) 增加热点
remove(hotspot: SpinHotspot) 删除热点
showHotspot() 显示热点
hideHotspot() 隐藏热点
SpinView属性列表
属性 类型 描述
delegate SpinViewDelegate 设置delegate
row Int 当前Row
column Int 当前Column
rowCount Int 当前行数
columnCount Int 当前列数
scale Int 当前缩放
isZoomEnabled Bool 是否开启zoom(默认开启)
isPanEnabled Bool 是否开启Pan(默认开启)
isSpinEnabled Bool 是否开启Spin(默认开启)
SpinViewDelegate接口列表
接口 描述
func spinViewLoadStart(_ view: SpinView) 场景加载开始
func spinViewLoadFinish(_ view: SpinView, error: Error?) 场景加载结束
func spinViewLoadCoverFinish(_ view: SpinView, error: Error?) view cover load finish
func spinViewLoadTileFailed(_ view: SpinView, error: Error?) 瓦片资源加载失败
func spinViewScaleChanged(_ view: SpinView, scale: CGFloat) scale变化
func spinViewRoundStart(_ view: SpinView) 旋转一周开始
func spinViewRoundFinish(_ view: SpinView) 旋转一周结束
func spinViewPanGestureBegin(_ view: SpinView) pan手势开始
func spinViewPanGestureEnd(_ view: SpinView) pan手势结束

版本变更记录

发布时间 功能概述
2021-10 首次发布:支持全景和环物渲染、展示、动画、手势交互等功能

相似文档
  • 根据使用平台的不同,我们一共提供3款SDK。 WEB SDK: 环物: https://vrsdk.cdn.bcebos.com/vr-suite/Web/2.0.0/hydreigon.spintileviewer.min.js 全景图: https://vrsdk.cdn.bcebos.com/vr-suite/Web/2.0.0/hydreigon.panoviewer.min.js
  • IoT Stack 是基于百度智能云物联网核心套件、智能边缘、时序时空数据库等自研 IoT 组件打造的私有化部署物联网云平台,为企业提供自主可 控、安全隔离、智能化的专有平台,解决客户数据存储安全可控、安全隐私高要求的 存储场景,帮助客户聚焦业务。
  • IoT Stack云平台: 面向中大型企业客户自建专属物联网平台服务,满足企业内高性能、可横向扩展的物联云网平台,助力企业物联网业务创新。
  • 平台以物模型和数据交互协议 Blink 为顶层规范,基于标准的物模型提供设备信 息模型构建能力,帮助开发、业务人员在云端构建真实设备的数字化模型,实现真实设备与云端数字孪生的实时映射。搭配标准的数据交互协议,共同实现对设备的统一描述、统一接口、统一管控,解耦设备硬件与业务应用,加速业务应用系统开发,帮助客户解放资源专注业务。
  • 标准化物模型: 定义标准物模型规范,支持使用属性、事件、服务描述设备,统一设备描述语言。 安全可靠: 支持设备安全认证,可通过 TLS/SSL 双向认证保证设备数据安全传输。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部