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

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

Разработчик

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

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

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

SCNLight

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


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


Swift

import SceneKit

Objective C

@import SceneKit;

Доступность


Доступный в iOS 8.0 и позже.

SCNLight объект представляет источник света. SceneKit обеспечивает четыре типа света: окружающая среда, направленная, всенаправленная, и спот. Вы освещаете свою сцену путем присоединения световых сигналов к SCNNode объекты с помощью их light свойство.

Вы устанавливаете тип света с помощью type свойство. В зависимости от типа света его позиция и направление могут влиять на его поведение — Вы управляете позицией света и направлением через узел, к которому присоединен свет. Направление света, если применимо к его типу, приезжает отрицательная ось z системы локальной координаты своего узла.

Другие свойства света влияют, как это освещает сцену. Все световые сигналы имеют a color свойство, взаимодействующее с SCNMaterial объекты произвести пиксель раскрашивают представленную сцену. Другие свойства, такие как затухание, затенение, и угол спота, могут влиять на поведение определенных типов световых сигналов.

Число и тип световых сигналов в сцене являются ключевым фактором в производительности рендеринга SceneKit. Для эффективного рендеринга следуйте этим советам:

  • Используйте световые сигналы SceneKit только для динамических источников света или световых сигналов то перемещение влияния объекты. Для статически освещенных частей Вашей сцены создайте текстуру карты освещенностей во внешнем 3D инструменте разработки (также известный как испеченное освещение) и примените его к объектам в сцене с помощью multiply материальная собственность.

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

  • Создает новый световой объект.

    Объявление

    Objective C

    + (instancetype)light

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

    Новый световой объект.

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

    Objective C

    @import SceneKit;

    Доступность

    Доступный в iOS 8.0 и позже.

  • type Свойство

    Постоянная идентификация общего поведения света.

    Объявление

    Swift

    var type: String

    Objective C

    @property(nonatomic, copy) NSString *type

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • color Свойство

    Цвет света. Animatable.

    Объявление

    Swift

    var color: AnyObject

    Objective C

    @property(nonatomic, retain) id color

    Обсуждение

    Значение этого свойства NSColor или CGColorRef объект. Цвет по умолчанию является белым.

    Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • gobo Свойство

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

    Объявление

    Swift

    var gobo: SCNMaterialProperty { get }

    Objective C

    @property(nonatomic, readonly) SCNMaterialProperty *gobo

    Обсуждение

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

    Вы изменяете появление центра внимания путем изменения contents свойство объекта постоянно присвоилось к этому свойству. Как с другими свойствами материала, можно использовать цвет или изображение или Базовый Слой анимации, содержащий анимированный контент, как звукопоглощающий щит освещения.

    Это свойство применяется только к световым сигналам чей type свойство SCNLightTypeSpot.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • name Свойство

    Имя связалось со светом.

    Объявление

    Swift

    var name: String?

    Objective C

    @property(nonatomic, copy) NSString *name

    Обсуждение

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

    Легкие имена сохраняются при экспорте сцены в файл с помощью writeToURL:options:delegate:progressHandler: метод. Легкие имена также появляются в редакторе сцены XCode.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • attenuationStartDistance Свойство

    Расстояние от света, в котором его интенсивность начинает уменьшаться. Animatable.

    Объявление

    Swift

    var attenuationStartDistance: CGFloat

    Objective C

    @property(nonatomic) CGFloat attenuationStartDistance

    Обсуждение

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

    Значение по умолчанию 0.0, указание никакого затухания (интенсивность света является тем же на всех расстояниях).

    Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • attenuationEndDistance Свойство

    Расстояние от света, в котором полностью уменьшена его интенсивность. Animatable.

    Объявление

    Swift

    var attenuationEndDistance: CGFloat

    Objective C

    @property(nonatomic) CGFloat attenuationEndDistance

    Обсуждение

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

    Значение по умолчанию 0.0, указание никакого затухания (интенсивность света является тем же на всех расстояниях).

    Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • attenuationFalloffExponent Свойство

    Кривая перехода для интенсивности света между ее затуханием запускает и заканчивает расстояния. Animatable.

    Объявление

    Swift

    var attenuationFalloffExponent: CGFloat

    Objective C

    @property(nonatomic) CGFloat attenuationFalloffExponent

    Обсуждение

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

    Значение 0.0 не указывает затухания — интенсивность света является тем же на всех расстояниях. Значение 1.0 указывает линейный переход и значение 2.0 (значение по умолчанию), указывает квадратичную кривую перехода. Более высокие значения имеют мало видимого эффекта.

    Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • spotInnerAngle Свойство

    Угол, в градусах, области полностью освещен центром внимания. Animatable.

    Объявление

    Swift

    var spotInnerAngle: CGFloat

    Objective C

    @property(nonatomic) CGFloat spotInnerAngle

    Обсуждение

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

    Значение по умолчанию 0.0, указание, что только центр области, освещенной центром внимания, освещен в полной интенсивности.

    Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • spotOuterAngle Свойство

    Угол, в градусах, области частично освещен центром внимания. Animatable.

    Объявление

    Swift

    var spotOuterAngle: CGFloat

    Objective C

    @property(nonatomic) CGFloat spotOuterAngle

    Обсуждение

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

    Значение по умолчанию 45.0.

    Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • castsShadow Свойство

    Булево значение, определяющее, бросает ли свет тени.

    Объявление

    Swift

    var castsShadow: Bool

    Objective C

    @property(nonatomic) BOOL castsShadow

    Обсуждение

    Конфигурации, освещенные легкими наклонными тенями, только если значение этого свойства YEStrue и type свойство света SCNLightTypeSpot. Значение по умолчанию NOfalse.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • shadowRadius Свойство

    Число, указывающее сумму размывания вокруг краев теней, брошенных светом. Animatable.

    Объявление

    Swift

    var shadowRadius: CGFloat

    Objective C

    @property(nonatomic) CGFloat shadowRadius

    Обсуждение

    SceneKit производит тени с мягким краем путем рендеринга контуров геометрии в 2D схему затенения и затем использования нескольких взвешенных выборок из схемы затенения для определения силы тени в каждом пикселе в представленной сцене. Это свойство управляет радиусом выборки схемы затенения. Более низкие числа приводят к теням с резко определенными, пикселизированными краями; более высокие числа приводят к расплывчатым теням.

    Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • shadowColor Свойство

    Цвет теней брошен светом. Animatable.

    Объявление

    Swift

    var shadowColor: AnyObject

    Objective C

    @property(nonatomic, retain) id shadowColor

    Обсуждение

    Значение этого свойства NSColor или CGColorRef объект. SceneKit смешивает цвет света с другими цветами в представленном изображении для произведения эффекта тени. Непрозрачность цвета (альфа-значение) определяет интенсивность теней. Цвет тени по умолчанию является черным с 50%-й непрозрачностью.

    Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • shadowMapSize Свойство

    Размер схемы затенения отображает тот SceneKit рендеринг при создании теней.

    Объявление

    Swift

    var shadowMapSize: CGSize

    Objective C

    @property(nonatomic) CGSize shadowMapSize

    Обсуждение

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

    Значение по умолчанию CGSizeZero, указание, что SceneKit выбирает размер схемы затенения автоматически.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • shadowSampleCount Свойство

    Число выборок из схемы затенения, что использование SceneKit для рендеринга каждого пикселя.

    Объявление

    Swift

    var shadowSampleCount: Int

    Objective C

    @property(nonatomic) NSUInteger shadowSampleCount

    Обсуждение

    SceneKit производит тени с мягким краем путем рендеринга контуров геометрии сцены в 2D схему затенения и затем использования нескольких взвешенных выборок из схемы затенения для определения силы тени в каждом пикселе в представленной сцене. Это свойство управляет числом выборок из схемы затенения, используемой для рендеринга каждого пикселя. Более высокие числа приводят к более гладким краям; более низкая производительность рендеринга увеличения чисел.

    Значение по умолчанию 16 на OS X и 1 на iOS.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • shadowMode Свойство

    Использование режима SceneKit для рендеринга теней.

    Объявление

    Swift

    var shadowMode: SCNShadowMode

    Objective C

    @property(nonatomic) SCNShadowMode shadowMode

    Обсуждение

    Для возможных значений посмотрите SCNShadowMode. Режим по умолчанию SCNShadowModeForward в iOS и в OS X v10.10 или позже. В OS X v10.9 или ранее, режим по умолчанию SCNShadowModeDeferred.

    Значение по умолчанию YEStrue. Если Вы изменяете значение на NOfalse, SceneKit использует только альфа-компонент от shadowColor свойство при рендеринге теней.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • shadowBias Свойство

    Сумма исправления для применения к тени для предотвращения артефактов рендеринга.

    Объявление

    Swift

    var shadowBias: CGFloat

    Objective C

    @property(nonatomic) CGFloat shadowBias

    Обсуждение

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

    Значение по умолчанию 1.0.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • orthographicScale Свойство

    Ортогональный масштаб SceneKit использует при рендеринге схемы затенения для направленного света.

    Объявление

    Swift

    var orthographicScale: CGFloat

    Objective C

    @property(nonatomic) CGFloat orthographicScale

    Обсуждение

    SceneKit рисует изображение схемы затенения путем рендеринга сцены с точки зрения узла, содержащего свет. Направленный свет игнорирует position свойство узла, содержащего их, потому что их свет имеет постоянное направление. Поэтому рендеринг схемы затенения для направленного света требует ортогональной проекции. Как orthographicScale свойство объекта камеры, это свойство указывает степень сцены, “видимой к” свету при рендеринге схемы затенения.

    Это свойство только применяется если свет type свойство SCNLightTypeDirectional.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • zFar Свойство

    Максимальное расстояние между светом и видимой поверхностью для кастинга теней.

    Объявление

    Swift

    var zFar: CGFloat

    Objective C

    @property(nonatomic) CGFloat zFar

    Обсуждение

    Центр внимания бросает тени если castsShadow свойство YEStrue. Если поверхность более далека от света, чем это расстояние, тени не брошены против поверхности.

    Значение по умолчанию 1.0.

    Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • zNear Свойство

    Минимальное расстояние между светом и видимой поверхностью для кастинга теней. Animatable.

    Объявление

    Swift

    var zNear: CGFloat

    Objective C

    @property(nonatomic) CGFloat zNear

    Обсуждение

    Центр внимания бросает тени если castsShadow свойство YEStrue. Если поверхность ближе к свету, чем это расстояние, тени не брошены против поверхности.

    Значение по умолчанию 100.0.

    Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • categoryBitMask Свойство

    Маска, определяющая, которому принадлежат категории этот свет.

    Объявление

    Swift

    var categoryBitMask: Int

    Objective C

    @property(nonatomic) NSUInteger categoryBitMask

    Обсуждение

    Можно присвоить каждый свет и каждый узел в сцене к одной или более категориям, каждый соответствующий немного в битовой маске. Вы определяете значения маски, используемые в Вашем приложении. Когда SceneKit представляет сцену, он выдерживает сравнение categoryBitMask свойство каждого узла с тем из каждого света с помощью поразрядной операции И. Если результатом является ненулевое значение, использование SceneKit что свет при рендеринге того узла.

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

    Маска по умолчанию имеет весь набор битов, означая, что узлы всех категорий освещены светом.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • Константы, указывающие общее поведение света, используемого type свойство.

    Объявление

    Swift

    let SCNLightTypeAmbient: String let SCNLightTypeOmni: String let SCNLightTypeDirectional: String let SCNLightTypeSpot: String

    Objective C

    NSString * const SCNLightTypeAmbient; NSString * const SCNLightTypeOmni; NSString * const SCNLightTypeDirectional; NSString * const SCNLightTypeSpot;

    Константы

    • SCNLightTypeAmbient

      Свет, освещающий все объекты в сцене от всех направлений.

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

      Доступный в iOS 8.0 и позже.

    • SCNLightTypeOmni

      Всенаправленный свет, также известный как точечный свет.

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

      Доступный в iOS 8.0 и позже.

    • SCNLightTypeDirectional

      Источник света с универсальным направлением и постоянной интенсивностью.

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

      Доступный в iOS 8.0 и позже.

    • SCNLightTypeSpot

      Источник света, освещающий конусообразную область.

      Позиция и ориентация узла, содержащего свет, определяют область, освещенную центром внимания, и все ключи атрибута освещения влияют на его появление.

      Доступный в iOS 8.0 и позже.

    Обсуждение

    Каждая из этих четырех сцен на рисунке 1 имеет то же содержание, освещенное синглом SCNLight объект. Узел, содержащий источник света, имеет ту же позицию и ориентацию в каждой сцене — все различия между этими четырьмя изображениями вследствие света type свойство.

    Типы рисунка 1Light image: ../Art/lights.pdf
  • Опции для рендеринга SceneKit теней, брошенных светом, используемым shadowMode свойство.

    Объявление

    Swift

    enum SCNShadowMode : Int { case Forward case Deferred case Modulated }

    Objective C

    typedef enum : NSInteger { SCNShadowModeForward = 0, SCNShadowModeDeferred = 1, SCNShadowModeModulated = 2, } SCNShadowMode;

    Константы

    • Forward

      SCNShadowModeForward

      SceneKit представляет тени во время освещения вычислений.

      В этом режиме, компонентах цвета света shadowColor свойство не применяется. Альфа-компонент цвета определяет интенсивность теней.

      Доступный в iOS 8.0 и позже.

    • Deferred

      SCNShadowModeDeferred

      SceneKit представляет тени в передаче постобработки.

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

      Доступный в iOS 8.0 и позже.

    • Modulated

      SCNShadowModeModulated

      SceneKit представляет тени путем проектирования света gobo изображение. Свет не освещает сцену.

      Как правило, Вы используете этот режим для создания низкой точности, высокоэффективной тени под игрой символьный или подобный элемент сцены: Используйте изображение радиального градиента (черный к белому) для света gobo свойство и использование categoryBitMask свойства, чтобы препятствовать тому, чтобы теневое изображение появилось на символе.

      Доступный в iOS 8.0 и позже.

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.