博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发之SceneKit框架--SCNCamera.h
阅读量:6452 次
发布时间:2019-06-23

本文共 7210 字,大约阅读时间需要 24 分钟。

1、SCNCamera简介

  被称为照相机或者摄像机,可以附加到节点以提供显示场景的角度。其实就是用户视角和人的眼睛一样。

 

2、相关API简介

  • 初始化
//懒加载+ (instancetype)camera;
  • 管理相机属性
//名字@property(nonatomic, copy, nullable) NSString *name;
  • 调整镜头角度
//决定了相机和可见表面之间的最小距离。如果一个表面离摄像机的距离比这个最小距离更近,那么表面就会被剪掉。默认为1@property(nonatomic) double zNear;//决定了相机和可见表面之间的最大距离。如果一个表面离摄像机远超过这个最大距离,那么表面就被剪掉了。默认为100@property(nonatomic) double zFar;//是否自动调整zNear和zFar值,默认为NO//YES:近距离和远平面将自动设置为在渲染时匹配整个场景的边界框。@property(nonatomic) BOOL automaticallyAdjustsZRange API_AVAILABLE(macos(10.9));
  • 管理相机视野
//相机的垂直或水平视角。默认60°@property(nonatomic) CGFloat fieldOfView API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));//相机的焦距,默认50mm@property(nonatomic) CGFloat focalLength API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));//相机成像平面的垂直尺寸,默认24mm@property(nonatomic) CGFloat sensorHeight API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));//确定视场或正投影尺度的轴是垂直还是水平。默认垂直@property(nonatomic) SCNCameraProjectionDirection projectionDirection API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
typedef NS_ENUM(NSInteger, SCNCameraProjectionDirection) {    SCNCameraProjectionDirectionVertical   = 0,//相机的视场或正投影尺度是垂直测量的。    SCNCameraProjectionDirectionHorizontal = 1,//    相机的视场或正投影尺度是水平测量的。} API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
  • 管理投影变换
//确定接收器是否使用正投影,默认为NO@property(nonatomic) BOOL usesOrthographicProjection;//这个设置决定了相机可视区域的大小。只有当usesOrthographicProjection设置为YES时才启用。//当使用正投影时,指定相机的放大倍数。默认为1.@property(nonatomic) double orthographicScale API_AVAILABLE(macos(10.9));//确定摄像机用于投影世界的投影变换。@property(nonatomic) SCNMatrix4 projectionTransform;
  • 选择要对相机可见的节点
//确定从接收者可见的节点类别。默认值是所有@property(nonatomic) NSUInteger categoryBitMask API_AVAILABLE(macos(10.10));
  • 增加景深效果的影响(景深效果是指当焦点对准某一点时,其前后都仍可清晰的范围。它能决定是把背景模糊化来突出拍摄对象,还是拍出清晰的背景。)、
//是否为相机渲染了景深模糊效果。默认为NO@property(nonatomic) BOOL wantsDepthOfField API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));//确定相机的焦点距离 默认为2.5@property(nonatomic) CGFloat focusDistance API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));//模拟的物理相机孔径,用于景深效果 默认值5.6@property(nonatomic) CGFloat fStop API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));//模拟的物理摄像机光圈的数量,以获得景深效果。默认值为6@property(nonatomic) NSInteger apertureBladeCount API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));//像素样本的数量用于创建景深模糊效果。默认为25@property(nonatomic) NSInteger focalBlurSampleCount API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
  • 添加动态模糊效果
//确定运动模糊的强度。可以做成动画。默认值为0。//强度为零意味着没有运动模糊。强度不应超过1@property(nonatomic) CGFloat motionBlurIntensity API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));
  • 添加高动态范围效果。
//是否将高动态范围(HDR)处理后效果应用到场景中。默认为NO@property(nonatomic) BOOL wantsHDR API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//对数偏差,调整SceneKit的色调映射操作的结果,场景可见亮或变暗。默认为0@property(nonatomic) CGFloat exposureOffset API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//确定最终图像中所需的平均灰度值。默认为0.18。@property(nonatomic) CGFloat averageGray API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//确定在最终图像中映射为白色的最小亮度级别。默认为1。@property(nonatomic) CGFloat whitePoint API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//在色调映射中使用的最小曝光值。默认为-15。@property(nonatomic) CGFloat minimumExposure API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//在色调映射中使用的最大曝光值。默认为-15。@property(nonatomic) CGFloat maximumExposure API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));
  • 添加自动HDR曝光适应
//否自动调整暴露水平。默认值为YES。@property(nonatomic) BOOL wantsExposureAdaptation API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//从明亮到黑暗区域自动动画曝光的相对持续时间 默认0.4@property(nonatomic) CGFloat exposureAdaptationBrighteningSpeedFactor API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//从黑暗到明亮区域自动动画曝光的相对持续时间 默认0.6@property(nonatomic) CGFloat exposureAdaptationDarkeningSpeedFactor API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));
  • 调整呈现的颜色
//控制整个场景的饱和度。默认为1(无效果)。@property(nonatomic) CGFloat saturation API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//控制整个场景的对比。默认为0(无效果)。@property(nonatomic) CGFloat contrast API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//一种将颜色分级效果应用到整个渲染场景的纹理。@property(nonatomic, readonly) SCNMaterialProperty *colorGrading API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));
  • 添加风格的视觉效果(Bloom、渐变、渐晕)
//Bloom,又称“全屏泛光”,是游戏中常用的一种镜头效果,是一种比较廉价的“伪HDR”//在渲染的场景中应用于高光的亮度的大小。可以做成动画。默认为0(无效果)。@property(nonatomic) CGFloat bloomIntensity API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//设置Booom效果的亮度阈值 可以做成动画。默认为1@property(nonatomic) CGFloat bloomThreshold API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//以像素为单位的半径,确定Bloom效果的半径。可以做成动画。默认为4@property(nonatomic) CGFloat bloomBlurRadius API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//控制色彩渐变。默认为1。@property(nonatomic) CGFloat colorFringeIntensity API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//控制色彩渐变的强度。默认为0(无效果)。@property(nonatomic) CGFloat colorFringeStrength API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//控制渐晕效果的强度。默认为0(无效果)。@property(nonatomic) CGFloat vignettingIntensity API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));//控制渐晕效果的形状。默认为0(无效果)。@property(nonatomic) CGFloat vignettingPower API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0));
  • 添加屏幕空间环境遮挡。
//施加在照相机渲染中的屏幕空间环境遮挡效应的强度。可动画、默认为0@property(nonatomic) CGFloat screenSpaceAmbientOcclusionIntensity API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));//设置屏幕空间环境遮挡的作用半径。可动画 默认为5@property(nonatomic) CGFloat screenSpaceAmbientOcclusionRadius API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));//设置遮挡偏差 ,默认0.03@property(nonatomic) CGFloat screenSpaceAmbientOcclusionBias API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));//确定场景单元的深度模糊阈值。默认值0.2@property(nonatomic) CGFloat screenSpaceAmbientOcclusionDepthThreshold API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));//确定正常模糊阈值。默认0.3@property(nonatomic) CGFloat screenSpaceAmbientOcclusionNormalThreshold API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
  • 被废弃方法
//确定物理相机孔径。默认值为0。@property(nonatomic) CGFloat focalBlurRadius API_DEPRECATED("Use fStop instead", macos(10.8, 10.13), ios(8.0, 11.0), tvos(9.0, 11.0), watchos(3.0, 4.0));//确定接收器在X轴上的视场。可以做成动画。@property(nonatomic) double xFov API_DEPRECATED("Use -[SCNCamera fieldOfView] or -[SCNCamera focalLength] instead", macos(10.8, 10.13), ios(8.0, 11.0), tvos(9.0, 11.0), watchos(3.0, 4.0));//确定接收器在Y轴上的视场。可以做成动画。@property(nonatomic) double yFov API_DEPRECATED("Use -[SCNCamera fieldOfView] or -[SCNCamera focalLength] instead", macos(10.8, 10.13), ios(8.0, 11.0), tvos(9.0, 11.0), watchos(3.0, 4.0));//决定了接收机的光圈。可以做成动画。默认值1/8.0. 可动画@property(nonatomic) CGFloat aperture API_DEPRECATED("Use -[SCNCamera fStop] instead with fStop = sensorHeight / aperture.", macos(10.8, 10.13), ios(8.0, 11.0), tvos(9.0, 11.0), watchos(3.0, 4.0));//确定接收器的焦距。可以做成动画。默认0@property(nonatomic) CGFloat focalSize API_DEPRECATED_WITH_REPLACEMENT("-focusDistance", macos(10.9, 10.13), ios(8.0, 11.0), tvos(9.0, 11.0), watchos(3.0, 4.0));//确定接收器的焦距//当非零值时,焦距决定了相机在三维场景中如何聚焦对象。在macOS 10.13、ios11、tvos11和watchOS 4之前,默认值为10.0。否则默认为2.5。@property(nonatomic) CGFloat focalDistance API_DEPRECATED_WITH_REPLACEMENT("-focusDistance", macos(10.9, 10.13), ios(8.0, 11.0), tvos(9.0, 11.0), watchos(3.0, 4.0));

 

转载于:https://www.cnblogs.com/xianfeng-zhang/p/8990585.html

你可能感兴趣的文章
***掉自已公司的网站,留下记录
查看>>
我的友情链接
查看>>
音乐双雄 DynamicLyrics+MusicSeekerX
查看>>
San
查看>>
windbg 如何再内核模式调试用户空间的程序
查看>>
态度是什么
查看>>
Terraform 使用 - 从最简单例子开始
查看>>
杭州楼市是"健康的"
查看>>
Cas3.4 验证码添加!
查看>>
hibernate视图无主键解决办法
查看>>
Android:内存控制及OOM处理
查看>>
希尔排序
查看>>
tomcat7 虚拟主机设置笔记
查看>>
MFC之托盘
查看>>
K8S命令使用
查看>>
dul恢复drop表测试
查看>>
spring boot(1)入门
查看>>
Cmder- ls 命令无法显示中文目录问题
查看>>
一些关于MYSQL语句的编写模板
查看>>
微积分7---极坐标确定切线方程
查看>>