1、SCNView

  在macOS中,SCNView是NSView的子类,在iOS和tvOS中,SCNView是UIView的子类。SCNView用于显示SceneKit的3D场景,而需要设置场景的相关内容和属性需要通过SCNScene。SCNView需要遵循SCNSceneRenderer协议和SCNTechniqueSupport协议。

2、相关API简介

  • 初始化方法  
  1. - (instancetype)initWithFrame:(CGRect)frame options:(nullable NSDictionary<NSString *, id> *)options;
  • 设置SCNScene场景
  1. @property(nonatomic, retain, nullable) SCNScene *scene;
  • 对视图进行配置
  1. //视图在什么时候重绘
  2. //当YES时,视图在显示链接帧速率上继续重绘。
  3. //当设NO时,该视图将只在某些改变或在接收器场景中动画时重新绘制。默认为NO。
  4. @property(nonatomic, assign) BOOL rendersContinuously;
  5. //设置动画帧速率
  6. @property(nonatomic) NSInteger preferredFramesPerSecond API_AVAILABLE(macos(10.12));
  7. //设置抗锯齿模式me局
  8. @property(nonatomic) SCNAntialiasingMode antialiasingMode API_AVAILABLE(macos(10.10));
  • 相机管理控制
  1. //允许操纵相机,用户可以改变视角的位置和方向
  2. @property(nonatomic) BOOL allowsCameraControl;
  3.  
  4. //allowsCameraControl为YES时 获取当前相机的相关配置(只读属性)
  5. @property(nonatomic, readonly) id <SCNCameraControlConfiguration> cameraControlConfiguration API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
  6.  
  7. //allowsCameraControl为YES时 获取默认相机控制器
  8. @property(nonnull, nonatomic, readonly) SCNCameraController* defaultCameraController API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
  • 在视图的场景中播放动作和动画
  1. //恢复播放视图的场景。
  2. - (IBAction)play:(nullable id)sender;
  3.  
  4. //暂停视图场景的播放。
  5. - (IBAction)pause:(nullable id)sender;
  6.  
  7. //停止回放视图的场景,并将场景时间重置到其开始时间
  8. - (IBAction)stop:(nullable id)sender;
  • 其它方法
  1. //指定与接收器相关的EAGL上下文。
  2. //如果当前API为金属,则此属性返回零,并没有影响。
  3. @property(nonatomic, retain, nullable) EAGLContext *eaglContext;
  4.  
  5. //截屏
  6. - (UIImage *)snapshot API_AVAILABLE(macos(10.10));
  • 相关枚举和结构体
  1. #if defined(SWIFT_SDK_OVERLAY2_SCENEKIT_EPOCH) && SWIFT_SDK_OVERLAY2_SCENEKIT_EPOCH >= 3
  2. typedef NSString * SCNViewOption NS_STRING_ENUM;
  3. #else
  4. typedef NSString * SCNViewOption;
  5. #endif
  6.  
  7. //SCNRenderingAPI
  8. FOUNDATION_EXTERN SCNViewOption const SCNPreferredRenderingAPIKey API_AVAILABLE(macos(10.11), ios(9.0)) __WATCHOS_UNAVAILABLE;
  9.  
  10. //The value is directly a id <MTLDevice>. 金属
  11. FOUNDATION_EXTERN SCNViewOption const SCNPreferredDeviceKey API_AVAILABLE(macos(10.11), ios(9.0));
  12.  
  13. //The value is a NSNumber wrapping a BOOL. Defaults to NO. 非金属
  14. FOUNDATION_EXTERN SCNViewOption const SCNPreferLowPowerDeviceKey API_AVAILABLE(macos(10.11), ios(9.0));
  15.  
  16. #define SCNViewOptionPreferredRenderingAPI SCNPreferredRenderingAPIKey
  17. #define SCNViewOptionPreferredDevice SCNPreferredDeviceKey
  18. #define SCNViewOptionPreferLowPowerDevice SCNPreferLowPowerDeviceKey
  19.  
  20. //相机控制器相关信息
  21. API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
  22. @protocol SCNCameraControlConfiguration <NSObject>
  23. @property(nonatomic, assign) BOOL autoSwitchToFreeCamera;
  24. @property(nonatomic, assign) BOOL allowsTranslation;
  25. @property(nonatomic, assign) CGFloat flyModeVelocity; // in m/s
  26. @property(nonatomic, assign) CGFloat panSensitivity;
  27. @property(nonatomic, assign) CGFloat truckSensitivity;
  28. @property(nonatomic, assign) CGFloat rotationSensitivity;
  29. @end

iOS开发之SceneKit框架--SCNView.h的更多相关文章

  1. iOS开发之SceneKit框架--SCNParametricGeometry.h

    1.SCNParametricGeometry简介 SCNParametricGeometry用于创建简单的3D模型,比如SCNPlane 平面.SCNPyramid 锥形(金字塔).SCNBox 立 ...

  2. iOS开发之SceneKit框架--SCNNode.h

    1.SCNNode简介 SCNNode是场景图的结构元素,表示3D坐标空间中的位置和变换,您可以将模型,灯光,相机或其他可显示内容附加到该元素.也可以对其做动画. 2.相关API简介 初始化方法 // ...

  3. iOS开发之SceneKit框架--SCNAction.h

    1.SCNAction简介 主要负责节点SCNNode的属性,实现node的渐变.移动.出现.消失.实现动画等. 2.相关API 节点的移动(earthNode的初始坐标(5,0,0)) //从当前位 ...

  4. iOS开发之SceneKit框架--SCNLight.h

    1.SCNLight简介 用于添加光源,连接到一个节点照亮现场,可以给场景添加不同的灯光,模拟逼真的环境. 2.四种灯光的简介 添加一个box立方体.一个tube圆柱管道和一个地板floor,没有灯光 ...

  5. iOS开发之SceneKit框架--SCNCamera.h

    1.SCNCamera简介 被称为照相机或者摄像机,可以附加到节点以提供显示场景的角度.其实就是用户视角和人的眼睛一样. 2.相关API简介 初始化 //懒加载 + (instancetype)cam ...

  6. iOS开发之SceneKit框架--SCNGeometry.h

    1.SCNGeometry简介 SCNGeometry负责呈现三维模型的类,它管理者物体的形状.纹理等.它可以由SCNGeometrySource和SCNGeometryElement来构造, 一个S ...

  7. iOS开发之SceneKit框架--SCNScene.h

    1.SCNScene SCNScene是一个场景图——具有附加几何形状.光照.摄像机和其他属性的节点的层次结构,共同形成可显示的3D场景. 2.相关API简介 初始化方法 //懒加载 + (insta ...

  8. iOS开发之SceneKit框架--加载多个模型.dae/.scn文件

    1.通过SCNGeometry或子类SCNParametricGeometry创建 相关链接:iOS开发之SceneKit框架--SCNGeometry.h iOS开发之SceneKit框架--SCN ...

  9. iOS开发之SceneKit框架--实战地月系统围绕太阳旋转

    1.创建地月太阳系统scn文件 注意:moon在earth结构下,earth和moon在sun结构下. 2.获取scn中模型的对应节点和自转(太阳为例) 获取节点: name是对应的Identity字 ...

随机推荐

  1. composer 的安装以及一些插件的下载等

    安装composer: 下载composer: curl -sS https://getcomposer.org/installer | php 将composer.phar文件移动到bin目录以便全 ...

  2. jq-demo-拖拽

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. NOIp2018集训test-9-4

    老张让我们2.5h考NOI%你题,喵喵喵? 因为今(我)天(实)的(在)题(太)鬼(弱)畜(了)了,我还只改了t1. Problem A. reorder 考试的时候大家都写了最长不降子序列,然后全员 ...

  4. c语言NULL和0区别及NULL详解

      先看下面一段代码输出什么: #include<stdo.h> int main() { int *p=NULL; printf("%s",p); } 输出<n ...

  5. LeetCode 627. Swap Salary (交换工资)

    题目标签: 题目给了我们一个 工资表格,让我们把 男女性别对换. 这里可以利用IF, IF(condition, value_if_true, value_if_false). Java Soluti ...

  6. JVM常用命令行工具1

    1.jps [options][hostid]:查看虚拟机进程状况 -l 输出主类全名,如果进程执行的是jar包,输出jar包路径.-q 只输出LVMID. -m输出虚拟机进程启动时传递给主类main ...

  7. Portainer Exec Container 失败解决方案

    近日,将portainer服务挂了个域名,然后用Nginx代理的时候发现不能attach容器了,经过搜索在issue 找到解决方案 1.修改Nginx config server { listen 8 ...

  8. 基于Netty的RPC架构学习笔记(六):netty5案例学习

    文章目录 netty5服务端入门案例 netty5客户端入门案例 单客户端多连接程序 知识普及 线程池原理图 对象池原理图 对象组原理图 结论 理论结合实际 开干开干 总结 netty5服务端入门案例 ...

  9. sql 保存,性能高

    INSERT INTO TABLE( Id, Name) VALUES ( 4, 'A'), ( 5, 'P' ),( 6, 'U') ; INSERT INTO TABLE( Id, Name) S ...

  10. pop&dismiss

    //dismiss到根视图 - (void)dismissToRootViewController{ UIViewController *vc = self; while (vc.presenting ...