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

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

Разработчик

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

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

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

SCNMaterialProperty

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


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


Swift

import SceneKit

Objective C

@import SceneKit;

Доступность


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

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

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

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

  • Объект изображения, или путь или URL к файлу образа

  • Массив шести изображений, которые будут использоваться в качестве карты куба

  • Базовый Слой анимации или иерархия слоев, которая сама может содержать анимированный контент

  • Текстура Набора Sprite, обеспечивающая статическое изображение или всю сцену Набора Sprite, представляющую, анимировала 2D содержание.

SceneKit использует материальную собственность contents возразите по-разному для каждого визуального свойства материала. Например:

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

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

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

Для получения дополнительной информации на каждом визуальном свойстве и путях их содержание влияет на появление материала, видит Ссылку класса SCNMaterial.

SceneKit также использует SCNMaterialProperty объекты в другом месте:

  • Обеспечить содержание, которое будет представлено позади сцены, в background свойство SCNScene объект,

  • Влиять на цвет и форму освещения от источника света, в gobo свойство SCNLight объект.

  • Связывать сэмплеры текстуры с пользовательскими отрывками исходного кода шейдера GLSL, в классах, соответствующих SCNShadable протокол.

  • Создает новый объект материальной собственности с указанным содержанием.

    Объявление

    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

    Доступность

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

  • contents Свойство

    Визуальное содержание материальной собственности — цвет, изображение или источник анимированного контента. 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.

    Индексы рисунка 1Array изображений в карте куба image: ../Art/cubemap.pdf

    Можно указать любой Базовый Слой анимации как содержание материальной собственности, такое как уровень с анимированной иерархией подуровня, AVPlayerLayer объект, выводящий на экран видеоконтент, или AVCaptureVideoPreviewLayer объект, выводящий на экран живое видео от устройства захвата изображения.

    Можно использовать платформу Набора Sprite для обеспечения статического или анимированного контента для материальной собственности. Набор Sprite предоставляет возможности для генерации и изменения изображений текстуры, такой как textureByGeneratingNormalMap метод. Можно также использовать всю анимированную сцену Набора Sprite в качестве содержания материальной собственности.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • intensity Свойство

    Число между 0.0 и 1.0 это модулирует эффект материальной собственности. Animatable.

    Объявление

    Swift

    var intensity: CGFloat

    Objective C

    @property(nonatomic) CGFloat intensity

    Обсуждение

    Интенсивность по умолчанию 1.0. Сокращение интенсивности постепенно исчезает содержание материальной собственности, вызывая различные эффекты в зависимости от который визуальное свойство SCNMaterial объект это представляет:

    • Для normal свойство, интенсивность варьируется очевидная шероховатость нормально отображенной поверхности. Сокращение интенсивности заставляет поверхность казаться более гладкой.

    • Для multiply свойство, сокращая интенсивность смешивает цвета материальной собственности с белым, эффективно сокращая силу цветного эффекта умножения.

    • Для всех других свойств, сокращая интенсивность потускнел содержание материальной собственности.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • contentsTransform Свойство

    Трансформация применилась к визуальному содержанию материальной собственности. Animatable.

    Объявление

    Swift

    var contentsTransform: SCNMatrix4

    Objective C

    @property(nonatomic) SCNMatrix4 contentsTransform

    Обсуждение

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

    Например, можно использовать это свойство, чтобы уменьшить или повернуть текстуру относительно поверхности материала, как проиллюстрировано ниже:

    image: ../Art/material_content_transform.pdf

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • wrapS Свойство

    Переносящееся поведение для координаты текстуры S.

    Объявление

    Swift

    var wrapS: SCNWrapMode

    Objective C

    @property(nonatomic) SCNWrapMode wrapS

    Обсуждение

    Переносящиеся режимы определяют поведение отображения текстур для случаев, откуда координаты текстуры материала расширяются вне диапазона 0.0 к 1.0. Например, если Вы используете contentsTransform свойство для уменьшения текстуры относительно поверхности геометрии Вы используете свойства режима обертки, чтобы определить, повторяется ли текстура через поверхность.

    Координата текстуры S измеряет горизонтальную ось изображения текстуры, увеличивающегося с 0.0 в левом краю изображения к 1.0 в правом краю.

    Режим обертки по умолчанию SCNWrapModeClamp. Посмотрите SCNWrapMode для доступных режимов и их эффектов.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

    См. также

    wrapT

  • wrapT Свойство

    Переносящееся поведение для координаты текстуры T.

    Объявление

    Swift

    var wrapT: SCNWrapMode

    Objective C

    @property(nonatomic) SCNWrapMode wrapT

    Обсуждение

    Переносящиеся режимы определяют поведение отображения текстур для случаев, откуда координаты текстуры материала расширяются вне диапазона 0.0 к 1.0. Например, если Вы используете contentsTransform свойство для уменьшения текстуры относительно поверхности геометрии Вы используете свойства режима обертки, чтобы определить, повторяется ли текстура через поверхность.

    Координата текстуры T измеряет вертикальную ось изображения текстуры, увеличивающегося с 0.0 у основания изображения к 1.0 наверху.

    Режим обертки по умолчанию SCNWrapModeClamp. Посмотрите SCNWrapMode для доступных режимов и их эффектов.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

    См. также

    обертки

  • minificationFilter Свойство

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

    Объявление

    Swift

    var minificationFilter: SCNFilterMode

    Objective C

    @property(nonatomic) SCNFilterMode minificationFilter

    Обсуждение

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

    Фильтр минификации по умолчанию SCNFilterModeLinear. Посмотрите SCNWrapMode для доступных режимов и их эффектов.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

    См. также

    magnificationFilter
    mipFilter

  • magnificationFilter Свойство

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

    Объявление

    Swift

    var magnificationFilter: SCNFilterMode

    Objective C

    @property(nonatomic) SCNFilterMode magnificationFilter

    Обсуждение

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

    Фильтр увеличения по умолчанию SCNFilterModeLinear. Посмотрите SCNWrapMode для доступных режимов и их эффектов.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

    См. также

    minificationFilter
    mipFilter

  • mipFilter Свойство

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

    Объявление

    Swift

    var mipFilter: SCNFilterMode

    Objective C

    @property(nonatomic) SCNFilterMode mipFilter

    Обсуждение

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

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

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

    Множественное отображение рисунка 2Texture image: ../Art/filter_mip.pdf

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • maxAnisotropy Свойство

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

    Объявление

    Swift

    var maxAnisotropy: CGFloat

    Objective C

    @property(nonatomic) CGFloat maxAnisotropy

    Обсуждение

    Анизотропная фильтрация является процессом, увеличивающим качество рендеринга текстуры, когда текстурированная поверхность появляется под экстремальным углом относительно камеры. Этот процесс работы путем выборки от многократных уровней множественного отображения текстуры для каждого представленного пикселя — термин анизотропия относится к числу выборок на пиксель. Более высокая анизотропия повышает качество рендеринга, но по стоимости для рендеринга производительности. Например, изображение слева на рисунке 3 не использует анизотропной фильтрации, приводящей к рендерингу артефактов, поскольку настроечная таблица отступает в расстояние. Другие изображения используют выше maxAnisotropy значения, сокращая рендеринг артефактов. Анизотропная фильтрация требует, множественно отображается, таким образом, это свойство только вступает в силу если значение mipFilter свойство не SCNFilterModeNone.

    Фильтрация рисунка 3Anisotropic image: ../Art/filter_mip_aniso.pdf

    SceneKit автоматически увеличивает или уменьшает анизотропию для каждого представленного пикселя по мере необходимости для максимизации качества рендеринга до предела, указанного этим свойством. Когда рендеринг зависит от аппаратного обеспечения машинной графики в использовании, максимальный уровень анизотропии использовал. Установите значение этого свойства в MAXFLOAT постоянный (значение по умолчанию) для использования самого высокого уровня анизотропии, поддерживаемого GPU. A maxAnisotropy значение 1.0 или ниже отключает анизотропную фильтрацию.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • mappingChannel Свойство

    Источник координат текстуры для отображения содержимых изображения материальной собственности.

    Объявление

    Swift

    var mappingChannel: Int

    Objective C

    @property(nonatomic) NSInteger mappingChannel

    Обсуждение

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

    Для получения информации о создании конфигураций с многократными каналами отображения текстур см. Ссылку класса SCNGeometry.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • borderColor Свойство

    Цвет раньше заполнял области поверхности материала, не покрытой содержимыми изображения материальной собственности.

    Объявление

    Swift

    var borderColor: AnyObject

    Objective C

    @property(nonatomic, retain) id borderColor

    Обсуждение

    Когда содержание материальной собственности является изображением текстуры, и его свойства обертывания текстуры установлены в SCNWrapModeClampToBorder, цвет рамки появляется в областях текстурированной геометрии, не покрытой изображением текстуры, как показано на рисунке 4.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Режимы фильтрации текстуры, используемые minificationFilter, magnificationFilter, и mipFilter свойства.

    Объявление

    Swift

    enum SCNFilterMode : Int { case None case Nearest case Linear }

    Objective C

    typedef enum : NSInteger { SCNFilterModeNone = 0, SCNFilterModeNearest = 1, SCNFilterModeLinear = 2, } SCNFilterMode;

    Константы

    • None

      SCNFilterModeNone

      Никакая фильтрация текстуры не применяется.

      Только допустимый для mipFilter свойство, указывая, что SceneKit не должен использовать отображение mip.

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

    • Nearest

      SCNFilterModeNearest

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

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

    • Linear

      SCNFilterModeLinear

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

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

    Обсуждение

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

    • Координаты текстуры в точке около камеры могут соответствовать небольшой части пикселя в исходном изображении. SceneKit использует magnificationFilter свойство для определения цвета выбранного элемента текстуры в той точке.

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Режимы для применения к обертыванию текстуры, используемому wrapT и wrapS свойства.

    Объявление

    Swift

    enum SCNWrapMode : Int { case Clamp case Repeat case ClampToBorder case Mirror }

    Objective C

    typedef enum { SCNWrapModeClamp = 1, SCNWrapModeRepeat = 2, SCNWrapModeClampToBorder = 3, SCNWrapModeMirror = 4, } SCNWrapMode;

    Константы

    • Clamp

      SCNWrapModeClamp

      Координаты текстуры фиксируются к диапазону от 0.0 к 1.0, включительно.

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

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

    • Repeat

      SCNWrapModeRepeat

      Выборка текстуры использует только дробную часть координат текстуры, проходя через диапазон от 0.0 к (но не включая) 1.0.

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

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

    • ClampToBorder

      SCNWrapModeClampToBorder

      Текстура, выбирающая использование, текстурирует цвета для координат в диапазоне от 0.0 к 1.0 (включительно) и материальная собственность borderColor значение иначе.

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

      Доступный в iOS 8.0 через iOS 8.2.

    • Mirror

      SCNWrapModeMirror

      Выборка текстуры координат текстуры вне располагается от 0.0 к 1.0 должен вести себя, как будто диапазон инвертирует перед повторением.

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

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

    Обсуждение

    Переносящиеся режимы определяют поведение отображения текстур для случаев, откуда координаты текстуры материала расширяются вне диапазона 0.0 к 1.0. Например, если Вы используете contentsTransform свойство для уменьшения текстуры относительно поверхности геометрии Вы используете свойства режима обертки, чтобы определить, повторяется ли текстура через поверхность. Рисунок 4 показывает эффект каждого режима обертывания на иначе идентичном материале.

    Режимы обертывания рисунка 4Texture image: ../Art/material_wrap_mode.pdf

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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