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установлен в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.
if (alphaToCoverageEnabled) thenalphaCoverageMask = 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: MTLPixelFormatObjective C
@property(nonatomic) MTLPixelFormat depthAttachmentPixelFormatОбсуждение
По умолчанию формат пикселя конвейерного состояния рендеринга для каждого присоединения
MTLPixelFormatInvalid.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
stencilAttachmentPixelFormatСвойствоФормат пикселя присоединения, хранящего данные шаблона.
Объявление
Swift
var stencilAttachmentPixelFormat: MTLPixelFormatObjective 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. ЕслиfragmentFunctionnil, тогда нет никакой штриховки фрагмента и поэтому никаких записей к цветному буферу. Глубина и записи шаблона и подсчет результата видимости могут все еще продолжиться.Оператор импорта
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: BoolObjective 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: BoolObjective 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: BoolObjective 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: IntObjective C
@property(readwrite, nonatomic) NSUInteger sampleCountОбсуждение
Только используемый, если присоединяемая мультивыборка поддержки (т.е. это имеет
MTLTextureType2DMultisampleвведите текстуру). Если присоединения не могут поддерживать мультивыборку, тоsampleCount1, который является также значением по умолчанию.Когда
MTLRenderCommandEncoderсоздается,sampleCountпоскольку текстуры для всех присоединений должны соответствовать этоsampleCountсвойство.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
См. также
-
labelСвойство
