SceneKit与RealityKit与金属以进行高质量渲染

问题描述 投票:2回答:1

我是iPhone应用程序开发的新手,尽管有在OpenGL中进行图形编程的经验。

我正在创建一个iPhone应用程序,打算在AR中显示逼真的/高质量的渲染。在尝试这3个选项时,我仍然不确定我应该围绕以下哪个开发我的应用程序框架:SceneKit,RealityKit和Metal。

我已经了解到SceneKit是建立在Metal之上的,但是我不确定是否值得花时间/精力来编写任何自定义着色器,而不是使用SceneKit可以默认提供的东西。

关于RealityKit,我不需要它提供的任何动画或特殊效果,只需要真实感的渲染面。

目前,我正在使用Swift进行编程,过去曾使用过Objective-C,但尚未计划在我的应用程序中使用它。

三个中哪一个最适合开发AR和高质量模型渲染?

augmented-reality scenekit arkit metal realitykit
1个回答
0
投票

RealityKit

[Apple渲染技术家族中最年轻的技术(于2019年发布)。它是为AR / VR项目制作的,具有简化的设置,可提供多用户体验,可在iOS / macOS上使用。没有Objective-C的遗留,RK仅支持Swift,而是声明性语法。 RealityKit的主要优点–它可以补充/更改/自定义Reality Composer中的场景,并且是ARKit的强大扩展(尽管它也可以作为高级独立AR框架而发光)。在RealityKit中,主要单元是entities(如ModelEntityAnchorEntityTriggerVolumeBodyTrackedEntity),其具有根据[[resources]创建的components。 。

RealityKit读取.usdz.rcproject.reality文件格式。支持动画,动力学,PBR材料,基于HDR图像的照明和环境音频。所有模型都必须与锚点绑定在场景中。

SceneKit

这也是一个高级框架。苹果渲染技术系列中最古老的渲染技术(于2012年发布)。它是为VR制作的,也可以在iOS / macOS上使用。对于AR项目,您可以将其与ARKit结合使用。 SCN支持Objective-C和Swift。在SceneKit中,主要单元是具有自己层次结构的

node

SCNNode class),可以是lightcamerageometry SceneKit的主要优点–高度可定制,可以在运行时更改几何形状和材质,以30至120 fps的速度渲染场景,并且具有用于粒子系统的高级设置。SceneKit读取.usdz.dae.scn文件格式。支持嵌套的动画,动力学,粒子,PBR材料,HDR IBL和环境音频。

金属

确切地说,Metal本身不是渲染技术,而是GPU加速器(2014年发布)。这是一个低级框架。 Metal随处可见–在RealityKit,SceneKit,ARKit,CoreML,Vision等中。Metal在一个API下结合了类似于OpenGL和OpenCL的功能。

根据Apple文档

“金属是一种基于C ++的编程语言,开发人员可以用来编写在GPU上执行的用于图形和通用数据并行计算的代码。由于Metal基于使用C ++,开发人员会发现它熟悉且易于使用。借助Metal,图形和计算程序都可以用一种统一的语言编写,从而可以在两者之间进行更紧密的集成。“此外,您可以使用MetalKit模块,该模块使用更少的代码来帮助更快,更轻松地构建Metal应用。在标准的金属视图中渲染图形,从许多来源加载纹理,并有效地使用模型I / O框架提供的模型。
© www.soinside.com 2019 - 2024. All rights reserved.