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

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

Разработчик

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

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

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

SCNMaterial

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

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

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

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


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


Swift

import SceneKit

Objective C

@import SceneKit;

Доступность


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

    Объявление

    Objective C

    + (instancetype)material

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

    Новый материальный объект.

    Обсуждение

    Недавно создаваемый материал содержит SCNMaterialProperty объект для каждого из его восьми визуальных свойств. Вы изменяете появление материала путем установки contents из каждого визуального свойства. Для получения информации о содержании каждого визуального свойства по умолчанию и как это влияет на появление материала, посмотрите Конфигурирование Визуальных Свойств Материала.

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

    Objective C

    @import SceneKit;

    Доступность

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

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

    Объявление

    Swift

    var diffuse: SCNMaterialProperty { get }

    Objective C

    @property(nonatomic, readonly) SCNMaterialProperty *diffuse

    Обсуждение

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

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

    Рисунок 1Adding рассеянная текстура к материалу image: ../Art/mat_diffuse.pdf

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    var ambient: SCNMaterialProperty { get }

    Objective C

    @property(nonatomic, readonly) SCNMaterialProperty *ambient

    Обсуждение

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

    По умолчанию, свойство окружения contents объект является темно-серым цветом. Изменение содержания свойства окружения позволяет Вам указать различный цвет или текстуру для областей поверхности, не непосредственно освещенной световыми сигналами в сцене. Чтобы заставить материал тождественно реагировать и на окружающую среду и на рассеянный свет, установите locksAmbientWithDiffuse свойство к YEStrue.

    Рисунок 2 показывает материал (с текстурой для diffuse свойство) прежде и после установки содержания свойства окружения к сплошному цвету.

    Рисунок 2Adding цвет освещения к материалу image: ../Art/mat_ambient.pdf

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    var specular: SCNMaterialProperty { get }

    Objective C

    @property(nonatomic, readonly) SCNMaterialProperty *specular

    Обсуждение

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

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

    Рисунок 3 показывает материал (с текстурой для diffuse свойство) прежде и после обеспечения зеркального изображения карты. Заметьте, что яркие зеркальные подсветки появляются только на частях поверхности, где зеркальное изображение карты является белым.

    Рисунок 3Adding зеркальная карта к материалу image: ../Art/mat_specular.pdf

    Материал lightingModelName свойство определяет формулу использование SceneKit для объединения его specularity и других визуальных свойств со световыми сигналами и другого содержания в сцене для создания итогового цвета для каждого представленного пикселя в представленной сцене. Для получения дополнительной информации посмотрите Модели распространения света.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    var normal: SCNMaterialProperty { get }

    Objective C

    @property(nonatomic, readonly) SCNMaterialProperty *normal

    Обсуждение

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

    Также можно использовать изображение текстуры в качестве карты нормалей, описывающей ориентацию поверхности для каждого пикселя в текстуре. Когда SceneKit использует изображение, он обрабатывает R, G, и компоненты B каждого как эти X, Y, и компоненты Z поверхностного вектора нормали. Поскольку текстура карты нормалей может хранить намного более подробную поверхностную информацию, чем геометрия, можно использовать нормальное свойство материала, чтобы моделировать грубые поверхности, такие как камень или добавить рельефные или выгравированные проекты к иначе гладкой поверхности.

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

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

    Рисунок 4Adding карта нормалей к материалу image: ../Art/mat_normal.pdf

    Материал lightingModelName свойство определяет формулу использование SceneKit для объединения его поверхности normals и других визуальных свойств со световыми сигналами и другого содержания в сцене для создания итогового цвета для каждого представленного пикселя в представленной сцене. Для получения дополнительной информации посмотрите Модели распространения света.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Объект, определяющий отраженный цвет для каждой точки на поверхности. (только для чтения)

    Объявление

    Swift

    var reflective: SCNMaterialProperty { get }

    Objective C

    @property(nonatomic, readonly) SCNMaterialProperty *reflective

    Обсуждение

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

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

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

    • Карта сферы, квадратное изображение, содержание которого изображает среду, как отражено зеркальной сферой.

    • Карта куба, массив шести квадратных изображений, вместе формирующих воображаемый куб, включающий сцену, внутренние поверхности которой отражаются материалом. Вы создаете карту куба путем установки отражающего свойства contents возразите против NSArray экземпляр, содержащий шесть изображений, каждый соответствующий направлению в мировой координате сцены располагает с интервалами в следующем порядке: +X,-X, +Y,-Y, +Z,-Z (или Право, Левое, Вершина, Нижняя часть, Рядом, Далеко).

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

    Рисунок 5Adding отражающая карта куба к материалу image: ../Art/mat_reflective.pdf

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • эмиссия эмиссия Свойство

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

    Объявление

    Swift

    var emission: SCNMaterialProperty { get }

    Objective C

    @property(nonatomic, readonly) SCNMaterialProperty *emission

    Обсуждение

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

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

    Рисунок 6 показывает материал (с текстурой для diffuse свойство) прежде и после обеспечения эмиссионного изображения карты.

    Рисунок 6Adding эмиссионная карта к материалу image: ../Art/mat_emission.pdf

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    var transparent: SCNMaterialProperty { get }

    Objective C

    @property(nonatomic, readonly) SCNMaterialProperty *transparent

    Обсуждение

    Используйте это свойство, чтобы выборочно заставить части материала казаться прозрачными. Можно унифицированно скорректировать непрозрачность материала с помощью transparency свойство, или всего содержания, присоединенного к узлу с помощью узла opacity свойство.

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

    Рисунок 7 показывает полупрозрачный материал прежде и после обеспечения изображения текстуры для его прозрачного свойства. (Для создания эффекта прозрачности более видимым синяя сфера показана позади прозрачного материала.)

    Рисунок 7Adding прозрачная текстура к материалу image: ../Art/mat_transparent.pdf

    transparencyMode свойство управляет, как SceneKit интерпретирует информацию о цвете от содержания прозрачного свойства.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    var multiply: SCNMaterialProperty { get }

    Objective C

    @property(nonatomic, readonly) SCNMaterialProperty *multiply

    Обсуждение

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

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

    Рисунок 8 показывает материал (с текстурами для diffuse и emission свойства) прежде и после установки содержания умножить свойства к сплошному цвету. Заметьте, что умножить цвет модулирует даже засветку, добавленную эмиссионной картой.

    Рисунок 8Adding умножить цвет к материалу image: ../Art/mat_multiply.pdf

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • имя имя Свойство

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

    Объявление

    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

    Доступность

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

  • блеск блеск Свойство

    Резкость зеркальных подсветок. Animatable.

    Объявление

    Swift

    var shininess: CGFloat

    Objective C

    @property(nonatomic) CGFloat shininess

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • fresnelExponent fresnelExponent Свойство

    Фактор, влияющий на отражающую способность материала. Animatable.

    Объявление

    Swift

    var fresnelExponent: CGFloat

    Objective C

    @property(nonatomic) CGFloat fresnelExponent

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Универсальная прозрачность материала. Animatable.

    Объявление

    Swift

    var transparency: CGFloat

    Objective C

    @property(nonatomic) CGFloat transparency

    Обсуждение

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

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    var transparencyMode: SCNTransparencyMode

    Objective C

    @property(nonatomic) SCNTransparencyMode transparencyMode

    Обсуждение

    Режим прозрачности по умолчанию SCNTransparencyModeAOne. Посмотрите SCNTransparencyMode для доступных значений и их эффектов.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Формула освещения, что использование SceneKit для рендеринга материала.

    Объявление

    Swift

    var lightingModelName: String

    Objective C

    @property(nonatomic, copy) NSString *lightingModelName

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • litPerPixel litPerPixel Свойство

    Булево значение, определяющее, выполняет ли SceneKit вычисления освещения на вершину или на пиксель. Animatable.

    Объявление

    Swift

    var litPerPixel: Bool

    Objective C

    @property(nonatomic, getter=isLitPerPixel) BOOL litPerPixel

    Обсуждение

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

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Булево значение, определяющее, должен ли SceneKit представить и передние и задние стороны поверхности. Animatable.

    Объявление

    Swift

    var doubleSided: Bool

    Objective C

    @property(nonatomic, getter=isDoubleSided) BOOL doubleSided

    Обсуждение

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

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • cullMode cullMode Свойство

    Режим, определяющий, который поверхности поверхностного SceneKit рендеринг. Animatable.

    Объявление

    Swift

    var cullMode: SCNCullMode

    Objective C

    @property(nonatomic) SCNCullMode cullMode

    Обсуждение

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

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Булево значение, определяющее, реагирует ли материал тождественно и на окружающую среду и на рассеянное освещение. Animatable.

    Объявление

    Swift

    var locksAmbientWithDiffuse: Bool

    Objective C

    @property(nonatomic) BOOL locksAmbientWithDiffuse

    Обсуждение

    При моделировании реального освещения поверхность, как обычно полагают, имеет единственный «основной» цвет или текстуру, которая видима и под окружающей средой и под рассеянным светом. Когда значение этого свойства NOfalse (значение по умолчанию), SceneKit не имеет этого ограничения: можно использовать материал diffuse свойство для обеспечения цвета или текстуры, которая видима под прямым освещением и ambient свойство для обеспечения различного цвета или текстуры для областей, не непосредственно освещенных.

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Булево значение, определяющее, производит ли SceneKit информацию о глубине при рендеринге материала.

    Объявление

    Swift

    var writesToDepthBuffer: Bool

    Objective C

    @property(nonatomic) BOOL writesToDepthBuffer

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Булево значение, определяющее, использует ли SceneKit информацию о глубине при рендеринге материала.

    Объявление

    Swift

    var readsFromDepthBuffer: Bool

    Objective C

    @property(nonatomic) BOOL readsFromDepthBuffer

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    let SCNLightingModelPhong: NSString! let SCNLightingModelBlinn: NSString! let SCNLightingModelLambert: NSString! let SCNLightingModelConstant: NSString!

    Objective C

    NSString *const SCNLightingModelPhong NSString *const SCNLightingModelBlinn NSString *const SCNLightingModelLambert NSString *const SCNLightingModelConstant

    Константы

    • SCNLightingModelPhong

      SCNLightingModelPhong

      Штриховка, включающая окружающую среду, рассеянные, и зеркальные свойства, где зеркальные подсветки вычисляются с помощью формулы Фонга.

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

      • color =
      • ambient
      • * al +
      • diffuse
      • * max(0, dot(N, L)) +
      • specular
      • * pow(max(0, dot(R, E)),
      • shininess
      • )

      Некоторые термины относятся к свойствам материала: ambient, diffuse, specular, и shininess. Другие условия следующие:

      al

      Сумма всех окружающих светов в сцене (цвет).

      N

      Поверхностный вектор нормали в заштриховываемой точке, как предоставлено данными вершины геометрии, интерполированными между вершинами, и возможно измененными материалом normal свойство.

      L

      (Нормализованный) вектор от точки, заштриховываемой к источнику света.

      E

      (Нормализованный) вектор от точки, заштриховываемой к средству просмотра.

      R

      Отражение светового вектора L через вектор нормали N.

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

    • SCNLightingModelBlinn

      SCNLightingModelBlinn

      Штриховка, включающая окружающую среду, рассеянные, и зеркальные свойства, где зеркальные подсветки вычисляются с помощью формулы Блинн-Фонга.

      Приближение Блинн-Фонга реального коэффициента отражения вычисляет цвет точки на поверхности с помощью следующей формулы:

      • color =
      • ambient
      • * al +
      • diffuse
      • * max(0, dot(N, L)) +
      • specular
      • * pow(max(0, dot(H, N)),
      • shininess
      • )

      Некоторые термины относятся к свойствам материала: ambient, diffuse, specular, и shininess. Другие условия следующие:

      al

      Сумма всех окружающих светов в сцене (цвет).

      N

      Поверхностный вектор нормали в заштриховываемой точке, как предоставлено данными вершины геометрии, интерполированными между вершинами, и возможно измененными материалом normal свойство.

      L

      (Нормализованный) вектор от точки, заштриховываемой к источнику света.

      H

      Вектор на полпути между световым вектором L и (нормализованный) глазной вектор E (вектор от точки, заштриховываемой к средству просмотра), расчетное использование формулы H = normalize(L + E).

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

    • SCNLightingModelLambert

      SCNLightingModelLambert

      Штриховка, включающая окружающую среду и рассеянные свойства только.

      Эта модель штриховки основывается на Законе Ламберта рассеянного коэффициента отражения, вычисляя цвет точки на поверхности со следующей формулой:

      • color =
      • ambient
      • * al +
      • diffuse
      • * max(0, dot(N, L))

      ambient и diffuse термины относятся к свойствам материала. Другие условия следующие:

      al

      Сумма всех окружающих светов в сцене (цвет).

      N

      Поверхностный вектор нормали в заштриховываемой точке, как предоставлено данными вершины геометрии, интерполированными между вершинами, и возможно измененными материалом normal свойство.

      L

      (Нормализованный) вектор от точки, заштриховываемой к источнику света.

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

    • SCNLightingModelConstant

      SCNLightingModelConstant

      Универсальная форма, заштриховывающая, который включает окружающую среду, освещающую только.

      Эта модель штриховки вычисляет цвет точки на поверхности со следующей формулой:

      • color =
      • ambient
      • * al +
      • diffuse

      ambient и diffuse термины относятся к свойствам материала. al срок является суммой всех окружающих светов в сцене (цвет).

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

    Обсуждение

    Каждая модель распространения света определяет различный способ объединить материал ambient, diffuse, specular, и normal визуальные свойства с информацией о световых сигналах в сцене и точке зрения. После вычислений цвета с помощью модели распространения света (с одной из упомянутых выше формул), SceneKit определяет итоговый цвет каждого пикселя с помощью следующей формулы:

    • finalColor = (
    • emission
    • + color +
    • reflective
    • ) *
    • multiply

    emission, reflective, и multiply термины в формуле относятся к визуальным свойствам материала.

    Последний шаг SceneKit в рендеринге каждого пикселя должен объединить итоговый цвет с информацией о прозрачности, определенной transparent, transparency, и transparencyMode свойства.

    Рисунок 9 показывает эффекты каждой модели распространения света на иначе идентичной сцене.

    Модели рисунка 9Lighting image: ../Art/shading.pdf
  • Использование режимов SceneKit для определения, который многоугольники представить на поверхности, используемой cullMode свойство.

    Объявление

    Swift

    enum SCNCullMode : Int { case Back case Front }

    Objective C

    typedef enum : NSInteger { SCNCullBack = 0, SCNCullFront = 1, } SCNCullMode;

    Константы

    • Back

      SCNCullBack

      Режим для отбора обращенных к задней стороне многоугольников (и рендеринг только обращенные к передней стороне многоугольники).

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

    • Front

      SCNCullFront

      Режим для отбора обращенных к передней стороне многоугольников (и рендеринг только обращенные к задней стороне многоугольники).

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

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    enum SCNTransparencyMode : Int { case AOne case RGBZero }

    Objective C

    typedef enum : NSInteger { SCNTransparencyModeAOne = 0, SCNTransparencyModeRGBZero = 1, } SCNTransparencyMode;

    Константы

    • AOne

      SCNTransparencyModeAOne

      SceneKit получает информацию о прозрачности из альфа-канала цветов. Значение 1.0 непрозрачно.

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

    • RGBZero

      SCNTransparencyModeRGBZero

      SceneKit получает информацию о прозрачности из яркости цветов. Значение 0.0 непрозрачно.

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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