Введение в набор сцены
Набор сцены является 3D представляющей платформой Objective C, комбинирующей высокоэффективный механизм рендеринга с высоким уровнем, дескриптивным API. Набор сцены поддерживает импорт, манипулирование и рендеринг 3D активов, не требуя, чтобы точные шаги представили сцену путем, OpenGL делает.
Сразу
С Набором Сцены Вы можете:
Импортируйте 3D объекты COLLADA и создайте сцены, составленные камерами, световыми сигналами и сетками.
Управляйте ограничивающими объемами, геометрией и материалами, используемыми в сцене.
Загрузите 3D содержание с помощью межстанционного формата, поддерживаемого всеми главными приложениями созданий содержания (использующий DAE (обмен цифрового актива) файлы.
Добавьте живое взаимодействие с загруженным 3D содержанием.
Интегрируйте свое приложение с другими технологиями OS X, такими как Базовая Анимация и GLKit для добавления оверлейных программ и текстур для 3D объектов в сценах.
Используйте XCode для предварительного просмотра, проверьте и приведите файлы DAE в соответствие с Набором Сцены, чтобы помочь интегрировать их в Ваше приложение.
Набор сцены является Технологией Поддержки
Набор сцены находится ниже Какао и выше 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 активами в сцене.
Расположение графика сцены
График сцены в Наборе Сцены имеет древовидную структуру, как показано здесь.
Основной элемент для древовидной структуры графика сцены является 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 в соответствие с Набором Сцены.
Цель этого инструмента состоит в том, чтобы помочь Вам:
Интегрируйте файлы DAE в свое приложение. Инструмент позволяет такие вещи как проверка графика сцены, наблюдение имен активов и проверки размера конфигураций и текстур.
Позвольте разработчикам предварительно просмотреть свою 3D сцену так же, как они представят ее на предназначенной платформе. Здесь, можно проверить, что освещение ведет себя как ожидалось, посмотрите, как материалы представляют, воспроизводят встроенные анимации и тестируют производительность на данную сцену.
Инструмент разработан для взгляда как можно больше как Интерфейсный Разработчик.
Боковая панель слева показывает график сцены и библиотеку сцены (список активов, сортированных видом, таких как геометрия, световые сигналы и изображения).
Боковая панель справа содержит список инспекторов:
Узел инспектор Atrributes показывает свойства SCNNode, такие как его позиция, непрозрачность и видимость. Инспектор также показывает свойства атрибутов узла, такие как свет, камера и геометрия, когда применимый (например, когда узлу присоединили такие атрибуты).
Материальный инспектор показывает различные цвета и изображения для каждой материальной собственности.
Основное представление дает предварительный просмотр сцены, поскольку это представит в приложении.
Временная шкала в нижней части позволяет играть анимации, включенной в файл DAE.
См. также
Дополнительную информацию см. в Ссылке Платформы Набора Сцены, включая объяснения параметров и возвращаемых значений, примеров и примечаний.