Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы SceneKit ссылка на протокол SCNSceneRenderer

Опции
Развертывание Target:

На этой странице
Язык:

SCNSceneRenderer

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

Как правило, Вы используете SCNView класс для отображения сцены в окне (или полный экран). Можно создать и сконфигурировать представление SceneKit программно или в Интерфейсном Разработчике. Другие классы средства рендеринга представляют содержание SceneKit в более специализированных ситуациях. Если Вашему приложению составили пользовательский интерфейс Базовых Слоев анимации, можно использовать SCNLayer класс для рендеринга сцены в уровне. Если Ваше приложение использует OpenGL для другого рендеринга, можно использовать SCNRenderer класс для рендеринга содержания SceneKit в том же контексте OpenGL.

Используйте scene свойство представления, уровня или средства рендеринга для указания сцены для отображения.

Наследование


Не применимый

Соответствует


Оператор импорта


Swift

import SceneKit

Objective C

@import SceneKit;

Доступность


Доступный в OS X v10.8 и позже.
  • сцена сцена Требуемое свойство

    Сцена, которая будет выведена на экран. (требуемый)

    Объявление

    Swift

    var scene: SCNScene? { get set }

    Objective C

    @property(nonatomic, retain) SCNScene *scene

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • pointOfView pointOfView Требуемое свойство

    Узел, от которого содержание сцены просматривается для рендеринга. (требуемый)

    Объявление

    Swift

    var pointOfView: SCNNode? { get set }

    Objective C

    @property(nonatomic, retain) SCNNode *pointOfView

    Обсуждение

    Используйте узел с SCNCamera экземпляр присвоился к camera свойство для просмотра сцены. Узел обеспечивает позицию и направление виртуальной камеры, и объект камеры обеспечивает параметры рендеринга, такие как поле зрения и фокус.

    Для отладки световых сигналов и теней, можно также определять центр внимания ( SCNLight объект, чей type свойство SCNLightTypeSpot) как точка зрения. В этом случае, свет spotInnerAngle свойство определяет поле зрения и zNear и zFar свойства определяют близкие и далекие степени области, которая является видима экранный (также известный как видимое пространство).

    В любом случае направление представления приезжает отрицательная ось z пространства локальной координаты узла.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

  • autoenablesDefaultLighting autoenablesDefaultLighting Требуемое свойство

    Булево значение, определяющее, добавляет ли SceneKit автоматически световые сигналы к сцене. (требуемый)

    Объявление

    Swift

    var autoenablesDefaultLighting: Bool { get set }

    Objective C

    @property(nonatomic) BOOL autoenablesDefaultLighting

    Обсуждение

    Если значение этого свойства NOfalse (значение по умолчанию), единственные источники света использование SceneKit для рендеринга сцены является содержавшимися в графике сцены. Если Вы изменяете значение на YEStrue, SceneKit автоматически добавляет и помещает всенаправленный источник света при рендеринге сцен, не содержащих световых сигналов или только содержащих окружающие светы.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

  • jitteringEnabled jitteringEnabled Требуемое свойство

    Булево значение, определяющее, применяет ли SceneKit дрожание для сокращения артефактов искажения. (требуемый)

    Объявление

    Swift

    var jitteringEnabled: Bool { get set }

    Objective C

    @property(nonatomic, getter=isJitteringEnabled) BOOL jitteringEnabled

    Обсуждение

    Дрожание является процессом что использование SceneKit для повышения визуального качества представленной сцены. В то время как содержание сцены тихо, SceneKit перемещается pointOfView расположение очень немного (меньше чем пикселем в спроектированном экранном пространстве). Это тогда составляет изображения, представленные после того, как несколько таких перемещений для создания финала представили сцену, создав сглаживающийся эффект, сглаживающий края представленной геометрии.

    По умолчанию значение этого свойства NOfalse, указание, что SceneKit не должен выполнять дрожание. Измените значение на YEStrue позволять дрожать.

    Поскольку SCNView и SCNLayer классы выполняют дрожание автоматически и асинхронно, разрешение дрожащий для этих классов оказывает минимальное влияние на рендеринг производительности. SCNRenderer класс выполняет дрожание синхронно, подвергаясь высокоэффективной стоимости. С этим классом дрожание подходит для рендеринга единственных кадров по требованию, но не для рендеринга в реальном времени.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

  • showsStatistics showsStatistics Требуемое свойство

    Булево значение, определяющее ли дисплеи SceneKit, представляющие статистику производительности во вспомогательном представление. (требуемый)

    Объявление

    Swift

    var showsStatistics: Bool { get set }

    Objective C

    @property(nonatomic) BOOL showsStatistics

    Обсуждение

    Представление статистики SceneKit выводит на экран различную информацию о производительности рендеринга сцены и использовании ресурсов OpenGL, включая кадры в секунду (кадр/с) счетчик. На OS X нажмите кнопку имущества в представлении статистики для показа панели с дополнительными средствами управления для корректировки рендеринга SceneKit сцены.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • sceneTime sceneTime Требуемое свойство

    Текущее время сцены. (требуемый)

    Объявление

    Swift

    var sceneTime: NSTimeInterval { get set }

    Objective C

    @property(nonatomic) NSTimeInterval sceneTime

    Обсуждение

    Эта метка времени определяет, как рабочие анимации ведут себя, который подобен тому, как playhead время в приложении видеоплеера определяет который кадр фильма вывести на экран. Время сцены применяется только к анимациям чей usesSceneTimeBase свойство YEStrue, включая загруженных из источника сцены с помощью SCNSceneSourceAnimationImportPolicyPlayUsingSceneTimeBase опция.

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

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • currentTime currentTime (OS X v10.10) Свойство

    Время текущей анимации. (требуемый)

    Оператор осуждения

    Используйте sceneTime свойство вместо этого.

    Объявление

    Swift

    var currentTime: NSTimeInterval { get set }

    Objective C

    @property(nonatomic) NSTimeInterval currentTime

    Обсуждение

    Эта метка времени определяет поведение анимаций, работающих в сцене, подобной тому, как playhead время в приложении видеоплеера определяет который кадр фильма вывести на экран.

    SceneKit автоматически постепенно увеличивает время сцены в то время как средство рендеринга playing свойство YEStrue. Можно считать эту метку времени, чтобы скоординировать собственные действия с синхронизацией анимации сцены или изменить ее значение, чтобы перейти назад или передать в анимированной сцене.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

    Осуждаемый в OS X v10.10.

    См. также

    игра

  • игра игра Требуемое свойство

    Булево значение, определяющее, играет ли сцена. (требуемый)

    Объявление

    Swift

    var playing: Bool { get set }

    Objective C

    @property(getter=isPlaying) BOOL playing

    Обсуждение

    Если значение этого свойства NOfalse (значение по умолчанию), SceneKit не постепенно увеличивает время сцены, таким образом, не играют анимации, связанные со сценой. Измените значение этого свойства на YEStrue начинать анимировать сцену.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

    См. также

    currentTime

  • циклы циклы Требуемое свойство

    Булево значение, определяющее, перезапускает ли SceneKit время сцены после всех анимаций в сцене, играло. (требуемый)

    Объявление

    Swift

    var loops: Bool { get set }

    Objective C

    @property(nonatomic) BOOL loops

    Обсуждение

    Если значение этого свойства YEStrue (значение по умолчанию), SceneKit возвращает время сцены для обнуления после того, как все анимации, связанные со сценой, играли, заставляя те анимации повториться. Иначе, когда все анимации завершились, SceneKit прекращает играть сцену.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

    См. также

    currentTime
    игра

  • Подготавливает объект SceneKit к рендерингу. (требуемый)

    Объявление

    Swift

    func prepareObject(_ object: AnyObject, shouldAbortBlock block: (() -> Bool)?) -> Bool

    Objective C

    - (BOOL)prepareObject:(id)object shouldAbortBlock:(BOOL (^)(void))block

    Параметры

    object

    SCNScene, SCNNode, SCNGeometry, или SCNMaterial экземпляр.

    block

    Блок, который SceneKit периодически вызывает при подготовке объекта. Блок не берет параметров.

    Ваш блок должен возвратиться NOfalse сказать SceneKit продолжать подготавливать объект, или YEStrue отменять подготовку.

    Передача nil для этого параметра, если Вам не нужна возможность отменить подготовку объекта.

    Возвращаемое значение

    YEStrue если объект был успешно подготовлен к рендерингу, или NOfalse если была отменена подготовка.

    Обсуждение

    По умолчанию SceneKit лениво загружает ресурсы на GPU для рендеринга. Когда Вы добавляете большие суммы нового содержания к анимированной сцене, этот подход использует память и пропускную способность GPU эффективно, но может привести к задержкам в иначе гладкой частоте кадров. Для предотвращения таких проблем используйте этот метод для подготовки содержания к рисованию прежде, чем добавить его к сцене. Можно вызвать этот метод на вторичном потоке для подготовки содержания асинхронно.

    SceneKit подготавливает все содержание, связанное с object параметр Вы обеспечиваете. Если Вы обеспечиваете SCNMaterial объект, SceneKit загружает любые изображения текстуры, присвоенные ее свойствам материала. Если Вы обеспечиваете SCNGeometry объект, SceneKit загружает все материалы, присоединенные к геометрии, а также ее данным вершины. Если Вы обеспечиваете SCNNode или SCNScene объект, SceneKit загружает все конфигурации и материалы, связанные с узлом и всеми его дочерними узлами, или со всей иерархией узла сцены.

    Можно использовать block параметр для отмены подготовки, если больше не необходимо содержание. Например, в игре Вы могли бы использовать этот метод, чтобы предварительно загрузить области игрового мира, который проигрыватель должен скоро ввести, но если персонаж умирает прежде, чем ввести те области, можно возвратиться YEStrue от блока для отмены предварительно загружения.

    Можно наблюдать прогресс этой работы с NSProgress класс. Для получения дополнительной информации см. Ссылку класса NSProgress.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Подготавливает указанные объекты SceneKit к рендерингу, с помощью фонового потока. (требуемый)

    Объявление

    Swift

    func prepareObjects(_ objects: [AnyObject], withCompletionHandler completionHandler: ((Bool) -> Void)?)

    Objective C

    - (void)prepareObjects:(NSArray *)objects withCompletionHandler:(void (^)(BOOL success))completionHandler

    Параметры

    objects

    Массив содержания того или больше SCNScene, SCNNode, SCNGeometry, или SCNMaterial экземпляры.

    completionHandler

    Блок, который вызывает SceneKit, когда объектная подготовка перестала работать или завершается.

    Блок берет следующий параметр:

    success

    YEStrue если все содержание было успешно подготовлено к рендерингу; иначе, NOfalse.

    Обсуждение

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

    SceneKit подготавливает все содержание, связанное с объектами, которые Вы обеспечиваете. Если Вы обеспечиваете SCNMaterial объект, SceneKit загружает любые изображения текстуры, присвоенные ее свойствам материала. Если Вы обеспечиваете SCNGeometry объект, SceneKit загружает все материалы, присоединенные к геометрии, а также ее данным вершины. Если Вы обеспечиваете SCNNode или SCNScene объект, SceneKit загружает все конфигурации и материалы, связанные с узлом и всеми его дочерними узлами, или со всей иерархией узла сцены.

    Можно наблюдать прогресс этой работы с NSProgress класс. Для получения дополнительной информации см. Ссылку класса NSProgress.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Ищет сцену средства рендеринга объекты, соответствующие точке в представленном изображении. (требуемый)

    Объявление

    Swift

    func hitTest(_ thePoint: CGPoint, options options: [NSObject : AnyObject]?) -> [AnyObject]?

    Objective C

    - (NSArray *)hitTest:(CGPoint)thePoint options:(NSDictionary *)options

    Параметры

    thePoint

    Точка в экранном пространстве (представление, уровень или область просмотра OpenGL) система координат средства рендеринга сцены.

    options

    Словарь опций, влияющих на поиск. Посмотрите Hit Testing Options Keys для приемлемых значений.

    Возвращаемое значение

    Массив SCNHitTestResult объекты, представляющие результаты поиска.

    Обсуждение

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

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

  • Возвращает булево значение, указывающее, может ли узел быть видим с указанной точки зрения. (требуемый)

    Объявление

    Swift

    func isNodeInsideFrustum(_ node: SCNNode, withPointOfView pointOfView: SCNNode?) -> Bool

    Objective C

    - (BOOL)isNodeInsideFrustum:(SCNNode *)node withPointOfView:(SCNNode *)pointOfView

    Параметры

    node

    Узел, видимость которого должна быть протестирована.

    pointOfView

    Узел, определяющий точку зрения, как используется pointOfView свойство.

    Возвращаемое значение

    YEStrue если ограничительная рамка протестированного узла пересекает представление frustum определенный pointOfView узел; иначе, NOfalse.

    Обсуждение

    Любой узел, содержащий камеру или центр внимания, может служить точкой зрения (см. pointOfView свойство для подробных данных). Такой узел определяет видимое пространство — часть координатного пространства сцены, сформированного как усеченная пирамида, включающая все точки, видимые с той точки зрения.

    Используйте этот метод, чтобы протестировать, находится ли узел в видимом пространстве, определенном другим узлом (который может или может не быть текущим средством рендеринга сцены pointOfView узел). Например, в игровой сцене, содержащей многократные узлы камеры, Вы могли использовать этот метод для определения, какая камера является в настоящее время лучшей для просмотра движущегося персонажа.

    Обратите внимание на то, что этот метод не выполняет тестирование поглощения газов. Т.е. это возвращается YEStrue если протестированный узел находится в указанном видимом пространстве независимо от того, затенено ли содержание того узла другой геометрией.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • projectPoint (_:) - projectPoint: Требуемый

    Проектирует точку от 3D системы мировой координаты сцены к 2D пиксельной системе координат средства рендеринга. (требуемый)

    Объявление

    Swift

    func projectPoint(_ point: SCNVector3) -> SCNVector3

    Objective C

    - (SCNVector3)projectPoint:(SCNVector3)point

    Параметры

    point

    Точка в системе мировой координаты сцены средства рендеринга.

    Возвращаемое значение

    Соответствующая точка в экранном пространстве (представление, уровень или область просмотра OpenGL) система координат средства рендеринга сцены.

    Обсуждение

    Z-координата возвращенной точки описывает глубину спроектированной точки относительно близких и далеких плоскостей отсечения видимого пространства средства рендеринга (определенный pointOfView узел). Проектирование точки на близкой плоскости отсечения возвращает точку, z-координата которой 0.0; проектирование точки на далекой плоскости отсечения возвращает точку, z-координата которой 1.0.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

    См. также

    – unprojectPoint:

  • Не проектирует точку от 2D пиксельной системы координат средства рендеринга к 3D системе мировой координаты сцены. (требуемый)

    Объявление

    Swift

    func unprojectPoint(_ point: SCNVector3) -> SCNVector3

    Objective C

    - (SCNVector3)unprojectPoint:(SCNVector3)point

    Параметры

    point

    Точка в экранном пространстве (представление, уровень или область просмотра OpenGL) система координат средства рендеринга сцены.

    Возвращаемое значение

    Соответствующая точка в системе мировой координаты сцены средства рендеринга.

    Обсуждение

    Z-координата point параметр описывает глубину, на которой можно не спроектировать точку относительно близких и далеких плоскостей отсечения видимого пространства средства рендеринга (определенный pointOfView узел). Непроектирование точки, z-координата которой 0.0 возвращает точку на близкой плоскости отсечения; непроектирование точки, z-координата которой 1.0 возвращает точку на далекой плоскости отсечения.

    2D точка в представленном пространстве координаты экрана может относиться к любой точке вдоль линейного сегмента в 3D координатном пространстве сцены. Чтобы протестировать на содержание сцены вдоль этой строки — например, найти геометрию, соответствующую расположению события щелчка в представлении — используют hitTest:options: метод.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • делегат делегат Требуемое свойство

    Объект делегата, получающий сообщения о процессе рендеринга SceneKit. (требуемый)

    Объявление

    Swift

    unowned(unsafe) var delegate: SCNSceneRendererDelegate? { get set }

    Objective C

    @property(nonatomic, assign) id< SCNSceneRendererDelegate > delegate

    Обсуждение

    Делегат средства рендеринга сцены является пользовательским объектом, который Вы обеспечиваете. Когда SceneKit обрабатывает сцену для рендеринга каждого кадра анимации, это уведомляет делегата после значительных шагов в процессе обновления-и-рендеринга. Существует два основного использования для делегата средства рендеринга сцены:

    • Реализация игровой логики на кадр. Используйте методы делегата обновить состояние Ваших игровых объектов и изменить график сцены в ответ, или в начале процесса рендеринга SceneKit для каждого кадра, или после того, как SceneKit обработает действия и анимации или выполнит моделирование физики для сцены.

    • Выполнение пользовательского рендеринга OpenGL. Используйте делегата средства рендеринга сцены для рисования собственного содержания OpenGL, любой, прежде чем SceneKit представит содержание сцены (как фон) или позже (как наложение).

      Этот рендеринг независим от графика сцены и его содержания. Если Вы вместо этого хотите выполнить пользовательский OpenGL, представляющий, который привязывается в расположении в координатном пространстве сцены, используйте rendererDelegate свойство SCNNode объект в графике сцены. Или если Вы хотите настроить рендеринг конфигураций и материалов SceneKit, используйте SCNShadable протокол для присоединения программ построения теней GLSL к объектам SceneKit.

    Для получения дополнительной информации посмотрите Ссылку на протокол SCNSceneRendererDelegate.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

  • Контекст рендеринга OpenGL, который SceneKit использует для рендеринга сцены. (требуемый) (только для чтения)

    Объявление

    Swift

    var context: UnsafeMutablePointer<Void> { get }

    Objective C

    @property(nonatomic, readonly) void *context

    Обсуждение

    В OS X значением этого свойства является Ядро OpenGL CGLContextObj объект.

    В iOS значение этого свойства EAGLContext объект.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

  • overlaySKScene overlaySKScene Требуемое свойство

    Сцена Набора Sprite, которая будет представлена поверх содержания SceneKit. (требуемый)

    Объявление

    Swift

    var overlaySKScene: SKScene! { get set }

    Objective C

    @property(nonatomic, retain) SKScene *overlaySKScene

    Обсуждение

    Используйте это свойство для рендеринга 2D содержания, накладывающего сцену — например, «возглавляет дисплей» для игры. Сцена Набора Sprite совместно использует тот же контекст OpenGL и ресурсы как средство рендеринга SceneKit, так использование этого свойства может обеспечить намного лучшую производительность, чем накладывание других представлений или уровней выше представления, представляющего Ваше содержание SceneKit.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.