SceneKit против RealityKit против металла для высококачественного рендеринга - PullRequest
3 голосов
/ 03 марта 2020

Я новичок в iPhone разработке приложений, хотя у меня есть опыт в графическом программировании в OpenGL.

Я создаю приложение iPhone, которое намеревается отображать реалистичные / высококачественные рендеры в пределах AR. Экспериментируя с этими тремя вариантами, я все еще не уверен, какой из них мне следует go продолжить с разработкой инфраструктуры моего приложения: SceneKit, RealityKit и Metal.

Я прочитал что SceneKit построен поверх Metal, но я не уверен, стоит ли тратить время / усилия на программирование каких-либо пользовательских шейдеров, в отличие от того, что SceneKit может предложить по умолчанию.

Что касается RealityKit, я не Мне нужна какая-либо анимация или спецэффекты, которые он предлагает, только фотореалистичная сторона рендеринга c.

Я сейчас программирую на Swift, и раньше использовал Objective- C, но пока Не планируется использовать что-либо в моем приложении.

Какой из трех вариантов лучше всего разработать для AR и рендеринга высококачественных моделей?

1 Ответ

5 голосов
/ 03 марта 2020

RealityKit

Самый молодой в семействе технологий рендеринга Apple (выпущен в 2019 году). Он сделан для проектов AR / VR, имеет упрощенные настройки для многопользовательского режима и может использоваться на iOS / macOS. У нас нет наследства Objective- C, RK поддерживает только Swift и довольно декларативный синтаксис для него. Основное преимущество RealityKit - он может дополнять / изменять / настраивать сцены из Reality Composer и быть мощным расширением для ARKit (хотя он также великолепен как автономная AR-платформа высокого уровня). В RealityKit основными единицами являются сущности (например, ModelEntity , AnchorEntity , TriggerVolume и BodyTrackedEntity ), которые имеют компоненты , созданные из ресурсов .

RealityKit считывает файлы в форматах .usdz, .rcproject и .reality. Поддерживает анимацию, динамику, материалы PBR, HDR Image Based Lighting и звук окружающей среды. Все модели сцены должны быть привязаны к якорям.

Заключение : RealityKit предоставляет вам высококачественную технологию рендеринга и современные возможности AR. Вы можете использовать его один или с ARKit. RealityKit работает с раскадровками UIKit или с интерфейсом SwiftUI. И он имеет минимум стандартного кода.

SceneKit

это также высокоуровневый фреймворк. Старейшая в семействе технологий рендеринга Apple (выпущена в 2012 году). Это было сделано для VR и может также использоваться на iOS / macOS. Для проектов AR вы можете использовать его вместе с ARKit. SCN поддерживает Objective- C и Swift. В SceneKit основным блоком является узел ( класс SCNNode ), который имеет свою собственную иерархию и может быть light или camera или геометрия и др. c. Основное преимущество SceneKit - его широкие возможности настройки, он может изменять геометрию и материалы во время выполнения, рендеринг сцены со скоростью от 30 до 120 кадров в секунду и расширенные настройки для системы частиц.

SceneKit считывает в .usdz , .dae и .scn форматы файлов. Поддерживает вложенную анимацию, динамику, частицы, материалы PBR, HDR IBL и звук окружающей среды.

Заключение : SceneKit предоставляет вам высококачественную технологию рендеринга, но для проектов AR вы можете использовать ее только с Аркыт. Он легко настраивается, может использоваться с Swift и Objective- C, и вы получаете набор полезных renderer() методов экземпляра, которые позволяют обновлять модели AR со скоростью 60 кадров в секунду.

Metal

Если быть точным, Metal - это не технология рендеринга, а скорее ускоритель GPU (выпущен в 2014 году). Это низкоуровневая структура. Металл реализован везде - в RealityKit, SceneKit, ARKit, CoreML, Vision и др. c. Metal объединяет функции, аналогичные OpenGL и OpenCL, в одном API.

Согласно документации Apple : "Metal - это язык программирования на основе C ++, который разработчики могут использовать для написания исполняемого кода на графическом процессоре для графики и параллельных вычислений общего назначения. Поскольку Metal основан на C ++, разработчики найдут его знакомым и простым в использовании. С Metal как графические, так и вычислительные программы могут быть написаны на одном унифицированном языке, который обеспечивает более тесную интеграцию между ними."

Кроме того, вы можете использовать модуль MetalKit, который помогает быстрее и проще создавать приложения Metal, используя гораздо меньше кода. Рендеринг графики в стандартном металлическом представлении, загрузка текстур из многих источников и эффективная работа с моделями, предоставляемыми платформой ввода-вывода Model.

Если вам нужна дополнительная информация о ARKit и его технологиях, пожалуйста, прочитайте этот пост .

...