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

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

Разработчик

Металлическая ссылка платформы ссылка класса MTLRenderPipelineDescriptor

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

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

MTLRenderPipelineDescriptor

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


Соответствует


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


Swift

import Metal

Objective C

@import Metal;

Доступность


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

MTLRenderPipelineDescriptor объект указывает состояние конфигурации рендеринга, используемое во время передачи рендеринга графики, включая растеризацию (такую как мультивыборка), видимость, смешивание и графическое состояние функции программы построения теней. Используйте стандартное выделение и методы инициализации для создания a MTLRenderPipelineDescriptor объект. A MTLRenderPipelineDescriptor объект позже используется для создания a MTLRenderPipelineState объект.

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

Если вершинный шейдер имеет параметр с входными атрибутами на вершину, установите vertexDescriptor свойство к a MTLVertexDescriptor объект, описывающий организацию тех данных вершины.

Мультивыборка и конвейер рендеринга

Если цветное присоединение поддерживает мультивыборку (в действительности, присоединение является a MTLTextureType2DMultisample текстура цвета шрифта), можно создать многократные выборки на фрагмент, и следующие конвейерные свойства дескриптора рендеринга определяют покрытие:

  • sampleCount число выборок для каждого пикселя.

  • Если alphaToCoverageEnabled установлен в YEStrue, тогда вывод фрагмента альфа-канала для colorAttachments[0] используется для вычислений маски покрытия, влияющей на значения, записанные во все присоединения (цвет, глубина и шаблон).

  • Если alphaToOneEnabled установлен в YEStrue, тогда фрагмент альфа-канала оценивает за colorAttachments[0] вызываются к 1,0, который является самым большим представимым значением.

Если alphaToCoverageEnabled YEStrue, определенная с помощью реализации функция coverageToMask использует вывод фрагмента альфа-канала от colorAttachments[0] создать промежуточную маску покрытия, устанавливающую многие биты в ее выводе пропорционально к значению ввода с плавающей точкой. Например, если ввод 0.0f, то функция coverageToMask устанавливает вывод в 0x0. Если ввод 1.0f, то все выходные биты установлены (в действительности, ~0x0). Если ввод 0.5f, функция coverageToMask устанавливает «половину» битов, где «половина» является определенной реализацией. (Реализация часто использует образцы размытия.)

Для определения заключительной маски покрытия логический AND выполняется на получающейся маске покрытия alphaCoverageMask с масками от rasterizer и программы построения теней фрагмента, как показано в Перечислении 1.

Перечисление 1Pseudo-кода для вычислений маски покрытия
  • if (alphaToCoverageEnabled) then
  • alphaCoverageMask = coverageToMask(colorAttachment0.alpha);
  • finalCoverageMask = originalRasterizerCoverageMask
  • & alphaCoverageMask & fragShaderSampleMaskOutput;
  • Указывает значение по умолчанию, представляющее конвейерные значения состояния для дескриптора.

    Объявление

    Swift

    func reset()

    Objective C

    - (void)reset

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

  • colorAttachments Свойство

    Массив присоединений, хранящих цветные данные.

    Объявление

    Swift

    var colorAttachments: MTLRenderPipelineColorAttachmentDescriptorArray { get }

    Objective C

    @property(readonly) MTLRenderPipelineColorAttachmentDescriptorArray *colorAttachments

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

  • depthAttachmentPixelFormat Свойство

    Формат пикселя присоединения, хранящего данные глубины.

    Объявление

    Swift

    var depthAttachmentPixelFormat: MTLPixelFormat

    Objective C

    @property(nonatomic) MTLPixelFormat depthAttachmentPixelFormat

    Обсуждение

    По умолчанию формат пикселя конвейерного состояния рендеринга для каждого присоединения MTLPixelFormatInvalid.

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

  • stencilAttachmentPixelFormat Свойство

    Формат пикселя присоединения, хранящего данные шаблона.

    Объявление

    Swift

    var stencilAttachmentPixelFormat: MTLPixelFormat

    Objective C

    @property(nonatomic) MTLPixelFormat stencilAttachmentPixelFormat

    Обсуждение

    По умолчанию формат пикселя конвейерного состояния рендеринга для каждого присоединения MTLPixelFormatInvalid.

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

  • fragmentFunction Свойство

    Функция программы построения теней фрагмента

    Объявление

    Swift

    var fragmentFunction: MTLFunction?

    Objective C

    @property(readwrite, nonatomic, strong) id< MTLFunction > fragmentFunction

    Обсуждение

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

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

  • vertexFunction Свойство

    Функция вершинного шейдера

    Объявление

    Swift

    var vertexFunction: MTLFunction?

    Objective C

    @property(readwrite, nonatomic, strong) id< MTLFunction > vertexFunction

    Обсуждение

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

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

  • vertexDescriptor Свойство

    Организация данных вершины в таблице параметра атрибута

    Объявление

    Swift

    @NSCopying var vertexDescriptor: MTLVertexDescriptor?

    Objective C

    @property(copy, nonatomic) MTLVertexDescriptor *vertexDescriptor

    Обсуждение

    Дескриптор вершины используется для описания организации вводов на вершину (т.е. скаляры или векторы целого числа или значений с плавающей точкой), которые организованы в одной структуре и переданы в одном параметре функции вершинного шейдера.

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

  • rasterizationEnabled Свойство

    Если YEStrue, примитивы растеризируются. Если NOfalse, примитивы отбрасываются до растеризации.

    Объявление

    Swift

    var rasterizationEnabled: Bool

    Objective C

    @property(readwrite, nonatomic, getter=isRasterizationEnabled) BOOL rasterizationEnabled

    Обсуждение

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

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

  • alphaToCoverageEnabled Свойство

    Указывает, выводил ли фрагмент альфа-канала для colorAttachments[0] читается и используется для вычислений демонстрационной маски покрытия.

    Объявление

    Swift

    var alphaToCoverageEnabled: Bool

    Objective C

    @property(readwrite, nonatomic, getter=isAlphaToCoverageEnabled) BOOL alphaToCoverageEnabled

    Обсуждение

    Значение по умолчанию NOfalse.

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

  • alphaToOneEnabled Свойство

    Указывает, оценивает ли альфа-канал за colorAttachments[0] вызываются к 1.0, который является самым большим представимым значением.

    Объявление

    Swift

    var alphaToOneEnabled: Bool

    Objective C

    @property(readwrite, nonatomic, getter=isAlphaToOneEnabled) BOOL alphaToOneEnabled

    Обсуждение

    Значение по умолчанию NOfalse.

    Если включено, значения фрагмента альфа-канала только вызываются для colorAttachments[0]. Другие присоединения незатронуты.

    Можно использовать alphaToOneEnabled когда Вы хотите записать альфа-значение, представляющее частичное покрытие пикселя, но также и хотят отключить смешивание (путем принуждения альфы к одной).

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

  • sampleCount Свойство

    Число выборок для каждого фрагмента.

    Объявление

    Swift

    var sampleCount: Int

    Objective C

    @property(readwrite, nonatomic) NSUInteger sampleCount

    Обсуждение

    Только используемый, если присоединяемая мультивыборка поддержки (т.е. это имеет MTLTextureType2DMultisample введите текстуру). Если присоединения не могут поддерживать мультивыборку, то sampleCount 1, который является также значением по умолчанию.

    Когда MTLRenderCommandEncoder создается, sampleCount поскольку текстуры для всех присоединений должны соответствовать это sampleCount свойство.

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

    См. также

    sampleCount

  • label Свойство

    Строка, чтобы помочь идентифицировать этот объект.

    Объявление

    Swift

    var label: String?

    Objective C

    @property(copy, nonatomic) NSString *label

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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