SCNMaterialProperty
SCNMaterialProperty
объект представляет содержание — цвет, текстуру, или другие визуальные элементы — одного из визуальных свойств материала. Для свойств материала с содержанием текстуры, SCNMaterialProperty
класс также управляет опциями текстурирования, такими как обертывание, фильтрация и трансформация координаты текстуры.
Материал имеет несколько визуальных свойств, вместе определяющих его появление при освещении и штриховке. SceneKit представляет каждый пиксель в сцене путем объединения информации от свойств материала с расположениями, интенсивностью и цветами световых сигналов.
Содержание материальной собственности может быть или цветом, обеспечивающим универсальный эффект через поверхность материала или текстуру, которая SceneKit отображает через поверхность существенного использования координаты текстуры, предоставленные геометрическим объектом, к которому присоединен материал. Текстура, в свою очередь, может прибыть из любого из нескольких источников:
Объект изображения, или путь или URL к файлу образа
Массив шести изображений, которые будут использоваться в качестве карты куба
Базовый Слой анимации или иерархия слоев, которая сама может содержать анимированный контент
Текстура Набора Sprite, обеспечивающая статическое изображение или всю сцену Набора Sprite, представляющую, анимировала 2D содержание.
SceneKit использует материальную собственность contents
возразите по-разному для каждого визуального свойства материала. Например:
Когда Вы обеспечиваете цвет для
diffuse
свойство, это определяет основной цвет материала — конфигурации с помощью материала кажутся теневыми в градациях этого цвета, когда освещено белым светом. Если Вы вместо этого обеспечиваете изображение, SceneKit отображает изображение через поверхность геометрии вместо того, чтобы заштриховать с цветом однородной базы.Когда Вы обеспечиваете цвет для
specular
свойство, это влияет на цвет света, отраженного непосредственно к средству просмотра от поверхности геометрии с помощью материала. Если Вы вместо этого обеспечиваете полутоновое изображение, оно определяет тенденцию материала отразить свет непосредственно к средству просмотра — более легкие пиксели в изображении заставляют те области материала казаться более блестящими, и более темные пиксели заставляют материал появиться больше матового стекла.normal
свойство указывает ориентацию поверхности в каждой точке. Материалы являются унифицированно гладкими по умолчанию, так указывая, что цвет для этого свойства не имеет никакого полезного действия. Вместо этого можно указать изображение для этого свойства, описывающего контуры поверхности. SceneKit использует это изображение (названный картой нормалей) в освещении, создавая иллюзию сложной, ухабистой поверхности, не увеличивая сложность геометрии.
Для получения дополнительной информации на каждом визуальном свойстве и путях их содержание влияет на появление материала, видит Ссылку класса SCNMaterial.
SceneKit также использует SCNMaterialProperty
объекты в другом месте:
Обеспечить содержание, которое будет представлено позади сцены, в
background
свойствоSCNScene
объект,Влиять на цвет и форму освещения от источника света, в
gobo
свойствоSCNLight
объект.Связывать сэмплеры текстуры с пользовательскими отрывками исходного кода шейдера GLSL, в классах, соответствующих
SCNShadable
протокол.
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSObjectProtocol
-
NSSecureCoding
-
Печатаемый
-
SCNAnimatable
-
NSObject
-
NSSecureCoding
-
SCNAnimatable
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в OS X v10.8 и позже.
-
Создает новый объект материальной собственности с указанным содержанием.
Объявление
Swift
convenience init(contents
contents
: AnyObject)Objective C
+ (instancetype)materialPropertyWithContents:(id)
contents
Параметры
contents
Визуальное содержание материальной собственности — цвет, изображение или источник анимированного контента. Для получения дополнительной информации посмотрите обсуждение
contents
свойство.Возвращаемое значение
Новый объект материальной собственности.
Обсуждение
Недавно создаваемый
SCNMaterial
объекты содержатSCNMaterialProperty
экземпляры для всех их визуальных свойств. Для изменения визуальных свойств материала Вы изменяете те экземпляры вместо того, чтобы создать новые объекты материальной собственности.Вы создаете новый
SCNMaterialProperty
экземпляры для обеспечения текстур для использования с пользовательскими программами построения теней GLSL — для подробных данных см. Ссылку на протокол SCNShadable.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.9 и позже.
-
содержание содержание
СвойствоВизуальное содержание материальной собственности — цвет, изображение или источник анимированного контента. Animatable.
Объявление
Swift
var contents: AnyObject!
Objective C
@property(nonatomic, retain) id contents
Обсуждение
Значение этого свойства может быть любым из нескольких типов объекта:
Цвет (
NSColor
илиCGColorRef
), указывая постоянный цвет через поверхность материалаИзображение (
NSImage
илиCGImageRef
), указывая текстуру, которая будет отображена через поверхность материалаNSString
илиNSURL
объект, указывающий расположение файла образаМассив шести изображений (
NSArray
), указывая поверхности карты кубаБазовый Слой анимации (
CALayer
)Текстура Набора Sprite (
SKTexture
)Сцена Набора Sprite (
SKScene
)
Можно указать, что куб отображается только для содержания материала
reflective
свойство илиbackground
свойство сцены. Шесть изображений в массиве должны все иметь тот же размер и соответствовать поверхностям куба в следующем порядке: +X,-X, +Y,-Y, +Z,-Z (или Право, Левое, Вершина, Нижняя часть, Рядом, Далеко). Рисунок 1 иллюстрирует геометрическое расположение этого порядка. Для получения дополнительной информации на каждом визуальном свойстве и путях их содержание влияет на появление материала, видит Ссылку класса SCNMaterial.Можно указать любой Базовый Слой анимации как содержание материальной собственности, такое как уровень с анимированной иерархией подуровня,
AVPlayerLayer
объект, выводящий на экран видеоконтент, илиAVCaptureVideoPreviewLayer
объект, выводящий на экран живое видео от устройства захвата изображения.Можно использовать платформу Набора Sprite для обеспечения статического или анимированного контента для материальной собственности. Набор Sprite предоставляет возможности для генерации и изменения изображений текстуры, такой как
textureByGeneratingNormalMap
метод. Можно также использовать всю анимированную сцену Набора Sprite в качестве содержания материальной собственности.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit. Анимация изменения в этом свойстве исчезает между старым и новым содержанием.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-
интенсивность интенсивность
СвойствоЧисло между
0.0
и1.0
это модулирует эффект материальной собственности. Animatable.Обсуждение
Интенсивность по умолчанию
1.0
. Сокращение интенсивности постепенно исчезает содержание материальной собственности, вызывая различные эффекты в зависимости от который визуальное свойствоSCNMaterial
объект это представляет:Для
normal
свойство, интенсивность варьируется очевидная шероховатость нормально отображенной поверхности. Сокращение интенсивности заставляет поверхность казаться более гладкой.Для
multiply
свойство, сокращая интенсивность смешивает цвета материальной собственности с белым, эффективно сокращая силу цветного эффекта умножения.Для всех других свойств, сокращая интенсивность потускнел содержание материальной собственности.
Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.9 и позже.
-
contentsTransform contentsTransform
СвойствоТрансформация применилась к визуальному содержанию материальной собственности. Animatable.
Объявление
Swift
var contentsTransform: SCNMatrix4
Objective C
@property(nonatomic) SCNMatrix4 contentsTransform
Обсуждение
SceneKit применяет эту трансформацию к координатам текстуры, предоставленным геометрическим объектом, материал присоединен, затем использует получающиеся координаты для отображения материальной собственности
contents
через поверхность материала. (Эта трансформация не имеет никакого эффекта если материальная собственностьcontents
объект является постоянным цветом.)Например, можно использовать это свойство, чтобы уменьшить или повернуть текстуру относительно поверхности материала, как проиллюстрировано ниже:
Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-
Переносящееся поведение для координаты текстуры S.
Обсуждение
Переносящиеся режимы определяют поведение отображения текстур для случаев, откуда координаты текстуры материала расширяются вне диапазона
0.0
к1.0
. Например, если Вы используетеcontentsTransform
свойство для уменьшения текстуры относительно поверхности геометрии Вы используете свойства режима обертки, чтобы определить, повторяется ли текстура через поверхность.Координата текстуры S измеряет горизонтальную ось изображения текстуры, увеличивающегося с
0.0
в левом краю изображения к1.0
в правом краю.Режим обертки по умолчанию
SCNWrapModeClamp
. Посмотрите SCNWrapMode для доступных режимов и их эффектов.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
См. также
-
Переносящееся поведение для координаты текстуры T.
Обсуждение
Переносящиеся режимы определяют поведение отображения текстур для случаев, откуда координаты текстуры материала расширяются вне диапазона
0.0
к1.0
. Например, если Вы используетеcontentsTransform
свойство для уменьшения текстуры относительно поверхности геометрии Вы используете свойства режима обертки, чтобы определить, повторяется ли текстура через поверхность.Координата текстуры T измеряет вертикальную ось изображения текстуры, увеличивающегося с
0.0
у основания изображения к1.0
наверху.Режим обертки по умолчанию
SCNWrapModeClamp
. Посмотрите SCNWrapMode для доступных режимов и их эффектов.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
См. также
-
minificationFilter minificationFilter
СвойствоФильтрация текстуры для рендеринга содержимых изображения материальной собственности в размере, меньшем, чем то из исходного изображения.
Объявление
Swift
var minificationFilter: SCNFilterMode
Objective C
@property(nonatomic) SCNFilterMode minificationFilter
Обсуждение
Когда части материальной поверхности кажутся больше или меньшими, чем исходное изображение текстуры, фильтрация текстуры определяет появление содержания материальной собственности. Например, координаты текстуры в точке, далекой от камеры, могут соответствовать области нескольких пикселей в изображении текстуры. SceneKit использует фильтр минификации для определения цвета выбранного элемента текстуры в той точке.
Фильтр минификации по умолчанию
SCNFilterModeLinear
. Посмотрите SCNWrapMode для доступных режимов и их эффектов.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
См. также
-
magnificationFilter magnificationFilter
СвойствоФильтрация текстуры для рендеринга содержимых изображения материальной собственности в размере, больше, чем то из исходного изображения.
Объявление
Swift
var magnificationFilter: SCNFilterMode
Objective C
@property(nonatomic) SCNFilterMode magnificationFilter
Обсуждение
Когда части материальной поверхности кажутся больше или меньшими, чем исходное изображение текстуры, фильтрация текстуры определяет появление содержания материальной собственности. Например, координаты текстуры в точке около камеры могут соответствовать небольшой части пикселя в изображении текстуры. SceneKit использует фильтр увеличения для определения цвета выбранного элемента текстуры в той точке.
Фильтр увеличения по умолчанию
SCNFilterModeLinear
. Посмотрите SCNWrapMode для доступных режимов и их эффектов.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
См. также
-
Фильтрация текстуры для использования множественно отображается для рендеринга содержимых изображения материальной собственности в размере, меньшем, чем то из исходного изображения.
Объявление
Swift
var mipFilter: SCNFilterMode
Objective C
@property(nonatomic) SCNFilterMode mipFilter
Обсуждение
Множественное отображение является методом, который может увеличить производительность рендеринга при рендеринге изображения текстуры в меньших размерах. SceneKit автоматически создает, несколько множественно отображают уровни для содержимых изображения материальной собственности, каждого в части размера исходного изображения. При рендеринге, SceneKit автоматически демонстрационные элементы текстуры от уровня множественного отображения, самого близкого к представляемому размеру.
Если значение этого свойства
SCNFilterModeNone
(значение по умолчанию), SceneKit не использует множественное отображение. Если значение этого свойстваSCNFilterModeLinear
, SceneKit определяет пиксельные цвета с помощью трехлинейной фильтрации. Сначала это линейно интерполирует цвет элемента текстуры от каждого из этих двух, множественно отображают уровни, самые близкие к целевому размеру, тогда это линейно интерполирует между двумя результатами определить итоговый цвет. Этот метод обеспечивает более высокое качество рендеринга по умеренной стоимости производительности.Рисунок 2 показывает эффекты включения множественного отображения. В изображении слева, множественное отображение отключено, вызвав пикселизированные артефакты, поскольку настроечная таблица отступает в расстояние. Включение линейного множественного отображения приводит к более гладкому появлению.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
См. также
-
maxAnisotropy maxAnisotropy
СвойствоСумма анизотропной фильтрации текстуры, которая будет использоваться при рендеринге содержимых изображения материальной собственности.
Обсуждение
Анизотропная фильтрация является процессом, увеличивающим качество рендеринга текстуры, когда текстурированная поверхность появляется под экстремальным углом относительно камеры. Этот процесс работы путем выборки от многократных уровней множественного отображения текстуры для каждого представленного пикселя — термин анизотропия относится к числу выборок на пиксель. Более высокая анизотропия повышает качество рендеринга, но по стоимости для рендеринга производительности. Например, изображение слева на рисунке 3 не использует анизотропной фильтрации, приводящей к рендерингу артефактов, поскольку настроечная таблица отступает в расстояние. Другие изображения используют выше maxAnisotropy значения, сокращая рендеринг артефактов. Анизотропная фильтрация требует, множественно отображается, таким образом, это свойство только вступает в силу если значение
mipFilter
свойство неSCNFilterModeNone
.SceneKit автоматически увеличивает или уменьшает анизотропию для каждого представленного пикселя по мере необходимости для максимизации качества рендеринга до предела, указанного этим свойством. Когда рендеринг зависит от аппаратного обеспечения машинной графики в использовании, максимальный уровень анизотропии использовал. Установите значение этого свойства в
MAXFLOAT
постоянный (значение по умолчанию) для использования самого высокого уровня анизотропии, поддерживаемого GPU. AmaxAnisotropy
значение1.0
или ниже отключает анизотропную фильтрацию.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.9 и позже.
-
mappingChannel mappingChannel
СвойствоИсточник координат текстуры для отображения содержимых изображения материальной собственности.
Обсуждение
Геометрия может иметь многократные независимые источники координат текстуры, каждая из которых определяет уникальный номер канала отображения. Можно использовать эти каналы для отображения различных визуальных свойств материала по-разному. Например, геометрия, представляющая кадр рисунка, могла бы использовать один набор координат текстуры для отображения материалов самого кадра и другого набора координат текстуры для размещения изображения в кадр.
Для получения информации о создании конфигураций с многократными каналами отображения текстур см. Ссылку класса SCNGeometry.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-
borderColor borderColor
СвойствоЦвет раньше заполнял области поверхности материала, не покрытой содержимыми изображения материальной собственности.
Объявление
Swift
var borderColor: AnyObject
Objective C
@property(nonatomic, retain) id borderColor
Обсуждение
Когда содержание материальной собственности является изображением текстуры, и его свойства обертывания текстуры установлены в
SCNWrapModeClampToBorder
, цвет рамки появляется в областях текстурированной геометрии, не покрытой изображением текстуры, как показано на рисунке 4.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-
Режимы фильтрации текстуры, используемые
minificationFilter
,magnificationFilter
, иmipFilter
свойства.Объявление
Swift
enum SCNFilterMode : Int { case FilterModeNone case FilterModeNearest case FilterModeLinear }
Objective C
typedef enum : NSInteger { SCNFilterModeNone = 0, SCNFilterModeNearest = 1, SCNFilterModeLinear = 2, SCNNoFiltering = SCNFilterModeNone, SCNNearestFiltering = SCNFilterModeNearest, SCNLinearFiltering = SCNFilterModeLinear } SCNFilterMode;
Константы
-
FilterModeNone
SCNFilterModeNone
Никакая фильтрация текстуры не применяется.
Только допустимый для
mipFilter
свойство, указывая, что SceneKit не должен использовать отображение mip.Доступный в OS X v10.9 и позже.
-
FilterModeNearest
SCNFilterModeNearest
Фильтрация текстуры возвращает цвет только из одного элемента текстуры, расположение которого является самым близким к выбираемым координатам.
Доступный в OS X v10.9 и позже.
-
FilterModeLinear
SCNFilterModeLinear
Текстура, фильтрующая демонстрационные элементы текстуры от окружения выбираемых координат и линейно, интерполирует их цвета.
Доступный в OS X v10.9 и позже.
-
SCNNoFiltering
SCNNoFiltering
Эквивалентный
SCNFilterModeNone
.Осуждаемый в OS X v10.9. Использовать
SCNFilterModeNone
вместо этого.Доступный в OS X v10.8 и позже.
-
SCNNearestFiltering
SCNNearestFiltering
Эквивалентный
SCNFilterModeNearest
.Осуждаемый в OS X v10.9. Использовать
SCNFilterModeNone
вместо этого.Доступный в OS X v10.8 и позже.
-
SCNLinearFiltering
SCNLinearFiltering
Эквивалентный
SCNFilterModeLinear
.Осуждаемый в OS X v10.9. Использовать
SCNFilterModeLinear
вместо этого.Доступный в OS X v10.8 и позже.
Обсуждение
Когда части материальной поверхности кажутся больше или меньшими, чем исходное изображение текстуры, фильтрация текстуры определяет появление содержания материальной собственности. Например, когда текстура применяется к плоскости, отступающей далеко от камеры в расстояние:
Координаты текстуры в точке около камеры могут соответствовать небольшой части пикселя в исходном изображении. SceneKit использует
magnificationFilter
свойство для определения цвета выбранного элемента текстуры в той точке.Координаты текстуры в точке, далекой от камеры, могут соответствовать области нескольких пикселей в исходном изображении. SceneKit использует
minificationFilter
свойство для определения цвета выбранного элемента текстуры в той точке.
SceneKit также использует фильтр, указанный
mipFilter
свойство при генерации множественно отображает уровни для изображения текстуры.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-
-
Объявление
Swift
enum SCNWrapMode : Int { case WrapModeClamp case WrapModeRepeat case WrapModeClampToBorder case WrapModeMirror }
Objective C
typedef enum { SCNWrapModeClamp = 1, SCNWrapModeRepeat = 2, SCNWrapModeClampToBorder = 3, SCNWrapModeMirror = 4, SCNClamp = SCNWrapModeClamp, SCNRepeat = SCNWrapModeRepeat, SCNClampToBorder = SCNWrapModeClampToBorder, SCNMirror = SCNWrapModeMirror, } SCNWrapMode;
Константы
-
WrapModeClamp
SCNWrapModeClamp
Координаты текстуры фиксируются к диапазону от
0.0
к1.0
, включительно.Выборка текстуры в областях, координаты текстуры которых вышли бы за пределы этого диапазона, производит цвета элемента текстуры из самого близкого края изображения текстуры.
Доступный в OS X v10.9 и позже.
-
WrapModeRepeat
SCNWrapModeRepeat
Выборка текстуры использует только дробную часть координат текстуры, проходя через диапазон от
0.0
к (но не включая)1.0
.Выборка текстуры в областях материала, координаты текстуры которого шли бы снаружи от
0.0
к1.0
результаты в мозаичном размещении текстуры отображают через поверхность с помощью материала.Доступный в OS X v10.9 и позже.
-
WrapModeClampToBorder
SCNWrapModeClampToBorder
Текстура, выбирающая использование, текстурирует цвета для координат в диапазоне от
0.0
к1.0
(включительно) и материальная собственностьborderColor
значение иначе.Выборка текстуры в областях, координаты текстуры которых вышли бы за пределы этого диапазона использование
borderColor
свойство вместо элемента текстуры окрашивает от изображения текстуры.Доступный в OS X v10.9 и позже.
-
WrapModeMirror
SCNWrapModeMirror
Выборка текстуры координат текстуры вне располагается от
0.0
к1.0
должен вести себя, как будто диапазон инвертирует перед повторением.Выборка текстуры в областях материала, координаты текстуры которого шли бы снаружи от
0.0
к1.0
результаты в мозаичном размещении и изображение текстуры и его зеркальное отображение через поверхность с помощью материала.Доступный в OS X v10.9 и позже.
-
SCNClamp
SCNClamp
Эквивалентный
SCNWrapModeClamp
.Осуждаемый в OS X v10.9. Использовать
SCNWrapModeClamp
вместо этого.Доступный в OS X v10.8 и позже.
-
SCNRepeat
SCNRepeat
Эквивалентный
SCNWrapModeRepeat
.Осуждаемый в OS X v10.9. Использовать
SCNWrapModeRepeat
вместо этого.Доступный в OS X v10.8 и позже.
-
SCNClampToBorder
SCNClampToBorder
Эквивалентный
SCNWrapModeClampToBorder
.Осуждаемый в OS X v10.9. Использовать
SCNWrapModeClampToBorder
вместо этого.Доступный в OS X v10.8 и позже.
-
SCNMirror
SCNMirror
Эквивалентный
SCNWrapModeMirror
.Осуждаемый в OS X v10.9. Использовать
SCNWrapModeMirror
вместо этого.Доступный в OS X v10.8 и позже.
Обсуждение
Переносящиеся режимы определяют поведение отображения текстур для случаев, откуда координаты текстуры материала расширяются вне диапазона
0.0
к1.0
. Например, если Вы используетеcontentsTransform
свойство для уменьшения текстуры относительно поверхности геометрии Вы используете свойства режима обертки, чтобы определить, повторяется ли текстура через поверхность. Рисунок 4 показывает эффект каждого режима обертывания на иначе идентичном материале.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-