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

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

Разработчик

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

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

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

SCNProgram

Вы используете SCNProgram объект выполнить пользовательский рендеринг с помощью программ программы построения теней, записанных на Языке Штриховки OpenGL (GLSL). Объект программы содержит вершинный шейдер и программу построения теней фрагмента. Для использования объекта программы для рендеринга присвойте его program свойство геометрии или материала.

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

Установка пользовательской программы программы построения теней

Для использования пользовательской программы программы построения теней в SceneKit создайте SCNProgram возразите и дополнительно укажите delegate объект для ошибок из-за неправильного обращения. Затем, обеспечьте исходный код GLSL для вершины программы и этапов программы построения теней фрагмента (использующий vertexShader и fragmentShader свойства).

Решите, какие вводы Вы хотите использовать в Вашей программе программы построения теней:

  • Атрибуты вершины. Использовать атрибуты вершины, предоставленные SCNGeometry объекты в Вашей программе программы построения теней, отобразите семантику SceneKit на входные названия атрибута вершины, объявленные в программе построения теней. Используйте setSemantic:forSymbol:options: метод и константы перечислили в Геометрии Семантические Идентификаторы.

  • Координатные трансформации. Для использования координатных трансформаций, определенных иерархией узла сцены и камерой точки зрения в программе программы построения теней, отобразите матрицы преобразования SceneKit на универсальные имена переменной, объявленные в программе построения теней. Используйте setSemantic:forSymbol:options: метод и константы, перечисленные в Рендеринге, Преобразовывают Ключи.

  • Пользовательские универсальные переменные. Для обеспечения значений для собственных универсальных переменных, объявленных в программе построения теней, присвойте обязательные блоки с помощью handleBindingOfSymbol:usingBlock: метод геометрии или материала, который будет представлен с Вашей пользовательской программой.

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

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


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


Swift

import SceneKit

Objective C

@import SceneKit;

Доступность


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

    Объявление

    Objective C

    + (instancetype)program

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

    Инициализированный SCNProgram объект, или nil если инициализация не успешна.

    Обсуждение

    Вы не можете использовать недавно создаваемый объект программы для рендеринга, пока Вы не обеспечиваете исходный код шейдера для vertexShader и fragmentShader свойства.

    Для использования программы построения теней для рендеринга присвойте его program свойство геометрии или материала.

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

    Objective C

    @import SceneKit;

    Доступность

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

  • vertexShader vertexShader Свойство

    Исходный код GLSL для вершинного шейдера программы.

    Объявление

    Swift

    var vertexShader: String!

    Objective C

    @property(nonatomic, copy) NSString *vertexShader

    Обсуждение

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

    SceneKit компилирует и соединяет Вашу программу программы построения теней только, когда это необходимо для рендеринга. Чтобы быть уведомленными относительно ошибок компиляции программы, обеспечьте a delegate объект для программы.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

    См. также

    fragmentShader

  • fragmentShader fragmentShader Свойство

    Исходный код GLSL для программы построения теней фрагмента программы.

    Объявление

    Swift

    var fragmentShader: String!

    Objective C

    @property(nonatomic, copy) NSString *fragmentShader

    Обсуждение

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

    SceneKit компилирует и соединяет Вашу программу программы построения теней только, когда это необходимо для рендеринга. Чтобы быть уведомленными относительно ошибок компиляции программы, обеспечьте a delegate объект для программы.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

    См. также

    vertexShader

  • geometryShader geometryShader Свойство

    Исходный код GLSL для дополнительной программы построения теней геометрии программы.

    Объявление

    Swift

    var geometryShader: String!

    Objective C

    @property(nonatomic, copy) NSString *geometryShader

    Обсуждение

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

    Программы построения теней геометрии требуют OS X и Профиля Ядра OpenGL. Для использования Профиля Ядра OpenGL в представлении SceneKit установите представление pixelFormat свойство. Штриховка геометрии является дополнительной — чтобы представить без программы построения теней геометрии, установить значение этого свойства в nil (значение по умолчанию).

    SceneKit компилирует и соединяет Вашу программу программы построения теней только, когда это необходимо для рендеринга. Чтобы быть уведомленными относительно ошибок компиляции программы, обеспечьте a delegate объект для программы.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Исходный код GLSL для дополнительного составления мозаики программы управляет программой построения теней.

    Объявление

    Swift

    var tessellationControlShader: String!

    Objective C

    @property(nonatomic, copy) NSString *tessellationControlShader

    Обсуждение

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

    Программы построения теней составления мозаики требуют OS X и Профиля Ядра OpenGL. Для использования Профиля Ядра OpenGL в представлении SceneKit установите представление pixelFormat свойство. Штриховка составления мозаики является дополнительной — чтобы представить без программы построения теней составления мозаики, установить значение этого свойства в nil (значение по умолчанию). Однако при указании программы построения теней управления составлением мозаики программа построения теней оценки составления мозаики также требуется.

    SceneKit компилирует и соединяет Вашу программу программы построения теней только, когда это необходимо для рендеринга. Чтобы быть уведомленными относительно ошибок компиляции программы, обеспечьте a delegate объект для программы.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Исходный код GLSL для дополнительной программы построения теней оценки составления мозаики программы.

    Объявление

    Swift

    var tessellationEvaluationShader: String!

    Objective C

    @property(nonatomic, copy) NSString *tessellationEvaluationShader

    Обсуждение

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

    Программы построения теней составления мозаики требуют OS X и Профиля Ядра OpenGL. Для использования Профиля Ядра OpenGL в представлении SceneKit установите представление pixelFormat свойство. Штриховка составления мозаики является дополнительной — чтобы представить без программы построения теней составления мозаики, установить значение этого свойства в nil (значение по умолчанию). Однако при указании программы построения теней оценки составления мозаики программа построения теней управления составлением мозаики также требуется.

    SceneKit компилирует и соединяет Вашу программу программы построения теней только, когда это необходимо для рендеринга. Чтобы быть уведомленными относительно ошибок компиляции программы, обеспечьте a delegate объект для программы.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • делегат делегат Свойство

    Делегат объекта программы.

    Объявление

    Swift

    unowned(unsafe) var delegate: SCNProgramDelegate?

    Objective C

    @property(nonatomic, assign) id< SCNProgramDelegate > delegate

    Обсуждение

    SCNProgram если ошибки происходят при компиляции исходного кода GLSL, объект отправляет сообщения делегата.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Булево значение, указывающее, полностью непрозрачны ли фрагменты, представленные программой.

    Объявление

    Swift

    var opaque: Bool

    Objective C

    @property(nonatomic, getter=isOpaque) BOOL opaque

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Ключи для словаря опций, используемого setSemantic:forSymbol:options: метод.

    Объявление

    Swift

    let SCNProgramMappingChannelKey: NSString!

    Objective C

    NSString *const SCNProgramMappingChannelKey

    Константы

    • SCNProgramMappingChannelKey

      SCNProgramMappingChannelKey

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

      Этот ключ является дополнительным и применяется только к SCNGeometrySourceSemanticTexcoord семантический. Его значение NSNumber объект, содержащий значение целого без знака.

      Геометрия может обеспечить, и программа программы построения теней может использовать, больше чем один источник координат текстуры для каждой вершины. Используйте этот ключ для указания, какой источник геометрии должен предоставить данные для каждого атрибута вершины сэмплера текстуры, объявленного в программе программы построения теней. Отображающийся канал для источника геометрии соответствует своему индексу в массиве, возвращенном путем вызова geometrySourcesForSemantic: метод.

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