MTLRenderPipelineDescriptor
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCopying
-
NSObjectProtocol
-
Печатаемый
-
NSCopying
-
NSObject
Оператор импорта
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
установлен вYES
true
, тогда вывод фрагмента альфа-канала дляcolorAttachments[0]
используется для вычислений маски покрытия, влияющей на значения, записанные во все присоединения (цвет, глубина и шаблон).Если
alphaToOneEnabled
установлен вYES
true
, тогда фрагмент альфа-канала оценивает заcolorAttachments[0]
вызываются к 1,0, который является самым большим представимым значением.
Если alphaToCoverageEnabled
YES
true
, определенная с помощью реализации функция coverageToMask использует вывод фрагмента альфа-канала от colorAttachments[0]
создать промежуточную маску покрытия, устанавливающую многие биты в ее выводе пропорционально к значению ввода с плавающей точкой. Например, если ввод 0.0f, то функция coverageToMask устанавливает вывод в 0x0. Если ввод 1.0f, то все выходные биты установлены (в действительности, ~0x0). Если ввод 0.5f, функция coverageToMask устанавливает «половину» битов, где «половина» является определенной реализацией. (Реализация часто использует образцы размытия.)
Для определения заключительной маски покрытия логический AND выполняется на получающейся маске покрытия alphaCoverageMask с масками от rasterizer и программы построения теней фрагмента, как показано в Перечислении 1.
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
СвойствоЕсли
YES
true
, примитивы растеризируются. ЕслиNO
false
, примитивы отбрасываются до растеризации.Объявление
Swift
var rasterizationEnabled: Bool
Objective C
@property(readwrite, nonatomic, getter=isRasterizationEnabled) BOOL rasterizationEnabled
Обсуждение
Значение по умолчанию
YES
true
. ЕслиNO
false
, тогда никакие фрагменты не обрабатываются. Отключение растеризации может быть полезным для собирания данных из трансформаций только для вершины.Оператор импорта
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
Обсуждение
Значение по умолчанию
NO
false
.Оператор импорта
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
Обсуждение
Значение по умолчанию
NO
false
.Если включено, значения фрагмента альфа-канала только вызываются для
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 и позже.
См. также
-
label
Свойство