Разработчик(и) | Apple Inc. |
---|---|
Первоначальный выпуск | 25 июля 2012 г. |
Операционная система | iOS , iPadOS , macOS , tvOS , watchOS , VisionOS |
Тип | Программная структура |
Лицензия | Запатентованный |
Веб-сайт | https://developer.apple.com/scenekit/ |
SceneKit , иногда визуализируемый как Scene Kit , — это интерфейс программирования приложений (API) 3D-графики для платформ Apple Inc. , написанный на Objective-C . Это высокоуровневый фреймворк, разработанный для предоставления простого в использовании слоя поверх API нижнего уровня, таких как OpenGL и Metal . [1] SceneKit поддерживает объектно-ориентированный граф сцены , а также физический движок , систему частиц и ссылки на Core Animation и другие фреймворки для легкой анимации этого отображения. Виды SceneKit можно смешивать с другими видами, например, позволяя отображать 2D-дисплей SpriteKit на поверхность объекта в SceneKit или UIBezierPath из Core Graphics для определения геометрии объекта SceneKit. SceneKit также поддерживает импорт и экспорт 3D-сцен с использованием формата COLLADA . SceneKit был впервые выпущен для macOS в 2012 году, а для iOS — в 2014 году.
SceneKit поддерживает граф сцены на основе корневого объекта, экземпляра класса SCNScene. Объект SCNScene примерно эквивалентен объектам вида, которые можно найти в большинстве 2D-библиотек, и предназначен для встраивания в контейнер отображения, такой как окно или другой объект вида. Единственное основное содержимое SCNScene — это ссылка на rootNode, которая указывает на объект SCNNode.
SCNNodes являются основным содержимым иерархии SceneKit. Каждый узел имеет имя и указатели на необязательные объекты Camera, Light и Geometry, а также массив childNodes и указатель на своего собственного родителя. Типичная сцена будет содержать один объект Scene, указывающий на удобно названный Node (часто «корень»), чьей основной целью является хранение коллекции дочерних узлов. Дочерние узлы могут использоваться для представления камер, источников света или различных геометрических объектов в Scene.
Простую сцену можно создать, создав один объект SCNGeometry, обычно с одним из классов-конструкторов, например SCNBox, один SCNCamera, один или несколько SCNLights, а затем назначив все эти объекты отдельным Node. Затем создается один дополнительный универсальный Node и назначается rootNode объекта SCNScene, а затем все объекты добавляются как дочерние элементы этого rootNode. Тем не менее, количество источников света ограничено 8.
SCNScenes также содержит ряд встроенных элементов управления пользовательским интерфейсом и библиотек ввода/вывода, что значительно упрощает реализацию простых просмотрщиков и подобных задач. Например, установка autoenablesDefaultLighting и allowCameraControl сцены в значение true, а затем добавление дерева объектов, считанного из файла COLLADA, создаст просматриваемый контент произвольной сложности с помощью нескольких строк кода. Интеграция с Xcode позволяет размещать саму сцену в окне в Interface Builder без какого-либо кода вообще.
Существует формат архивного файла Scenekit с расширением .scn.