SCNLight
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSCopying
-
NSObjectProtocol
-
NSSecureCoding
-
Печатаемый
-
SCNAnimatable
-
SCNTechniqueSupport
-
NSCopying
-
NSObject
-
NSSecureCoding
-
SCNAnimatable
-
SCNTechniqueSupport
Оператор импорта
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
СвойствоПостоянная идентификация общего поведения света.
Обсуждение
Тип света определяет форму и направленность освещения, предоставленного светом, а также набором атрибутов, доступных для изменения поведения света. Например, легкие типы включают всенаправленные световые сигналы и центры внимания. Посмотрите Легкие Типы для полного набора типов и их способов поведения.
Оператор импорта
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
СвойствоИмя связалось со светом.
Обсуждение
Можно обеспечить описательное имя для света для создания управления графиком сцены проще. Световые сигналы, загруженные из файла сцены, могут иметь имена, присвоенные художником, использующим 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
Обсуждение
Конфигурации, освещенные легкими наклонными тенями, только если значение этого свойства
YES
true
иtype
свойство светаSCNLightTypeSpot
. Значение по умолчаниюNO
false
.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
shadowRadius
СвойствоЧисло, указывающее сумму размывания вокруг краев теней, брошенных светом. Animatable.
Обсуждение
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 рендеринг при создании теней.
Обсуждение
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
.Значение по умолчанию
YES
true
. Если Вы изменяете значение наNO
false
, SceneKit использует только альфа-компонент отshadowColor
свойство при рендеринге теней.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
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
СвойствоМаксимальное расстояние между светом и видимой поверхностью для кастинга теней.
Обсуждение
Центр внимания бросает тени если
castsShadow
свойствоYES
true
. Если поверхность более далека от света, чем это расстояние, тени не брошены против поверхности.Значение по умолчанию
1.0
.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
zNear
СвойствоМинимальное расстояние между светом и видимой поверхностью для кастинга теней. Animatable.
Обсуждение
Центр внимания бросает тени если
castsShadow
свойствоYES
true
. Если поверхность ближе к свету, чем это расстояние, тени не брошены против поверхности.Значение по умолчанию
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
свойство. -
-
Опции для рендеринга 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 и позже.
-