Введение в набор сцены

Набор сцены является 3D представляющей платформой Objective C, комбинирующей высокоэффективный механизм рендеринга с высоким уровнем, дескриптивным API. Набор сцены поддерживает импорт, манипулирование и рендеринг 3D активов, не требуя, чтобы точные шаги представили сцену путем, OpenGL делает.

Сразу

С Набором Сцены Вы можете:

Набор сцены является Технологией Поддержки

Набор сцены находится ниже Какао и выше OpenGL в графической архитектуре. Это - коллега к технологиям, таким как Кварц, Базовая Анимация и Набор GL и интегрируется с другими графическими технологиями, позволяя Вам использовать многократные технологии для достижения широкого диапазона результатов.

Поскольку Сцена, которую Кит интегрирует с Имэджем Китом и Базовой Анимацией, Вам не нужны усовершенствованные 3D графические навыки программирования. Например, можно встроить 3D сцену на уровень и затем использовать Базовые возможности составления композита Анимации добавить оверлейные программы и фоны. Можно также использовать Базовые Слои анимации в качестве текстур для 3D объектов в 3D сценах.

Набор сцены включает 3D активы в Вашем приложении

Набор сцены включает 3D рендеринг в Вашем приложении, позволяя Вам выполнить следующие виды задач.

Загрузка активов

Большинство 3D моделей не может быть разработано программно. Они должны быть смоделированы в 3D инструментах разработки (такой как 3ds макс., язык майя и SketchUp) и затем импортированы в приложении. Набор сцены позволяет Вам загрузить 3D содержание с помощью файлов DAE. Этот межстанционный формат поддерживается всеми главными приложениями создания содержания.

После того, как 3D файл загружается, можно использовать Набор Сцены для доступа ко всей информации для сцены, включая данные геометрии (в формате, подходящем для OpenGL), объекты преобразовывает, анимации, цвета и текстуры.

Управление и рендеринг 3D сцен

Платформа Набора Сцены предлагает гибкое, сцена основанная на графике система, чтобы создать и представить виртуальные 3D сцены. С его основанным на узле проектом график сцены Набора Сцены позволяет Вам абстрактный большинство базовых внутренностей используемых компонентов от пользователя. Набор сцены выполняет всю работу под этим, необходим для рендеринга сцены эффективно с помощью всего потенциала GPU.

Набор сцены обеспечивает три способа представить 3D сцены: представление (SCNView), уровень (SCNLayer) и средство рендеринга (SCNRenderer).

  • SCNView непосредственно доступен в интерфейсном разработчике. Это упрощает интеграцию Вашего приложения в Какао GUI.

  • SCNLayer позволяет Вам интегрировать 3D сцену в дерево уровня, используя в своих интересах расположение Базовой Анимации и составляя механизм.

  • Когда необходимо представить вне экрана, SCNRenderer позволяет Вам представить в произвольном низкоуровневом контексте OpenGL.

Анимация 3D сцен

Набор сцены может анимировать 3D сцены с тем же питанием и гибкостью как Базовая Анимация, но не представляя новый набор понятий. Набор сцены использует существующую Базовую Анимацию APIs для поддержки и неявных и явных анимаций. Используя Базовую Анимацию APIs, можно анимировать неявно и создать явные анимации или получить сложные анимации, разработанные в 3D инструменте разработки, и затем применить их при необходимости на основе пользовательских событий.

Существует несколько способов интегрировать Набор Сцены в приложении. Можно решить использовать Набор Сцены, чтобы загрузить геометрию и информацию о сцене и затем представить его сами с собственным механизмом рендеринга. Или можно решить использовать встроенный SCNView и классы SCNLayer для представления 3D сцен пользователям. Наконец, можно решить использовать весь API для добавления живого взаимодействия с 3D активами в сцене.

Расположение графика сцены

График сцены в Наборе Сцены имеет древовидную структуру, как показано здесь.

../Art/SceneGraph.png

Основной элемент для древовидной структуры графика сцены является SCNNode. SCNNode инкапсулирует преобразование, представляющее позицию, вращение и масштаб узла. Все преобразования подузла относительно их родительского узла, преобразовывает. Клиенты API используют объекты SCNNode управлять структурой их сцены.

Объект SCNGeometry представляет часть геометрии (ряд вершины и многоугольников) присоединяемый к узлу. Единственная геометрия частей может быть присоединена к нескольким узлам, позволив Набору Сцены совместно использовать потенциально большие буферы между несколькими узлами в сцене. Объект SCNGeometry имеет массив материалов, описывающий появление поверхности через свойства высокого уровня — рассеянный, окружающий, зеркальный и т.д. Набор сцены также обеспечивает ряд параметрических конфигураций, которых разработчики могут инстанцировать программно. Параметрические конфигурации являются рядом подклассов SCNGeometry. Каждый подкласс определяет определенную форму, которая может быть сконфигурирована с рядом параметров.

Объект SCNCamera представляет точку зрения. Это может также быть присоединено к любому узлу.

Объект SCNLight представляет источник света. Это является присоединяемым к любому узлу, и это освещает всю сцену от своего присоединенного узла.

Смешивание набора сцены и OpenGL

Вы не должны знать OpenGL для использования Набора Сцены. Если Вы уже знакомы с OpenGL, можно все еще интегрировать Набор Сцены в приложение. Как отмечалось ранее, можно использовать Набор Сцены, чтобы загрузить сцену и затем представить его с собственным средством рендеринга. Но если Вы хотите получить преимущества от собственного рендеринга Набора Сцены, существует три способа смешать Ваш код OpenGL с рендерингом в Наборе Сцены.

Установка делегата средства рендеринга в узле

Установите делегата средства рендеринга в узле как это:

node.rendererDelegate = aController;

Когда делегат установлен, это управляет рендерингом для определенного узла. Набор сцены передает всю информацию о трансформации делегату к этому узлу. Делегат тогда выполняет пользовательский код OpenGL в Наборе Сцены контекст OpenGL.

Например, предположите, что у Вас есть 3D сцена полета поставки. Разработчик может добавить пустой узел на реакторе и использование OpenGL, можно установить делегата средства рендеринга в этом узле для рендеринга его собственного эффекта частицы.

Установка собственной программы на материале

Если Вы хотите иметь более прекрасный контроль на рендеринге, установите свою собственную программу на материале. Программа является программой построения теней GLSL, та, переопределяющая свойства SCNMaterial. Можно записать собственную вершину и программы построения теней фрагмента, которые Набор Сцены тогда использует для рисования геометрии.

Используя делегата для рендеринга собственного кода OpenGL

SCNView, SCNLayer и SCNRenderer возражают, что все принимают, что делегат позволяет Вам выполнить свой собственный код openGL прежде и после рендеринга сцены. Если Вы хотите использовать OpenGL для, например, нарисовать некоторый пользовательский фон или оверлейные программы, это поведение делегата может быть полезным.

Используя XCode для упрощения работы

XCode интегрирует инструмент к предварительному просмотру, проверьте и приведите файлы DAE в соответствие с Набором Сцены.

Цель этого инструмента состоит в том, чтобы помочь Вам:

Инструмент разработан для взгляда как можно больше как Интерфейсный Разработчик.

См. также

Дополнительную информацию см. в Ссылке Платформы Набора Сцены, включая объяснения параметров и возвращаемых значений, примеров и примечаний.