reckfellENGINE

RenderingDevice

Низкоуровневое устройство для GPU-ресурсов, команд и вычислений.

На этой странице
class RenderingDeviceReckfellSharpНаследует ReckfellObject

RenderingDevice создаёт ресурсы с RID, записывает команды и управляет передачей данных. Локальное устройство принадлежит создавшему коду; глобальное устройство движка заимствуется и не должно освобождаться пользователем. Соблюдайте поток устройства, зависимости ресурсов и порядок синхронизации.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Методы182

Barriervoid · Устарело
# Barrier
C#
public void Barrier(RenderingDevice.BarrierMask from = RenderingDevice.BarrierMask.AllBarriers, RenderingDevice.BarrierMask to = RenderingDevice.BarrierMask.AllBarriers);

Этот метод ничего не даёт.

Параметры
ИмяТипПо умолчанию
fromRenderingDevice.BarrierMaskRenderingDevice.BarrierMask.AllBarriers
toRenderingDevice.BarrierMaskRenderingDevice.BarrierMask.AllBarriers
BlasBuildError
# BlasBuild
C#
public Error BlasBuild(Rid blas);

Создаёт blas.

Параметры
ИмяТипПо умолчанию
blasRid—
Возвращает Error
BlasCreateRid
# BlasCreate
C#
public Rid BlasCreate(Reckfell.Collections.Array<RDAccelerationStructureGeometry> geometries, RenderingDevice.AccelerationStructureFlagBits flags);

Создает новую структуру ускорения низового уровня (БЛАС). RID ..вернёмся. Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод.

Параметры
ИмяТипПо умолчанию
geometriesReckfell.Collections.Array<RDAccelerationStructureGeometry>—
flagsRenderingDevice.AccelerationStructureFlagBits—
Возвращает Rid
BufferClear2 перегрузки
# BufferClear · 1/2
C#
public Error BufferClear(Rid buffer, uint offset, uint sizeBytes);

Очищает содержимое buffer, очищая size_bytes байт, начиная с offset. Выводит ошибку, если:

  • размер не кратен четырем
  • область, указанная offset + size_bytes, превышает буфер
  • в данный момент активен список отрисовки (создан RenderingDevice.DrawListBegin)
  • в данный момент активен список вычислений (создан RenderingDevice.ComputeListBegin)
Параметры
ИмяТипПо умолчанию
bufferRid—
offsetuint—
sizeBytesuint—
Возвращает Error
# BufferClear · 2/2
C#
public Error BufferClear(Rid buffer, uint offset, uint sizeBytes, RenderingDevice.BarrierMask postBarrier);

Очищает содержимое buffer, очищая size_bytes байт, начиная с offset. Выводит ошибку, если:

  • размер не кратен четырем
  • область, указанная offset + size_bytes, превышает буфер
  • в данный момент активен список отрисовки (создан RenderingDevice.DrawListBegin)
  • в данный момент активен список вычислений (создан RenderingDevice.ComputeListBegin)
Параметры
ИмяТипПо умолчанию
bufferRid—
offsetuint—
sizeBytesuint—
postBarrierRenderingDevice.BarrierMask—
Возвращает Error
BufferCopyError
# BufferCopy
C#
public Error BufferCopy(Rid srcBuffer, Rid dstBuffer, uint srcOffset, uint dstOffset, uint size);

Копирует size байт из src_buffer в src_offset в dst_buffer в dst_offset. Выводит ошибку, если:

  • size превышает размер src_buffer или dst_buffer в соответствующих смещениях
  • в данный момент активен список отрисовки (создан методом RenderingDevice.DrawListBegin)
  • в данный момент активен список вычислений (создан методом RenderingDevice.ComputeListBegin)
Параметры
ИмяТипПо умолчанию
srcBufferRid—
dstBufferRid—
srcOffsetuint—
dstOffsetuint—
sizeuint—
Возвращает Error
BufferGetDatabyte[]
# BufferGetData
C#
public byte[] BufferGetData(Rid buffer, uint offsetBytes = 0, uint sizeBytes = 0);

Блокирующее чтение буфера в новый byte[] с ожиданием работы устройства. Смещение и размер в байтах; sizeBytes=0 выбирает полный размер буфера, не остаток после произвольного смещения. Для частичного чтения задавайте размер явно.

Параметры
ИмяТипПо умолчанию
bufferRid—
offsetBytesuint0
sizeBytesuint0
buffer

RID буфера того же устройства.

offsetBytes

Начальное смещение в байтах. Для чтения с ненулевого смещения задавайте sizeBytes явно.

sizeBytes

Размер чтения в байтах; 0 выбирает полный размер буфера, не остаток после offsetBytes.

Возвращает byte[]

Копия прочитанных байтов; это блокирующее чтение.

BufferGetDataAsyncError
# BufferGetDataAsync
C#
public Error BufferGetDataAsync(Rid buffer, Callable callback, uint offsetBytes = 0, uint sizeBytes = 0);

Асинхронная версия RenderingDevice.BufferGetData. RenderingDevice вызовет callback в определенном количестве кадров с данными, которые были в буфере на момент запроса. Примечание: На данный момент задержка соответствует количеству кадров, указанному ProjectSettings.rendering/rendering_device/vsync/frame_queue_size. Примечание: Загрузка больших буферов может иметь непомерно высокую стоимость для реального времени даже при использовании асинхронного метода из-за ограничений пропускной способности оборудования. При работе с большими ресурсами вы можете настроить такие параметры, как ProjectSettings.rendering/rendering_device/staging_buffer/block_size_kb, чтобы улучшить скорость передачи за счет дополнительной памяти.

Параметры
ИмяТипПо умолчанию
bufferRid—
callbackCallable—
offsetBytesuint0
sizeBytesuint0
Возвращает Error
BufferGetDeviceAddressulong
# BufferGetDeviceAddress
C#
public ulong BufferGetDeviceAddress(Rid buffer);

Возвращает адрес указанного buffer, который может быть передан шейдерам любым способом для доступа к базовым данным. Буфер должен быть создан с включенной этой функцией. Примечание: Вы должны проверить, поддерживает ли графический процессор эту функцию, вызвав RenderingDevice.HasFeature с RenderingDevice.Features.BufferDeviceAddress в качестве параметра.

Параметры
ИмяТипПо умолчанию
bufferRid—
Возвращает ulong
BufferUpdate4 перегрузки
# BufferUpdate · 1/4
C#
public Error BufferUpdate(Rid buffer, uint offset, uint sizeBytes, byte[] data);

Записывает sizeBytes байтов в буфер со смещения offset. Вызывайте вне активного compute/draw/raytracing list, передайте достаточно исходных байтов и оставайтесь в пределах выделенного буфера. Это не число элементов.

Параметры
ИмяТипПо умолчанию
bufferRid—
offsetuint—
sizeBytesuint—
databyte[]—
buffer

RID буфера того же устройства.

offset

Смещение назначения в байтах.

sizeBytes

Число записываемых байтов; data должны содержать не меньше этого количества.

data

Исходные байты, не массив элементов произвольной ширины.

Возвращает Error

Error.Ok при успешной записи либо код ошибки.

# BufferUpdate · 2/4
C#
public Error BufferUpdate(Rid buffer, uint offset, uint sizeBytes, byte[] data, RenderingDevice.BarrierMask postBarrier);

Обновляет область размером size_bytes байт, начиная с offset, в буфере с указанными data. Выводит ошибку, если:

  • область, указанная offset + size_bytes, превышает буфер
  • в данный момент активен список отрисовки (создан RenderingDevice.DrawListBegin)
  • в данный момент активен список вычислений (создан RenderingDevice.ComputeListBegin)
Параметры
ИмяТипПо умолчанию
bufferRid—
offsetuint—
sizeBytesuint—
databyte[]—
postBarrierRenderingDevice.BarrierMask—
Возвращает Error
# BufferUpdate · 3/4
C#
public Error BufferUpdate(Rid buffer, uint offset, uint sizeBytes, ReadOnlySpan<byte> data);

Обновляет область размером size_bytes байт, начиная с offset, в буфере с указанными data. Выводит ошибку, если:

  • область, указанная offset + size_bytes, превышает буфер
  • в данный момент активен список отрисовки (создан RenderingDevice.DrawListBegin)
  • в данный момент активен список вычислений (создан RenderingDevice.ComputeListBegin)
Параметры
ИмяТипПо умолчанию
bufferRid—
offsetuint—
sizeBytesuint—
dataReadOnlySpan<byte>—
Возвращает Error
# BufferUpdate · 4/4
C#
public Error BufferUpdate(Rid buffer, uint offset, uint sizeBytes, ReadOnlySpan<byte> data, RenderingDevice.BarrierMask postBarrier);

Обновляет область размером size_bytes байт, начиная с offset, в буфере с указанными data. Выводит ошибку, если:

  • область, указанная offset + size_bytes, превышает буфер
  • в данный момент активен список отрисовки (создан RenderingDevice.DrawListBegin)
  • в данный момент активен список вычислений (создан RenderingDevice.ComputeListBegin)
Параметры
ИмяТипПо умолчанию
bufferRid—
offsetuint—
sizeBytesuint—
dataReadOnlySpan<byte>—
postBarrierRenderingDevice.BarrierMask—
Возвращает Error
CaptureTimestampvoid
# CaptureTimestamp
C#
public void CaptureTimestamp(string name);

Создает маркер временной метки с указанным name. Используется для отчетов о производительности с методами RenderingDevice.GetCapturedTimestampCpuTime, RenderingDevice.GetCapturedTimestampGpuTime и RenderingDevice.GetCapturedTimestampName.

Параметры
ИмяТипПо умолчанию
namestring—
ComputeListAddBarriervoid
# ComputeListAddBarrier
C#
public void ComputeListAddBarrier(long computeList);

Повышает вычислительный барьер Vulkan в указанном compute_list.

Параметры
ИмяТипПо умолчанию
computeListlong—
ComputeListBegin2 перегрузки
# ComputeListBegin · 1/2
C#
public long ComputeListBegin();

Начинает запись compute list в потоке устройства. Одновременно допускается один активный compute list; после привязки pipeline и ресурсов завершите запись через ComputeListEnd.

Возвращает long

Идентификатор для последующих команд активного списка.

# ComputeListBegin · 2/2
C#
public long ComputeListBegin(bool allowDrawOverlap);

Начинает список команд вычислений, созданных с помощью методов compute_*. Возвращаемое значение должно быть передано другим функциям compute_list_*. Нельзя одновременно создавать несколько списков вычислений; сначала необходимо завершить предыдущий список вычислений с помощью RenderingDevice.ComputeListEnd. Простая операция вычислений может выглядеть следующим образом (код не является полным примером):

Параметры
ИмяТипПо умолчанию
allowDrawOverlapbool—
Возвращает long
ComputeListBindComputePipelinevoid
# ComputeListBindComputePipeline
C#
public void ComputeListBindComputePipeline(long computeList, Rid computePipeline);

Привязывает compute pipeline того же устройства к активному списку. До dispatch также задайте совместимые наборы ресурсов и требуемые шейдером параметры.

Параметры
ИмяТипПо умолчанию
computeListlong—
computePipelineRid—
computeList

Идентификатор активного compute list этого устройства.

computePipeline

RID совместимого compute pipeline того же устройства.

ComputeListBindUniformSetvoid
# ComputeListBindUniformSet
C#
public void ComputeListBindUniformSet(long computeList, Rid uniformSet, uint setIndex);

Привязывает uniform set к номеру set активного compute pipeline. setIndex соответствует GLSL set, а не RDUniform.Binding; layout должен быть совместим с шейдером pipeline.

Параметры
ИмяТипПо умолчанию
computeListlong—
uniformSetRid—
setIndexuint—
computeList

Идентификатор активного compute list этого устройства.

uniformSet

RID набора с layout, совместимым с шейдером pipeline.

setIndex

Номер GLSL set для привязки набора.

ComputeListDispatchvoid
# ComputeListDispatch
C#
public void ComputeListDispatch(long computeList, uint xGroups, uint yGroups, uint zGroups);

Записывает запуск указанного числа рабочих групп, не отдельных потоков. Числа групп должны быть положительными и укладываться в лимиты устройства; неполную последнюю группу ограничивайте проверкой индекса в шейдере.

Параметры
ИмяТипПо умолчанию
computeListlong—
xGroupsuint—
yGroupsuint—
zGroupsuint—
computeList

Идентификатор активного compute list этого устройства.

xGroups

Положительное число рабочих групп по X в пределах лимита устройства.

yGroups

Положительное число рабочих групп по Y в пределах лимита устройства.

zGroups

Положительное число рабочих групп по Z в пределах лимита устройства.

ComputeListDispatchIndirectvoid
# ComputeListDispatchIndirect
C#
public void ComputeListDispatchIndirect(long computeList, Rid buffer, uint offset);

Отправляет список вычислений для обработки на GPU с заданными числами групп, сохраненными в buffer по адресу offset. Буфер должен быть создан с флагом RenderingDevice.StorageBufferUsage.Indirect.

Параметры
ИмяТипПо умолчанию
computeListlong—
bufferRid—
offsetuint—
ComputeListEnd2 перегрузки
# ComputeListEnd · 1/2
C#
public void ComputeListEnd();

Завершает запись активного compute list. Это не ожидание GPU: локальное устройство требует отправки Submit и подходящей синхронизации до использования результата на CPU.

# ComputeListEnd · 2/2
C#
public void ComputeListEnd(RenderingDevice.BarrierMask postBarrier);

Завершает список команд вычисления, созданных с помощью методов compute_*.

Параметры
ИмяТипПо умолчанию
postBarrierRenderingDevice.BarrierMask—
ComputeListSetPushConstant2 перегрузки
# ComputeListSetPushConstant · 1/2
C#
public void ComputeListSetPushConstant(long computeList, byte[] buffer, uint sizeBytes);

Устанавливает данные константы push в buffer для указанного compute_list. Шейдер определяет, как используются эти двоичные данные. Размер буфера в байтах также должен быть указан в size_bytes (его можно получить, вызвав метод PackedByteArray.size для переданного buffer).

Параметры
ИмяТипПо умолчанию
computeListlong—
bufferbyte[]—
sizeBytesuint—
# ComputeListSetPushConstant · 2/2
C#
public void ComputeListSetPushConstant(long computeList, ReadOnlySpan<byte> buffer, uint sizeBytes);

Устанавливает данные константы push в buffer для указанного compute_list. Шейдер определяет, как используются эти двоичные данные. Размер буфера в байтах также должен быть указан в size_bytes (его можно получить, вызвав метод PackedByteArray.size для переданного buffer).

Параметры
ИмяТипПо умолчанию
computeListlong—
bufferReadOnlySpan<byte>—
sizeBytesuint—
ComputePipelineCreateRid
# ComputePipelineCreate
C#
public Rid ComputePipelineCreate(Rid shader, Reckfell.Collections.Array<RDPipelineSpecializationConstant> specializationConstants = null);

Создаёт compute pipeline из compute-шейдера того же устройства. Обычный графический шейдер не подходит. Pipeline можно повторно использовать с совместимыми наборами ресурсов.

Параметры
ИмяТипПо умолчанию
shaderRid—
specializationConstantsReckfell.Collections.Array<RDPipelineSpecializationConstant>null
shader

RID шейдера того же устройства с соответствующим layout.

specializationConstants

Необязательные значения констант специализации pipeline.

Возвращает Rid

RID созданного ресурса этого устройства; проверяйте валидность.

ComputePipelineIsValidbool
# ComputePipelineIsValid
C#
public bool ComputePipelineIsValid(Rid computePipeline);

Возвращает true, если вычислительный конвейер, указанный RID compute_pipeline, действителен, в противном случае — false.

Параметры
ИмяТипПо умолчанию
computePipelineRid—
Возвращает bool
CreateLocalDeviceRenderingDevice
# CreateLocalDevice
C#
public RenderingDevice CreateLocalDevice();

Создайте новый локальный RenderingDevice. Это наиболее полезно для выполнения вычислительных операций на GPU независимо от остального движка.

Возвращает RenderingDevice
DrawCommandBeginLabelvoid
# DrawCommandBeginLabel
C#
public void DrawCommandBeginLabel(string name, Color color);

Создайте область метки отладки буфера команд, которая может отображаться в сторонних инструментах, таких как RenderDoc(https://renderdoc.org/). Все области должны заканчиваться вызовом RenderingDevice.DrawCommandEndLabel. При просмотре линейной серии отправок в одну очередь вызовы RenderingDevice.DrawCommandBeginLabel и RenderingDevice.DrawCommandEndLabel должны быть согласованы и сбалансированы. Расширение Vulkan VK_EXT_DEBUG_UTILS_EXTENSION_NAME должно быть доступно и включено для работы области метки отладки буфера команд. См. также RenderingDevice.DrawCommandEndLabel.

Параметры
ИмяТипПо умолчанию
namestring—
colorColor—
DrawCommandEndLabelvoid
# DrawCommandEndLabel
C#
public void DrawCommandEndLabel();

Завершает область метки отладки буфера команд, начатую вызовом RenderingDevice.DrawCommandBeginLabel.

DrawCommandInsertLabelvoid · Устарело
# DrawCommandInsertLabel
C#
public void DrawCommandInsertLabel(string name, Color color);

Этот метод ничего не даёт.

Параметры
ИмяТипПо умолчанию
namestring—
colorColor—
DrawListBegin9 перегрузок
# DrawListBegin · 1/9
C#
public long DrawListBegin(Rid framebuffer, RenderingDevice.DrawFlags drawFlags = RenderingDevice.DrawFlags.DefaultAll, Color[] clearColorValues = null, float clearDepthValue = 1f, uint clearStencilValue = 0, Rect2? region = default, uint breadcrumb = 0);

Начинает список команд растрового рисования, созданных с помощью методов draw_*. Возвращаемое значение должно быть передано другим функциям draw_list_*. Нельзя одновременно создавать несколько списков рисования; сначала необходимо завершить предыдущий список рисования с помощью RenderingDevice.DrawListEnd. Простая операция рисования может выглядеть так (код не является полным примером):

draw_flags указывает, следует ли очищать или игнорировать прикрепленные текстуры буфера кадра. Для каждого отдельного прикрепления можно использовать только один из двух флагов. Игнорирование прикрепления означает, что любое содержимое, существовавшее до списка отрисовки, будет полностью отброшено, что снижает пропускную способность памяти, используемую проходом рендеринга, но приводит к мусорным результатам, если пиксели не заменяются. Поведение по умолчанию позволяет движку определять правильную операцию для использования, если текстура отбрасывается, что может привести к повышению производительности. См. RDTextureFormat или RenderingDevice.TextureSetDiscardable. Параметр breadcrumb может быть произвольным 32-битным целым числом, полезным для диагностики сбоев GPU. Если Reckfell собран в режиме разработки или отладки; при сбое GPU Reckfell выведет дамп всех шейдеров, которые выполнялись во время сбоя, а breadcrumb полезен для диагностики того, к каким проходам относятся эти шейдеры. Он не влияет на поведение рендеринга и может быть установлен на 0. Рекомендуется использовать перечисления RenderingDevice.BreadcrumbMarker для согласованности, но это не обязательно. Также возможно использовать побитовые операции для добавления дополнительных данных. Пример:

Текст
rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5)
Параметры
ИмяТипПо умолчанию
framebufferRid—
drawFlagsRenderingDevice.DrawFlagsRenderingDevice.DrawFlags.DefaultAll
clearColorValuesColor[]null
clearDepthValuefloat1f
clearStencilValueuint0
regionRect2?default
breadcrumbuint0
clearColorValues

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<Color>().

region

Если параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).

Возвращает long
# DrawListBegin · 2/9
C#
public long DrawListBegin(Rid framebuffer, RenderingDevice.DrawFlags drawFlags, ReadOnlySpan<Color> clearColorValues, float clearDepthValue, uint clearStencilValue, Rect2? region, uint breadcrumb);

Начинает список команд растрового рисования, созданных с помощью методов draw_*. Возвращаемое значение должно быть передано другим функциям draw_list_*. Нельзя одновременно создавать несколько списков рисования; сначала необходимо завершить предыдущий список рисования с помощью RenderingDevice.DrawListEnd. Простая операция рисования может выглядеть так (код не является полным примером):

draw_flags указывает, следует ли очищать или игнорировать прикрепленные текстуры буфера кадра. Для каждого отдельного прикрепления можно использовать только один из двух флагов. Игнорирование прикрепления означает, что любое содержимое, существовавшее до списка отрисовки, будет полностью отброшено, что снижает пропускную способность памяти, используемую проходом рендеринга, но приводит к мусорным результатам, если пиксели не заменяются. Поведение по умолчанию позволяет движку определять правильную операцию для использования, если текстура отбрасывается, что может привести к повышению производительности. См. RDTextureFormat или RenderingDevice.TextureSetDiscardable. Параметр breadcrumb может быть произвольным 32-битным целым числом, полезным для диагностики сбоев GPU. Если Reckfell собран в режиме разработки или отладки; при сбое GPU Reckfell выведет дамп всех шейдеров, которые выполнялись во время сбоя, а breadcrumb полезен для диагностики того, к каким проходам относятся эти шейдеры. Он не влияет на поведение рендеринга и может быть установлен на 0. Рекомендуется использовать перечисления RenderingDevice.BreadcrumbMarker для согласованности, но это не обязательно. Также возможно использовать побитовые операции для добавления дополнительных данных. Пример:

Текст
rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5)
Параметры
ИмяТипПо умолчанию
framebufferRid—
drawFlagsRenderingDevice.DrawFlags—
clearColorValuesReadOnlySpan<Color>—
clearDepthValuefloat—
clearStencilValueuint—
regionRect2?—
breadcrumbuint—
region

Если параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).

Возвращает long
# DrawListBegin · 3/9
C#
public long DrawListBegin(Rid framebuffer, RenderingDevice.InitialAction initialColorAction, RenderingDevice.FinalAction finalColorAction, RenderingDevice.InitialAction initialDepthAction, RenderingDevice.FinalAction finalDepthAction, Color[] clearColorValues, float clearDepth, uint clearStencil, Rect2? region);

Начинает список команд растрового рисования, созданных с помощью методов draw_*. Возвращаемое значение должно быть передано другим функциям draw_list_*. Нельзя одновременно создавать несколько списков рисования; сначала необходимо завершить предыдущий список рисования с помощью RenderingDevice.DrawListEnd. Простая операция рисования может выглядеть так (код не является полным примером):

draw_flags указывает, следует ли очищать или игнорировать прикрепленные текстуры буфера кадра. Для каждого отдельного прикрепления можно использовать только один из двух флагов. Игнорирование прикрепления означает, что любое содержимое, существовавшее до списка отрисовки, будет полностью отброшено, что снижает пропускную способность памяти, используемую проходом рендеринга, но приводит к мусорным результатам, если пиксели не заменяются. Поведение по умолчанию позволяет движку определять правильную операцию для использования, если текстура отбрасывается, что может привести к повышению производительности. См. RDTextureFormat или RenderingDevice.TextureSetDiscardable. Параметр breadcrumb может быть произвольным 32-битным целым числом, полезным для диагностики сбоев GPU. Если Reckfell собран в режиме разработки или отладки; при сбое GPU Reckfell выведет дамп всех шейдеров, которые выполнялись во время сбоя, а breadcrumb полезен для диагностики того, к каким проходам относятся эти шейдеры. Он не влияет на поведение рендеринга и может быть установлен на 0. Рекомендуется использовать перечисления RenderingDevice.BreadcrumbMarker для согласованности, но это не обязательно. Также возможно использовать побитовые операции для добавления дополнительных данных. Пример:

Текст
rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5)
Параметры
ИмяТипПо умолчанию
framebufferRid—
initialColorActionRenderingDevice.InitialAction—
finalColorActionRenderingDevice.FinalAction—
initialDepthActionRenderingDevice.InitialAction—
finalDepthActionRenderingDevice.FinalAction—
clearColorValuesColor[]—
clearDepthfloat—
clearStenciluint—
regionRect2?—
clearColorValues

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<Color>().

region

Если параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).

Возвращает long
# DrawListBegin · 4/9
C#
public long DrawListBegin(Rid framebuffer, RenderingDevice.InitialAction initialColorAction, RenderingDevice.FinalAction finalColorAction, RenderingDevice.InitialAction initialDepthAction, RenderingDevice.FinalAction finalDepthAction, Color[] clearColorValues, float clearDepth, uint clearStencil, Rect2? region, Reckfell.Collections.Array storageTextures);

Начинает список команд растрового рисования, созданных с помощью методов draw_*. Возвращаемое значение должно быть передано другим функциям draw_list_*. Нельзя одновременно создавать несколько списков рисования; сначала необходимо завершить предыдущий список рисования с помощью RenderingDevice.DrawListEnd. Простая операция рисования может выглядеть так (код не является полным примером):

draw_flags указывает, следует ли очищать или игнорировать прикрепленные текстуры буфера кадра. Для каждого отдельного прикрепления можно использовать только один из двух флагов. Игнорирование прикрепления означает, что любое содержимое, существовавшее до списка отрисовки, будет полностью отброшено, что снижает пропускную способность памяти, используемую проходом рендеринга, но приводит к мусорным результатам, если пиксели не заменяются. Поведение по умолчанию позволяет движку определять правильную операцию для использования, если текстура отбрасывается, что может привести к повышению производительности. См. RDTextureFormat или RenderingDevice.TextureSetDiscardable. Параметр breadcrumb может быть произвольным 32-битным целым числом, полезным для диагностики сбоев GPU. Если Reckfell собран в режиме разработки или отладки; при сбое GPU Reckfell выведет дамп всех шейдеров, которые выполнялись во время сбоя, а breadcrumb полезен для диагностики того, к каким проходам относятся эти шейдеры. Он не влияет на поведение рендеринга и может быть установлен на 0. Рекомендуется использовать перечисления RenderingDevice.BreadcrumbMarker для согласованности, но это не обязательно. Также возможно использовать побитовые операции для добавления дополнительных данных. Пример:

Текст
rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5)
Параметры
ИмяТипПо умолчанию
framebufferRid—
initialColorActionRenderingDevice.InitialAction—
finalColorActionRenderingDevice.FinalAction—
initialDepthActionRenderingDevice.InitialAction—
finalDepthActionRenderingDevice.FinalAction—
clearColorValuesColor[]—
clearDepthfloat—
clearStenciluint—
regionRect2?—
storageTexturesReckfell.Collections.Array—
Возвращает long
# DrawListBegin · 5/9
C#
public long DrawListBegin(Rid framebuffer, RenderingDevice.InitialAction initialColorAction, RenderingDevice.FinalAction finalColorAction, RenderingDevice.InitialAction initialDepthAction, RenderingDevice.FinalAction finalDepthAction, Color[] clearColorValues, float clearDepth, uint clearStencil, Rect2? region, Reckfell.Collections.Array<Rid> storageTextures);

Начинает список команд растрового рисования, созданных с помощью методов draw_*. Возвращаемое значение должно быть передано другим функциям draw_list_*. Нельзя одновременно создавать несколько списков рисования; сначала необходимо завершить предыдущий список рисования с помощью RenderingDevice.DrawListEnd. Простая операция рисования может выглядеть так (код не является полным примером):

draw_flags указывает, следует ли очищать или игнорировать прикрепленные текстуры буфера кадра. Для каждого отдельного прикрепления можно использовать только один из двух флагов. Игнорирование прикрепления означает, что любое содержимое, существовавшее до списка отрисовки, будет полностью отброшено, что снижает пропускную способность памяти, используемую проходом рендеринга, но приводит к мусорным результатам, если пиксели не заменяются. Поведение по умолчанию позволяет движку определять правильную операцию для использования, если текстура отбрасывается, что может привести к повышению производительности. См. RDTextureFormat или RenderingDevice.TextureSetDiscardable. Параметр breadcrumb может быть произвольным 32-битным целым числом, полезным для диагностики сбоев GPU. Если Reckfell собран в режиме разработки или отладки; при сбое GPU Reckfell выведет дамп всех шейдеров, которые выполнялись во время сбоя, а breadcrumb полезен для диагностики того, к каким проходам относятся эти шейдеры. Он не влияет на поведение рендеринга и может быть установлен на 0. Рекомендуется использовать перечисления RenderingDevice.BreadcrumbMarker для согласованности, но это не обязательно. Также возможно использовать побитовые операции для добавления дополнительных данных. Пример:

Текст
rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5)
Параметры
ИмяТипПо умолчанию
framebufferRid—
initialColorActionRenderingDevice.InitialAction—
finalColorActionRenderingDevice.FinalAction—
initialDepthActionRenderingDevice.InitialAction—
finalDepthActionRenderingDevice.FinalAction—
clearColorValuesColor[]—
clearDepthfloat—
clearStenciluint—
regionRect2?—
storageTexturesReckfell.Collections.Array<Rid>—
clearColorValues

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<Color>().

region

Если параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).

Возвращает long
# DrawListBegin · 6/9
C#
public long DrawListBegin(Rid framebuffer, RenderingDevice.InitialAction initialColorAction, RenderingDevice.FinalAction finalColorAction, RenderingDevice.InitialAction initialDepthAction, RenderingDevice.FinalAction finalDepthAction, Color[] clearColorValues, float clearDepth, uint clearStencil, Rect2? region, uint breadcrumb);

Начинает список команд растрового рисования, созданных с помощью методов draw_*. Возвращаемое значение должно быть передано другим функциям draw_list_*. Нельзя одновременно создавать несколько списков рисования; сначала необходимо завершить предыдущий список рисования с помощью RenderingDevice.DrawListEnd. Простая операция рисования может выглядеть так (код не является полным примером):

draw_flags указывает, следует ли очищать или игнорировать прикрепленные текстуры буфера кадра. Для каждого отдельного прикрепления можно использовать только один из двух флагов. Игнорирование прикрепления означает, что любое содержимое, существовавшее до списка отрисовки, будет полностью отброшено, что снижает пропускную способность памяти, используемую проходом рендеринга, но приводит к мусорным результатам, если пиксели не заменяются. Поведение по умолчанию позволяет движку определять правильную операцию для использования, если текстура отбрасывается, что может привести к повышению производительности. См. RDTextureFormat или RenderingDevice.TextureSetDiscardable. Параметр breadcrumb может быть произвольным 32-битным целым числом, полезным для диагностики сбоев GPU. Если Reckfell собран в режиме разработки или отладки; при сбое GPU Reckfell выведет дамп всех шейдеров, которые выполнялись во время сбоя, а breadcrumb полезен для диагностики того, к каким проходам относятся эти шейдеры. Он не влияет на поведение рендеринга и может быть установлен на 0. Рекомендуется использовать перечисления RenderingDevice.BreadcrumbMarker для согласованности, но это не обязательно. Также возможно использовать побитовые операции для добавления дополнительных данных. Пример:

Текст
rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5)
Параметры
ИмяТипПо умолчанию
framebufferRid—
initialColorActionRenderingDevice.InitialAction—
finalColorActionRenderingDevice.FinalAction—
initialDepthActionRenderingDevice.InitialAction—
finalDepthActionRenderingDevice.FinalAction—
clearColorValuesColor[]—
clearDepthfloat—
clearStenciluint—
regionRect2?—
breadcrumbuint—
clearColorValues

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<Color>().

region

Если параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).

Возвращает long
# DrawListBegin · 7/9
C#
public long DrawListBegin(Rid framebuffer, RenderingDevice.InitialAction initialColorAction, RenderingDevice.FinalAction finalColorAction, RenderingDevice.InitialAction initialDepthAction, RenderingDevice.FinalAction finalDepthAction, ReadOnlySpan<Color> clearColorValues, float clearDepth, uint clearStencil, Rect2? region);

Начинает список команд растрового рисования, созданных с помощью методов draw_*. Возвращаемое значение должно быть передано другим функциям draw_list_*. Нельзя одновременно создавать несколько списков рисования; сначала необходимо завершить предыдущий список рисования с помощью RenderingDevice.DrawListEnd. Простая операция рисования может выглядеть так (код не является полным примером):

draw_flags указывает, следует ли очищать или игнорировать прикрепленные текстуры буфера кадра. Для каждого отдельного прикрепления можно использовать только один из двух флагов. Игнорирование прикрепления означает, что любое содержимое, существовавшее до списка отрисовки, будет полностью отброшено, что снижает пропускную способность памяти, используемую проходом рендеринга, но приводит к мусорным результатам, если пиксели не заменяются. Поведение по умолчанию позволяет движку определять правильную операцию для использования, если текстура отбрасывается, что может привести к повышению производительности. См. RDTextureFormat или RenderingDevice.TextureSetDiscardable. Параметр breadcrumb может быть произвольным 32-битным целым числом, полезным для диагностики сбоев GPU. Если Reckfell собран в режиме разработки или отладки; при сбое GPU Reckfell выведет дамп всех шейдеров, которые выполнялись во время сбоя, а breadcrumb полезен для диагностики того, к каким проходам относятся эти шейдеры. Он не влияет на поведение рендеринга и может быть установлен на 0. Рекомендуется использовать перечисления RenderingDevice.BreadcrumbMarker для согласованности, но это не обязательно. Также возможно использовать побитовые операции для добавления дополнительных данных. Пример:

Текст
rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5)
Параметры
ИмяТипПо умолчанию
framebufferRid—
initialColorActionRenderingDevice.InitialAction—
finalColorActionRenderingDevice.FinalAction—
initialDepthActionRenderingDevice.InitialAction—
finalDepthActionRenderingDevice.FinalAction—
clearColorValuesReadOnlySpan<Color>—
clearDepthfloat—
clearStenciluint—
regionRect2?—
region

Если параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).

Возвращает long
# DrawListBegin · 8/9
C#
public long DrawListBegin(Rid framebuffer, RenderingDevice.InitialAction initialColorAction, RenderingDevice.FinalAction finalColorAction, RenderingDevice.InitialAction initialDepthAction, RenderingDevice.FinalAction finalDepthAction, ReadOnlySpan<Color> clearColorValues, float clearDepth, uint clearStencil, Rect2? region, Reckfell.Collections.Array<Rid> storageTextures);

Начинает список команд растрового рисования, созданных с помощью методов draw_*. Возвращаемое значение должно быть передано другим функциям draw_list_*. Нельзя одновременно создавать несколько списков рисования; сначала необходимо завершить предыдущий список рисования с помощью RenderingDevice.DrawListEnd. Простая операция рисования может выглядеть так (код не является полным примером):

draw_flags указывает, следует ли очищать или игнорировать прикрепленные текстуры буфера кадра. Для каждого отдельного прикрепления можно использовать только один из двух флагов. Игнорирование прикрепления означает, что любое содержимое, существовавшее до списка отрисовки, будет полностью отброшено, что снижает пропускную способность памяти, используемую проходом рендеринга, но приводит к мусорным результатам, если пиксели не заменяются. Поведение по умолчанию позволяет движку определять правильную операцию для использования, если текстура отбрасывается, что может привести к повышению производительности. См. RDTextureFormat или RenderingDevice.TextureSetDiscardable. Параметр breadcrumb может быть произвольным 32-битным целым числом, полезным для диагностики сбоев GPU. Если Reckfell собран в режиме разработки или отладки; при сбое GPU Reckfell выведет дамп всех шейдеров, которые выполнялись во время сбоя, а breadcrumb полезен для диагностики того, к каким проходам относятся эти шейдеры. Он не влияет на поведение рендеринга и может быть установлен на 0. Рекомендуется использовать перечисления RenderingDevice.BreadcrumbMarker для согласованности, но это не обязательно. Также возможно использовать побитовые операции для добавления дополнительных данных. Пример:

Текст
rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5)
Параметры
ИмяТипПо умолчанию
framebufferRid—
initialColorActionRenderingDevice.InitialAction—
finalColorActionRenderingDevice.FinalAction—
initialDepthActionRenderingDevice.InitialAction—
finalDepthActionRenderingDevice.FinalAction—
clearColorValuesReadOnlySpan<Color>—
clearDepthfloat—
clearStenciluint—
regionRect2?—
storageTexturesReckfell.Collections.Array<Rid>—
region

Если параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).

Возвращает long
# DrawListBegin · 9/9
C#
public long DrawListBegin(Rid framebuffer, RenderingDevice.InitialAction initialColorAction, RenderingDevice.FinalAction finalColorAction, RenderingDevice.InitialAction initialDepthAction, RenderingDevice.FinalAction finalDepthAction, ReadOnlySpan<Color> clearColorValues, float clearDepth, uint clearStencil, Rect2? region, uint breadcrumb);

Начинает список команд растрового рисования, созданных с помощью методов draw_*. Возвращаемое значение должно быть передано другим функциям draw_list_*. Нельзя одновременно создавать несколько списков рисования; сначала необходимо завершить предыдущий список рисования с помощью RenderingDevice.DrawListEnd. Простая операция рисования может выглядеть так (код не является полным примером):

draw_flags указывает, следует ли очищать или игнорировать прикрепленные текстуры буфера кадра. Для каждого отдельного прикрепления можно использовать только один из двух флагов. Игнорирование прикрепления означает, что любое содержимое, существовавшее до списка отрисовки, будет полностью отброшено, что снижает пропускную способность памяти, используемую проходом рендеринга, но приводит к мусорным результатам, если пиксели не заменяются. Поведение по умолчанию позволяет движку определять правильную операцию для использования, если текстура отбрасывается, что может привести к повышению производительности. См. RDTextureFormat или RenderingDevice.TextureSetDiscardable. Параметр breadcrumb может быть произвольным 32-битным целым числом, полезным для диагностики сбоев GPU. Если Reckfell собран в режиме разработки или отладки; при сбое GPU Reckfell выведет дамп всех шейдеров, которые выполнялись во время сбоя, а breadcrumb полезен для диагностики того, к каким проходам относятся эти шейдеры. Он не влияет на поведение рендеринга и может быть установлен на 0. Рекомендуется использовать перечисления RenderingDevice.BreadcrumbMarker для согласованности, но это не обязательно. Также возможно использовать побитовые операции для добавления дополнительных данных. Пример:

Текст
rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5)
Параметры
ИмяТипПо умолчанию
framebufferRid—
initialColorActionRenderingDevice.InitialAction—
finalColorActionRenderingDevice.FinalAction—
initialDepthActionRenderingDevice.InitialAction—
finalDepthActionRenderingDevice.FinalAction—
clearColorValuesReadOnlySpan<Color>—
clearDepthfloat—
clearStenciluint—
regionRect2?—
breadcrumbuint—
region

Если параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).

Возвращает long
DrawListBeginForScreenlong
# DrawListBeginForScreen
C#
public long DrawListBeginForScreen(int screen = 0, Color? clearColor = default);

Высокоуровневый вариант RenderingDevice.DrawListBegin, с параметрами, автоматически настраиваемыми для рисования в окне, указанном идентификатором screen. Примечание: Не может использоваться с локальными RenderingDevices, так как у них нет экрана. При вызове на локальном RenderingDevice RenderingDevice.DrawListBeginForScreen возвращает RenderingDevice.InvalidId.

Параметры
ИмяТипПо умолчанию
screenint0
clearColorColor?default
clearColor

Если параметр не имеет значения, то значение по умолчанию: new Color(0.0f, 0.0f, 0.0f, 1.0f).

Возвращает long
DrawListBeginSplit2 перегрузки · Есть устаревшие
# DrawListBeginSplit · 1/2
C#
public long[] DrawListBeginSplit(Rid framebuffer, uint splits, RenderingDevice.InitialAction initialColorAction, RenderingDevice.FinalAction finalColorAction, RenderingDevice.InitialAction initialDepthAction, RenderingDevice.FinalAction finalDepthAction, Color[] clearColorValues = null, float clearDepth = 1f, uint clearStencil = 0, Rect2? region = default, Reckfell.Collections.Array<Rid> storageTextures = null);

Этот метод ничего не делает и всегда возвращает пустой long[].

Параметры
ИмяТипПо умолчанию
framebufferRid—
splitsuint—
initialColorActionRenderingDevice.InitialAction—
finalColorActionRenderingDevice.FinalAction—
initialDepthActionRenderingDevice.InitialAction—
finalDepthActionRenderingDevice.FinalAction—
clearColorValuesColor[]null
clearDepthfloat1f
clearStenciluint0
regionRect2?default
storageTexturesReckfell.Collections.Array<Rid>null
clearColorValues

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<Color>().

region

Если параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).

Возвращает long[]
# DrawListBeginSplit · 2/2
C#
public long[] DrawListBeginSplit(Rid framebuffer, uint splits, RenderingDevice.InitialAction initialColorAction, RenderingDevice.FinalAction finalColorAction, RenderingDevice.InitialAction initialDepthAction, RenderingDevice.FinalAction finalDepthAction, ReadOnlySpan<Color> clearColorValues, float clearDepth, uint clearStencil, Rect2? region, Reckfell.Collections.Array<Rid> storageTextures);

Этот метод ничего не делает и всегда возвращает пустой long[].

Параметры
ИмяТипПо умолчанию
framebufferRid—
splitsuint—
initialColorActionRenderingDevice.InitialAction—
finalColorActionRenderingDevice.FinalAction—
initialDepthActionRenderingDevice.InitialAction—
finalDepthActionRenderingDevice.FinalAction—
clearColorValuesReadOnlySpan<Color>—
clearDepthfloat—
clearStenciluint—
regionRect2?—
storageTexturesReckfell.Collections.Array<Rid>—
region

Если параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).

Возвращает long[]
DrawListBindIndexArrayvoid
# DrawListBindIndexArray
C#
public void DrawListBindIndexArray(long drawList, Rid indexArray);

Связывает index_array с указанным draw_list.

Параметры
ИмяТипПо умолчанию
drawListlong—
indexArrayRid—
DrawListBindRenderPipelinevoid
# DrawListBindRenderPipeline
C#
public void DrawListBindRenderPipeline(long drawList, Rid renderPipeline);

Связывает render_pipeline с указанным draw_list.

Параметры
ИмяТипПо умолчанию
drawListlong—
renderPipelineRid—
DrawListBindUniformSetvoid
# DrawListBindUniformSet
C#
public void DrawListBindUniformSet(long drawList, Rid uniformSet, uint setIndex);

Связывает uniform_set с указанным draw_list. Также необходимо указать set_index, который представляет собой идентификатор, начинающийся с 0, который должен соответствовать ожидаемому списку отрисовки.

Параметры
ИмяТипПо умолчанию
drawListlong—
uniformSetRid—
setIndexuint—
DrawListBindVertexArrayvoid
# DrawListBindVertexArray
C#
public void DrawListBindVertexArray(long drawList, Rid vertexArray);

Связывает vertex_array с указанным draw_list.

Параметры
ИмяТипПо умолчанию
drawListlong—
vertexArrayRid—
DrawListBindVertexBuffersFormat2 перегрузки
# DrawListBindVertexBuffersFormat · 1/2
C#
public void DrawListBindVertexBuffersFormat(long drawList, long vertexFormat, uint vertexCount, Reckfell.Collections.Array<Rid> vertexBuffers, long[] offsets = null);

Привязывает набор из vertex_buffers непосредственно к указанному draw_list с использованием vertex_format без создания RID массива вершин. Укажите количество вершин в vertex_count; также могут быть указаны необязательные байты для каждого буфера offsets.

Параметры
ИмяТипПо умолчанию
drawListlong—
vertexFormatlong—
vertexCountuint—
vertexBuffersReckfell.Collections.Array<Rid>—
offsetslong[]null
offsets

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<long>().

# DrawListBindVertexBuffersFormat · 2/2
C#
public void DrawListBindVertexBuffersFormat(long drawList, long vertexFormat, uint vertexCount, Reckfell.Collections.Array<Rid> vertexBuffers, ReadOnlySpan<long> offsets);

Привязывает набор из vertex_buffers непосредственно к указанному draw_list с использованием vertex_format без создания RID массива вершин. Укажите количество вершин в vertex_count; также могут быть указаны необязательные байты для каждого буфера offsets.

Параметры
ИмяТипПо умолчанию
drawListlong—
vertexFormatlong—
vertexCountuint—
vertexBuffersReckfell.Collections.Array<Rid>—
offsetsReadOnlySpan<long>—
DrawListDisableScissorvoid
# DrawListDisableScissor
C#
public void DrawListDisableScissor(long drawList);

Удаляет и отключает прямоугольник ножниц для указанного draw_list. См. также RenderingDevice.DrawListEnableScissor.

Параметры
ИмяТипПо умолчанию
drawListlong—
DrawListDrawvoid
# DrawListDraw
C#
public void DrawListDraw(long drawList, bool useIndices, uint instances, uint proceduralVertexCount = 0);

Отправляет draw_list для рендеринга на GPU. Это растровый эквивалент RenderingDevice.ComputeListDispatch.

Параметры
ИмяТипПо умолчанию
drawListlong—
useIndicesbool—
instancesuint—
proceduralVertexCountuint0
DrawListDrawIndirectvoid
# DrawListDrawIndirect
C#
public void DrawListDrawIndirect(long drawList, bool useIndices, Rid buffer, uint offset = 0, uint drawCount = 1, uint stride = 0);

Отправляет draw_list для рендеринга на GPU с заданными параметрами, сохраненными в buffer по адресу offset. Параметры являются целыми числами: количество вершин, количество экземпляров, первая вершина, первый экземпляр. А при использовании индексов: количество индексов, количество экземпляров, первый индекс, смещение вершин, первый экземпляр. Буфер должен быть создан с флагом RenderingDevice.StorageBufferUsage.Indirect.

Параметры
ИмяТипПо умолчанию
drawListlong—
useIndicesbool—
bufferRid—
offsetuint0
drawCountuint1
strideuint0
DrawListEnableScissorvoid
# DrawListEnableScissor
C#
public void DrawListEnableScissor(long drawList, Rect2? rect = default);

Создает прямоугольник-ножницы и включает его для указанного draw_list. Прямоугольники-ножницы используются для обрезки путем отбрасывания фрагментов, которые выходят за пределы указанной прямоугольной части экрана. См. также RenderingDevice.DrawListDisableScissor. Примечание: Указанный rect автоматически пересекается с размерами экрана, что означает, что он не может превышать размеры экрана.

Параметры
ИмяТипПо умолчанию
drawListlong—
rectRect2?default
rect

Если параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).

DrawListEnd2 перегрузки
# DrawListEnd · 1/2
C#
public void DrawListEnd();

Завершает список команд растрового рисования, созданных с помощью методов draw_*.

# DrawListEnd · 2/2
C#
public void DrawListEnd(RenderingDevice.BarrierMask postBarrier);

Завершает список команд растрового рисования, созданных с помощью методов draw_*.

Параметры
ИмяТипПо умолчанию
postBarrierRenderingDevice.BarrierMask—
DrawListSetBlendConstantsvoid
# DrawListSetBlendConstants
C#
public void DrawListSetBlendConstants(long drawList, Color color);

Устанавливает константы смешивания для указанного draw_list в color. Константы смешивания используются только в том случае, если графический конвейер создан с установленным флагом RenderingDevice.PipelineDynamicStateFlags.BlendConstants.

Параметры
ИмяТипПо умолчанию
drawListlong—
colorColor—
DrawListSetPushConstant2 перегрузки
# DrawListSetPushConstant · 1/2
C#
public void DrawListSetPushConstant(long drawList, byte[] buffer, uint sizeBytes);

Устанавливает данные константы push в buffer для указанного draw_list. Шейдер определяет, как используются эти двоичные данные. Размер буфера в байтах также должен быть указан в size_bytes (его можно получить, вызвав метод PackedByteArray.size для переданного buffer).

Параметры
ИмяТипПо умолчанию
drawListlong—
bufferbyte[]—
sizeBytesuint—
# DrawListSetPushConstant · 2/2
C#
public void DrawListSetPushConstant(long drawList, ReadOnlySpan<byte> buffer, uint sizeBytes);

Устанавливает данные константы push в buffer для указанного draw_list. Шейдер определяет, как используются эти двоичные данные. Размер буфера в байтах также должен быть указан в size_bytes (его можно получить, вызвав метод PackedByteArray.size для переданного buffer).

Параметры
ИмяТипПо умолчанию
drawListlong—
bufferReadOnlySpan<byte>—
sizeBytesuint—
DrawListSwitchToNextPasslong
# DrawListSwitchToNextPass
C#
public long DrawListSwitchToNextPass();

Переключается на следующий проход розыгрыша.

Возвращает long
DrawListSwitchToNextPassSplitlong[] · Устарело
# DrawListSwitchToNextPassSplit
C#
public long[] DrawListSwitchToNextPassSplit(uint splits);

Этот метод ничего не делает и всегда возвращает пустой long[].

Параметры
ИмяТипПо умолчанию
splitsuint—
Возвращает long[]
FramebufferCreateRid
# FramebufferCreate
C#
public Rid FramebufferCreate(Reckfell.Collections.Array<Rid> textures, long validateWithFormat = -1, uint viewCount = 1);

Создаёт новый рам-бюффер. Доступ к нему можно получить с помощью RID ..вернёмся. Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод. Это будет автоматически освобождено, когда любой из textures освободился.

Параметры
ИмяТипПо умолчанию
texturesReckfell.Collections.Array<Rid>—
validateWithFormatlong-1
viewCountuint1
Возвращает Rid
FramebufferCreateEmptyRid
# FramebufferCreateEmpty
C#
public Rid FramebufferCreateEmpty(Vector2I size, RenderingDevice.TextureSamples samples = RenderingDevice.TextureSamples.Samples1, long validateWithFormat = -1);

Создает новый пустой буфер кадра. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeVector2I—
samplesRenderingDevice.TextureSamplesRenderingDevice.TextureSamples.Samples1
validateWithFormatlong-1
Возвращает Rid
FramebufferCreateMultipassRid
# FramebufferCreateMultipass
C#
public Rid FramebufferCreateMultipass(Reckfell.Collections.Array<Rid> textures, Reckfell.Collections.Array<RDFramebufferPass> passes, long validateWithFormat = -1, uint viewCount = 1);

Создать новый многопассный рамкабуффер. Доступ к нему можно получить с помощью RID ..вернёмся. Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод. Это будет автоматически освобождено, когда любой из textures освободился.

Параметры
ИмяТипПо умолчанию
texturesReckfell.Collections.Array<Rid>—
passesReckfell.Collections.Array<RDFramebufferPass>—
validateWithFormatlong-1
viewCountuint1
Возвращает Rid
FramebufferFormatCreatelong
# FramebufferFormatCreate
C#
public long FramebufferFormatCreate(Reckfell.Collections.Array<RDAttachmentFormat> attachments, uint viewCount = 1);

Создать новый формат makebuffer с указанным attachments и view_count. Возвращает уникальный идентификатор формата рамбуффера. Если view_count больше или равно 2, позволяет мультивидение, которое используется для VR-просмотра. Это требует поддержки для расширения Мультивидение Vulkan.

Параметры
ИмяТипПо умолчанию
attachmentsReckfell.Collections.Array<RDAttachmentFormat>—
viewCountuint1
Возвращает long
FramebufferFormatCreateEmptylong
# FramebufferFormatCreateEmpty
C#
public long FramebufferFormatCreateEmpty(RenderingDevice.TextureSamples samples = RenderingDevice.TextureSamples.Samples1);

Создает новый пустой формат буфера кадра с указанным числом samples и возвращает его идентификатор.

Параметры
ИмяТипПо умолчанию
samplesRenderingDevice.TextureSamplesRenderingDevice.TextureSamples.Samples1
Возвращает long
FramebufferFormatCreateMultipasslong
# FramebufferFormatCreateMultipass
C#
public long FramebufferFormatCreateMultipass(Reckfell.Collections.Array<RDAttachmentFormat> attachments, Reckfell.Collections.Array<RDFramebufferPass> passes, uint viewCount = 1);

Создать формат многопассажирского рамного буффера с указанным форматом attachments, passes и view_count и возвращает ID. view_count больше или равно 2, позволяет мультивидение, которое используется для VR-просмотра. Это требует поддержки для расширения Мультивидение Vulkan.

Параметры
ИмяТипПо умолчанию
attachmentsReckfell.Collections.Array<RDAttachmentFormat>—
passesReckfell.Collections.Array<RDFramebufferPass>—
viewCountuint1
Возвращает long
FramebufferFormatGetTextureSamplesRenderingDevice.TextureSamples
# FramebufferFormatGetTextureSamples
C#
public RenderingDevice.TextureSamples FramebufferFormatGetTextureSamples(long format, uint renderPass = 0);

Возвращает количество образцов текстуры, используемых для заданного идентификатора буфера кадра format (возвращается RenderingDevice.FramebufferGetFormat).

Параметры
ИмяТипПо умолчанию
formatlong—
renderPassuint0
Возвращает RenderingDevice.TextureSamples
FramebufferGetFormatlong
# FramebufferGetFormat
C#
public long FramebufferGetFormat(Rid framebuffer);

Возвращает идентификатор формата буфера кадра, заданного RID framebuffer. Этот идентификатор гарантированно уникален для тех же форматов и не требует освобождения.

Параметры
ИмяТипПо умолчанию
framebufferRid—
Возвращает long
FramebufferIsValidbool
# FramebufferIsValid
C#
public bool FramebufferIsValid(Rid framebuffer);

Возвращает true, если буфер кадра, указанный в RID framebuffer, действителен, в противном случае — false.

Параметры
ИмяТипПо умолчанию
framebufferRid—
Возвращает bool
FreeRidvoid
# FreeRid
C#
public void FreeRid(Rid rid);

Освобождает принадлежащий этому RenderingDevice ресурс. Учитывайте зависимости и завершение работы; не используйте освобождённый RID. Ненулевой Rid.IsValid сам по себе не доказывает, что ресурс ещё существует.

Параметры
ИмяТипПо умолчанию
ridRid—
rid

Существующий RID ресурса, принадлежащего этому устройству.

FullBarriervoid · Устарело
# FullBarrier
C#
public void FullBarrier();

Этот метод ничего не даёт.

GetCapturedTimestampCpuTimeulong
# GetCapturedTimestampCpuTime
C#
public ulong GetCapturedTimestampCpuTime(uint index);

Возвращает временную метку в процессорном времени для шага рендеринга, указанного index (в микросекундах с момента запуска движка). См. также RenderingDevice.GetCapturedTimestampGpuTime и RenderingDevice.CaptureTimestamp.

Параметры
ИмяТипПо умолчанию
indexuint—
Возвращает ulong
GetCapturedTimestampGpuTimeulong
# GetCapturedTimestampGpuTime
C#
public ulong GetCapturedTimestampGpuTime(uint index);

Возвращает время в времени GPU для этапа отображения, указанного index (в наносекундах с момента запуска двигателя). См. также RenderingDevice.GetCapturedTimestampCpuTime и RenderingDevice.CaptureTimestamp.

Параметры
ИмяТипПо умолчанию
indexuint—
Возвращает ulong
GetCapturedTimestampNamestring
# GetCapturedTimestampName
C#
public string GetCapturedTimestampName(uint index);

Возвращает имя временной метки для шага рендеринга, указанного index. См. также RenderingDevice.CaptureTimestamp.

Параметры
ИмяТипПо умолчанию
indexuint—
Возвращает string
GetCapturedTimestampsCountuint
# GetCapturedTimestampsCount
C#
public uint GetCapturedTimestampsCount();

Возвращает общее количество временных меток (шагов рендеринга), доступных для профилирования.

Возвращает uint
GetCapturedTimestampsFrameulong
# GetCapturedTimestampsFrame
C#
public ulong GetCapturedTimestampsFrame();

Возвращает индекс последнего отрисованного кадра, временные метки которого доступны для запроса.

Возвращает ulong
GetDeviceAllocationCountulong
# GetDeviceAllocationCount
C#
public ulong GetDeviceAllocationCount();

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

Возвращает ulong
GetDeviceAllocsByObjectTypeulong
# GetDeviceAllocsByObjectType
C#
public ulong GetDeviceAllocsByObjectType(uint type);

То же, что и RenderingDevice.GetDeviceAllocationCount, но отфильтровано для заданного типа объекта. Аргумент типа должен быть в диапазоне [RenderingDevice.GetTrackedObjectTypeCount`](/ru/docs/api/renderingdevice#member-gettrackedobjecttypecount-6ea83230eb) равен 0, то аргумент типа игнорируется и всегда возвращает 0. Это используется только Vulkan в отладочных сборках и может возвращать 0, когда эта информация не отслеживается или неизвестна.

Параметры
ИмяТипПо умолчанию
typeuint—
Возвращает ulong
GetDeviceMemoryByObjectTypeulong
# GetDeviceMemoryByObjectType
C#
public ulong GetDeviceMemoryByObjectType(uint type);

То же, что и RenderingDevice.GetDeviceTotalMemory, но отфильтровано для заданного типа объекта. Аргумент типа должен быть в диапазоне [RenderingDevice.GetTrackedObjectTypeCount`](/ru/docs/api/renderingdevice#member-gettrackedobjecttypecount-6ea83230eb) равен 0, то аргумент типа игнорируется и всегда возвращает 0. Это используется только Vulkan в отладочных сборках и может возвращать 0, когда эта информация не отслеживается или неизвестна.

Параметры
ИмяТипПо умолчанию
typeuint—
Возвращает ulong
GetDeviceNamestring
# GetDeviceName
C#
public string GetDeviceName();

Возвращает имя видеоадаптера (например, "GeForce GTX 1080/PCIe/SSE2"). Эквивалентно RenderingServer.GetVideoAdapterName. См. также RenderingDevice.GetDeviceVendorName.

Возвращает string
GetDevicePipelineCacheUuidstring
# GetDevicePipelineCacheUuid
C#
public string GetDevicePipelineCacheUuid();

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

Возвращает string
GetDeviceTotalMemoryulong
# GetDeviceTotalMemory
C#
public ulong GetDeviceTotalMemory();

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

Возвращает ulong
GetDeviceVendorNamestring
# GetDeviceVendorName
C#
public string GetDeviceVendorName();

Возвращает поставщика видеоадаптера (например, "Корпорация NVIDIA"). Эквивалентно RenderingServer.GetVideoAdapterVendor. См. также RenderingDevice.GetDeviceName.

Возвращает string
GetDriverAllocationCountulong
# GetDriverAllocationCount
C#
public ulong GetDriverAllocationCount();

Возвращает количество выделений, выполненных драйвером GPU для внутренних структур драйвера. Используется Vulkan только в отладочных сборках и может возвращать 0, если эта информация не отслеживается или неизвестна.

Возвращает ulong
GetDriverAllocsByObjectTypeulong
# GetDriverAllocsByObjectType
C#
public ulong GetDriverAllocsByObjectType(uint type);

То же, что и RenderingDevice.GetDriverAllocationCount, но отфильтровано для заданного типа объекта. Аргумент типа должен быть в диапазоне [RenderingDevice.GetTrackedObjectTypeCount`](/ru/docs/api/renderingdevice#member-gettrackedobjecttypecount-6ea83230eb) равен 0, то аргумент типа игнорируется и всегда возвращает 0. Это используется только Vulkan в отладочных сборках и может возвращать 0, когда эта информация не отслеживается или неизвестна.

Параметры
ИмяТипПо умолчанию
typeuint—
Возвращает ulong
GetDriverAndDeviceMemoryReportstring
# GetDriverAndDeviceMemoryReport
C#
public string GetDriverAndDeviceMemoryReport();

Возвращает строковый отчет в формате CSV, используя следующие методы:

Возвращает string
GetDriverMemoryByObjectTypeulong
# GetDriverMemoryByObjectType
C#
public ulong GetDriverMemoryByObjectType(uint type);

То же, что и RenderingDevice.GetDriverTotalMemory, но отфильтровано для заданного типа объекта. Аргумент типа должен быть в диапазоне [RenderingDevice.GetTrackedObjectTypeCount`](/ru/docs/api/renderingdevice#member-gettrackedobjecttypecount-6ea83230eb) равен 0, то аргумент типа игнорируется и всегда возвращает 0. Это используется только Vulkan в отладочных сборках и может возвращать 0, когда эта информация не отслеживается или неизвестна.

Параметры
ИмяТипПо умолчанию
typeuint—
Возвращает ulong
GetDriverResourceulong
# GetDriverResource
C#
public ulong GetDriverResource(RenderingDevice.DriverResource resource, Rid rid, ulong index);

Возвращает уникальный ID идентификатор драйвера resource для указанного rid. Некоторые типы ресурсов драйвера игнорируют указанный rid. index всегда игнорируется, но должен быть указан в любом случае.

Параметры
ИмяТипПо умолчанию
resourceRenderingDevice.DriverResource—
ridRid—
indexulong—
Возвращает ulong
GetDriverTotalMemoryulong
# GetDriverTotalMemory
C#
public ulong GetDriverTotalMemory();

Возвращает, сколько байтов драйвер GPU использует для внутренних структур драйвера. Используется только Vulkan в отладочных сборках и может возвращать 0, если эта информация не отслеживается или неизвестна.

Возвращает ulong
GetFrameDelayuint
# GetFrameDelay
C#
public uint GetFrameDelay();

Возвращает количество кадров, хранящееся в графическом API. Более высокие значения приводят к более высокой задержке ввода, но с более стабильной пропускной способностью. Для основного RenderingDevice кадры циклически повторяются (обычно 3 с включенной тройной буферизацией V-Sync). Однако локальные RenderingDevice имеют только 1 кадр.

Возвращает uint
GetMemoryUsageulong
# GetMemoryUsage
C#
public ulong GetMemoryUsage(RenderingDevice.MemoryType type);

Возвращает использование памяти в байтах, соответствующих указанному type. При использовании Vulkan эта статистика рассчитывается с помощью Отправитель памяти Вулкана.

Параметры
ИмяТипПо умолчанию
typeRenderingDevice.MemoryType—
Возвращает ulong
GetPerfReportstring
# GetPerfReport
C#
public string GetPerfReport();

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

Возвращает string
GetTrackedObjectNamestring
# GetTrackedObjectName
C#
public string GetTrackedObjectName(uint typeIndex);

Возвращает имя типа объекта для заданного type_index. Это значение должно быть в диапазоне [RenderingDevice.GetTrackedObjectTypeCount](/ru/docs/api/renderingdevice#member-gettrackedobjecttypecount-6ea83230eb) равен 0, то аргумент type игнорируется и всегда возвращает одну и ту же строку. Возвращаемое значение важно, поскольку оно придает смысл типам, переданным в [RenderingDevice.GetDriverMemoryByObjectType](/ru/docs/api/renderingdevice#member-getdrivermemorybyobjecttype-f8ed5453a7), [RenderingDevice.GetDriverAllocsByObjectType](/ru/docs/api/renderingdevice#member-getdriverallocsbyobjecttype-0caddbe283), [RenderingDevice.GetDeviceMemoryByObjectType](/ru/docs/api/renderingdevice#member-getdevicememorybyobjecttype-3861f5f55f) и [RenderingDevice.GetDeviceAllocsByObjectType`](/ru/docs/api/renderingdevice#member-getdeviceallocsbyobjecttype-341591375f). Примеры строк, которые он может возвращать (не исчерпывающие):

  • DEVICE_MEMORY
  • PIPELINE_CACHE
  • SWAPCHAIN_KHR
  • COMMAND_POOL Таким образом, если, например, get_tracked_object_name(5) возвращает "COMMAND_POOL", затем get_device_memory_by_object_type(5) возвращает байты, используемые GPU для пулов команд. Это используется только Vulkan в отладочных сборках. Reckfell также должен быть запущен с --extra-gpu-memory-tracking аргументом командной строки.
Параметры
ИмяТипПо умолчанию
typeIndexuint—
Возвращает string
GetTrackedObjectTypeCountulong
# GetTrackedObjectTypeCount
C#
public ulong GetTrackedObjectTypeCount();

Возвращает количество типов отслеживаемых объектов. Используется только Vulkan в отладочных сборках. Reckfell также должен быть запущен с --extra-gpu-memory-tracking аргументом командной строки.

Возвращает ulong
HasFeaturebool
# HasFeature
C#
public bool HasFeature(RenderingDevice.Features feature);

Возвращает true, если feature поддерживается графическим процессором.

Параметры
ИмяТипПо умолчанию
featureRenderingDevice.Features—
Возвращает bool
HitSbtCreateRid
# HitSbtCreate
C#
public Rid HitSbtCreate(Rid raytracingPipeline, uint initialHitGroupCapacity);

Создаёт новую связную таблицу хит-тенера (SBT). RID ..вернёмся. Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод. Это будет автоматически освобождено, когда raytracing_pipeline освободился. Поражённый SBT переизменяется по мере необходимости. initial_hit_group_capacity используется для передачи первоначальной памяти поддержки.

Параметры
ИмяТипПо умолчанию
raytracingPipelineRid—
initialHitGroupCapacityuint—
Возвращает Rid
HitSbtRangeAlloclong
# HitSbtRangeAlloc
C#
public long HitSbtRangeAlloc(Rid hitSbt, uint hitGroupCount);

Выделяет непрерывный диапазон записей SBT из hit_sbt. Возвращаемое значение должно быть присвоено RDAccelerationStructureInstance.HitSbtRange. Во время трассировки лучей индекс группы попаданий вычисляется как: (индекс геометрии в RDAccelerationStructureInstance.Blas) × (шаг SBT, используемый в traceRayEXT)

  • (смещение SBT, используемое в traceRayEXT)
  • (смещение диапазона) hit_group_count должно быть достаточно большим, чтобы покрыть все записи SBT, которые могут быть проиндексированы этим уравнением. Обычно это соответствует: (количество геометрий в RDAccelerationStructureInstance.Blas) × (шаг SBT, используемый в traceRayEXT) Выделенный диапазон не инициализирован и должен быть заполнен с помощью RenderingDevice.HitSbtRangeUpdate.
Параметры
ИмяТипПо умолчанию
hitSbtRid—
hitGroupCountuint—
Возвращает long
HitSbtRangeFreeError
# HitSbtRangeFree
C#
public Error HitSbtRangeFree(Rid hitSbt, long range);

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

Параметры
ИмяТипПо умолчанию
hitSbtRid—
rangelong—
Возвращает Error
HitSbtRangeUpdate2 перегрузки
# HitSbtRangeUpdate · 1/2
C#
public Error HitSbtRangeUpdate(Rid hitSbt, long range, uint offset, int[] hitGroupIndices);

Обновляет содержимое диапазона SBT попаданий. hit_group_indices задаёт индексы в массиве групп попаданий, предоставленном в RenderingDevice.RaytracingPipelineCreate. Параметр offset определяет, с какого места в выделенном диапазоне начинается запись. Это позволяет выполнять частичные обновления диапазона. Однако полный диапазон должен быть полностью инициализирован перед использованием в диспетчеризации трассировки лучей.

Параметры
ИмяТипПо умолчанию
hitSbtRid—
rangelong—
offsetuint—
hitGroupIndicesint[]—
Возвращает Error
# HitSbtRangeUpdate · 2/2
C#
public Error HitSbtRangeUpdate(Rid hitSbt, long range, uint offset, ReadOnlySpan<int> hitGroupIndices);

Обновляет содержимое диапазона SBT попаданий. hit_group_indices задаёт индексы в массиве групп попаданий, предоставленном в RenderingDevice.RaytracingPipelineCreate. Параметр offset определяет, с какого места в выделенном диапазоне начинается запись. Это позволяет выполнять частичные обновления диапазона. Однако полный диапазон должен быть полностью инициализирован перед использованием в диспетчеризации трассировки лучей.

Параметры
ИмяТипПо умолчанию
hitSbtRid—
rangelong—
offsetuint—
hitGroupIndicesReadOnlySpan<int>—
Возвращает Error
HitSbtSetPipelineError
# HitSbtSetPipeline
C#
public Error HitSbtSetPipeline(Rid hitSbt, Rid raytracingPipeline);

Устанавливает новый raytracing_pipeline для hit_sbt. Новый конвейер должен быть надмножеством предыдущего. Существующие группы попаданий должны сохранять тот же порядок, а новые группы попаданий должны добавляться в конец. Это сохраняет существующие записи SBT. Предыдущий конвейер должен оставаться действительным во время вызова.

Параметры
ИмяТипПо умолчанию
hitSbtRid—
raytracingPipelineRid—
Возвращает Error
IndexArrayCreateRid
# IndexArrayCreate
C#
public Rid IndexArrayCreate(Rid indexBuffer, uint indexOffset, uint indexCount);

Создать новый индексный массив. Доступ к нему можно получить с помощью RID ..вернёмся. Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод. Это будет автоматически освобождено, когда index_buffer освободился.

Параметры
ИмяТипПо умолчанию
indexBufferRid—
indexOffsetuint—
indexCountuint—
Возвращает Rid
IndexBufferCreate4 перегрузки
# IndexBufferCreate · 1/4
C#
public Rid IndexBufferCreate(uint sizeIndices, RenderingDevice.IndexBufferFormat format, byte[] data, bool useRestartIndices);

Создает новый буфер индекса. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeIndicesuint—
formatRenderingDevice.IndexBufferFormat—
databyte[]—
useRestartIndicesbool—
data

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().

Возвращает Rid
# IndexBufferCreate · 2/4
C#
public Rid IndexBufferCreate(uint sizeIndices, RenderingDevice.IndexBufferFormat format, byte[] data = null, bool useRestartIndices = false, RenderingDevice.BufferCreationBits creationBits = (RenderingDevice.BufferCreationBits)0);

Создает новый буфер индекса. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeIndicesuint—
formatRenderingDevice.IndexBufferFormat—
databyte[]null
useRestartIndicesboolfalse
creationBitsRenderingDevice.BufferCreationBits(RenderingDevice.BufferCreationBits)0
data

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().

Возвращает Rid
# IndexBufferCreate · 3/4
C#
public Rid IndexBufferCreate(uint sizeIndices, RenderingDevice.IndexBufferFormat format, ReadOnlySpan<byte> data, bool useRestartIndices);

Создает новый буфер индекса. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeIndicesuint—
formatRenderingDevice.IndexBufferFormat—
dataReadOnlySpan<byte>—
useRestartIndicesbool—
Возвращает Rid
# IndexBufferCreate · 4/4
C#
public Rid IndexBufferCreate(uint sizeIndices, RenderingDevice.IndexBufferFormat format, ReadOnlySpan<byte> data, bool useRestartIndices, RenderingDevice.BufferCreationBits creationBits);

Создает новый буфер индекса. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeIndicesuint—
formatRenderingDevice.IndexBufferFormat—
dataReadOnlySpan<byte>—
useRestartIndicesbool—
creationBitsRenderingDevice.BufferCreationBits—
Возвращает Rid
LimitGetulong
# LimitGet
C#
public ulong LimitGet(RenderingDevice.Limit limit);

Запрашивает аппаратное ограничение активного устройства. Например, MaxTextureSize2D задаёт предел размера 2D-текстуры, но не обещает успешное выделение ресурса этого размера. Значения зависят от устройства и драйвера; не являются текущим остатком памяти или общим пределом всех типов текстур.

Параметры
ИмяТипПо умолчанию
limitRenderingDevice.Limit—
limit

Конкретный элемент RenderingDevice.Limit. Для 2D, 3D, кубических текстур, слоёв и других ресурсов выбирайте соответствующее ограничение.

Возвращает ulong

Численное значение выбранного ограничения устройства. Единица зависит от элемента enum; для MaxTextureSize2D — максимальный размер стороны в пикселях.

RaytracingListBeginlong
# RaytracingListBegin
C#
public long RaytracingListBegin();

Запускает список команд трассировки лучей. Возвращаемое значение должно передаваться в другие функции raytracing_list_*. Нельзя создавать несколько списков трассировки одновременно; сначала необходимо завершить предыдущий список с помощью RenderingDevice.RaytracingListEnd. Простая операция трассировки лучей может выглядеть так (код не является полным примером):

Возвращает long
RaytracingListBindRaytracingPipelinevoid
# RaytracingListBindRaytracingPipeline
C#
public void RaytracingListBindRaytracingPipeline(long raytracingList, Rid raytracingPipeline);

Привязывает raytracing_pipeline к указанному raytracing_list.

Параметры
ИмяТипПо умолчанию
raytracingListlong—
raytracingPipelineRid—
RaytracingListBindUniformSetvoid
# RaytracingListBindUniformSet
C#
public void RaytracingListBindUniformSet(long raytracingList, Rid uniformSet, uint setIndex);

Привязывает uniform_set к этому raytracing_list.

Параметры
ИмяТипПо умолчанию
raytracingListlong—
uniformSetRid—
setIndexuint—
RaytracingListEndvoid
# RaytracingListEnd
C#
public void RaytracingListEnd();

Завершает список команд трассировки, созданный с помощью методов raytracing_*.

RaytracingListSetPushConstant2 перегрузки
# RaytracingListSetPushConstant · 1/2
C#
public void RaytracingListSetPushConstant(long raytracingList, byte[] buffer, uint sizeBytes);

Устанавливает данные константы push в buffer для указанного raytracing_list. Шейдер определяет, как используются эти двоичные данные. Размер буфера в байтах также должен быть указан в size_bytes (его можно получить, вызвав метод PackedByteArray.size для переданного buffer).

Параметры
ИмяТипПо умолчанию
raytracingListlong—
bufferbyte[]—
sizeBytesuint—
# RaytracingListSetPushConstant · 2/2
C#
public void RaytracingListSetPushConstant(long raytracingList, ReadOnlySpan<byte> buffer, uint sizeBytes);

Устанавливает данные константы push в buffer для указанного raytracing_list. Шейдер определяет, как используются эти двоичные данные. Размер буфера в байтах также должен быть указан в size_bytes (его можно получить, вызвав метод PackedByteArray.size для переданного buffer).

Параметры
ИмяТипПо умолчанию
raytracingListlong—
bufferReadOnlySpan<byte>—
sizeBytesuint—
RaytracingListTraceRaysvoid
# RaytracingListTraceRays
C#
public void RaytracingListTraceRays(long raytracingList, uint raygenShaderIndex, Rid hitSbt, uint width, uint height, uint depth);

Инициализирует диспетчеризацию трассировки лучей для raytracing_list, запуская width × height × depth лучей. raygen_shader_index выбирает шейдер генерации лучей из конвейера, привязанного с помощью RenderingDevice.RaytracingListBindRaytracingPipeline. hit_sbt должен использовать тот же конвейер, который привязан к raytracing_list.

Параметры
ИмяТипПо умолчанию
raytracingListlong—
raygenShaderIndexuint—
hitSbtRid—
widthuint—
heightuint—
depthuint—
RaytracingPipelineCreateRid
# RaytracingPipelineCreate
C#
public Rid RaytracingPipelineCreate(Reckfell.Collections.Array<RDPipelineShader> raygenShaders, Reckfell.Collections.Array<RDPipelineShader> missShaders, Reckfell.Collections.Array<RDHitGroup> hitGroups, uint maxTraceRecursionDepth);

Создаёт новый трассирующий трубопровод. RID ..вернёмся. Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод. Каждый из них должен обеспечивать требуемую стадию. На всех этапах должны использоваться совместимые конфигурации трубопровода. Input Последовательность определяет стабильные индексы, используемые API:

Параметры
ИмяТипПо умолчанию
raygenShadersReckfell.Collections.Array<RDPipelineShader>—
missShadersReckfell.Collections.Array<RDPipelineShader>—
hitGroupsReckfell.Collections.Array<RDHitGroup>—
maxTraceRecursionDepthuint—
Возвращает Rid
RaytracingPipelineIsValidbool
# RaytracingPipelineIsValid
C#
public bool RaytracingPipelineIsValid(Rid raytracingPipeline);

Возвращает true, если конвейер трассировки, указанный в raytracing_pipeline RID, действителен, в противном случае false.

Параметры
ИмяТипПо умолчанию
raytracingPipelineRid—
Возвращает bool
RenderPipelineCreateRid
# RenderPipelineCreate
C#
public Rid RenderPipelineCreate(Rid shader, long framebufferFormat, long vertexFormat, RenderingDevice.RenderPrimitive primitive, RDPipelineRasterizationState rasterizationState, RDPipelineMultisampleState multisampleState, RDPipelineDepthStencilState stencilState, RDPipelineColorBlendState colorBlendState, RenderingDevice.PipelineDynamicStateFlags dynamicStateFlags = (RenderingDevice.PipelineDynamicStateFlags)0, uint forRenderPass = 0, Reckfell.Collections.Array<RDPipelineSpecializationConstant> specializationConstants = null);

Создаёт новый трубопровод для дорожки. RID ..вернёмся. Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод. Это будет автоматически освобождено, когда shader освободился.

Параметры
ИмяТипПо умолчанию
shaderRid—
framebufferFormatlong—
vertexFormatlong—
primitiveRenderingDevice.RenderPrimitive—
rasterizationStateRDPipelineRasterizationState—
multisampleStateRDPipelineMultisampleState—
stencilStateRDPipelineDepthStencilState—
colorBlendStateRDPipelineColorBlendState—
dynamicStateFlagsRenderingDevice.PipelineDynamicStateFlags(RenderingDevice.PipelineDynamicStateFlags)0
forRenderPassuint0
specializationConstantsReckfell.Collections.Array<RDPipelineSpecializationConstant>null
Возвращает Rid
RenderPipelineIsValidbool
# RenderPipelineIsValid
C#
public bool RenderPipelineIsValid(Rid renderPipeline);

Возвращает true, если конвейер рендеринга, указанный в render_pipeline RID, действителен, в противном случае false.

Параметры
ИмяТипПо умолчанию
renderPipelineRid—
Возвращает bool
SamplerCreateRid
# SamplerCreate
C#
public Rid SamplerCreate(RDSamplerState state);

Создает новый сэмплер. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
stateRDSamplerState—
Возвращает Rid
SamplerIsFormatSupportedForFilterbool
# SamplerIsFormatSupportedForFilter
C#
public bool SamplerIsFormatSupportedForFilter(RenderingDevice.DataFormat format, RenderingDevice.SamplerFilter samplerFilter);

Возвращает true, если реализация поддерживает использование текстуры format с заданным sampler_filter.

Параметры
ИмяТипПо умолчанию
formatRenderingDevice.DataFormat—
samplerFilterRenderingDevice.SamplerFilter—
Возвращает bool
ScreenGetFramebufferFormat2 перегрузки
# ScreenGetFramebufferFormat · 1/2
C#
public long ScreenGetFramebufferFormat();

Возвращает формат буфера кадра заданного экрана. Примечание: Только основной RenderingDevice, возвращаемый RenderingServer.GetRenderingDevice, имеет формат. При вызове на локальном RenderingDevice этот метод выводит ошибку и возвращает RenderingDevice.InvalidId.

Возвращает long
# ScreenGetFramebufferFormat · 2/2
C#
public long ScreenGetFramebufferFormat(int screen = 0);

Возвращает формат буфера кадра заданного экрана. Примечание: Только основной RenderingDevice, возвращаемый RenderingServer.GetRenderingDevice, имеет формат. При вызове на локальном RenderingDevice этот метод выводит ошибку и возвращает RenderingDevice.InvalidId.

Параметры
ИмяТипПо умолчанию
screenint0
Возвращает long
ScreenGetHeightint
# ScreenGetHeight
C#
public int ScreenGetHeight(int screen = 0);

Возвращает высоту окна, соответствующую графическому API-контексту для заданного идентификатора окна (в пикселях). Несмотря на то, что параметр назван screen, он возвращает размер window. См. также RenderingDevice.ScreenGetWidth. Примечание: Только основной RenderingDevice, возвращаемый RenderingServer.GetRenderingDevice, имеет высоту. При вызове на локальном RenderingDevice этот метод выводит ошибку и возвращает RenderingDevice.InvalidId.

Параметры
ИмяТипПо умолчанию
screenint0
Возвращает int
ScreenGetWidthint
# ScreenGetWidth
C#
public int ScreenGetWidth(int screen = 0);

Возвращает ширину окна, соответствующую графическому API-контексту для заданного идентификатора окна (в пикселях). Несмотря на то, что параметр назван screen, он возвращает размер window. См. также RenderingDevice.ScreenGetHeight. Примечание: Только основной RenderingDevice, возвращаемый RenderingServer.GetRenderingDevice, имеет ширину. При вызове на локальном RenderingDevice этот метод выводит ошибку и возвращает RenderingDevice.InvalidId.

Параметры
ИмяТипПо умолчанию
screenint0
Возвращает int
SetResourceNamevoid
# SetResourceName
C#
public void SetResourceName(Rid id, string name);

Устанавливает название ресурса для id в адрес name. Это используется для отладки с помощью таких инструментов третьих сторон, как RenderDoc(https://renderdoc.org/). Можно назвать следующие виды ресурсов: текстура, пробоотборник, буфер вершины, индексный буфер, единообразный буфер, буфер текстуры, буфер для хранения, единообразный набор буфера, затенитель, передатчик и трубопровод вычисления. Невозможно назвать фреймбукеры. Попытка назвать несовместимый тип ресурса будет распечатывать ошибку. Примечание: Resource имени устанавливаются только в том случае, когда двигатель работает в режиме глаголовы ()OS.IsStdOutVerbose = true), или при использовании двигателя, скомбинированного с dev_mode=yes Водитель графики должен также поддерживать VK_EXT_DEBUG_UTILS_EXTENSION_NAME Вулканское продление на поименованные ресурсы.

Параметры
ИмяТипПо умолчанию
idRid—
namestring—
ShaderCompileBinaryFromSpirVbyte[]
# ShaderCompileBinaryFromSpirV
C#
public byte[] ShaderCompileBinaryFromSpirV(RDShaderSpirV spirVData, string name = "");

Компилирует двоичный шейдер из spirv_data и возвращает скомпилированные двоичные данные как byte[]. Этот скомпилированный шейдер специфичен для используемой модели GPU и версии драйвера; он не будет работать на других моделях GPU или даже на других версиях драйверов. См. также RenderingDevice.ShaderCompileSpirVFromSource. name — необязательное понятное человеку имя, которое можно дать скомпилированному шейдеру в организационных целях.

Параметры
ИмяТипПо умолчанию
spirVDataRDShaderSpirV—
namestring""
Возвращает byte[]
ShaderCompileSpirVFromSourceRDShaderSpirV
# ShaderCompileSpirVFromSource
C#
public RDShaderSpirV ShaderCompileSpirVFromSource(RDShaderSource shaderSource, bool allowCache = true);

Компилирует непустые этапы RDShaderSource в SPIR-V. Результат содержит ошибки этапов: проверяйте CompileErrorCompute до создания compute-шейдера. Для SourceCompute передавайте исходный GLSL, не маркер импорта #[compute].

Параметры
ИмяТипПо умолчанию
shaderSourceRDShaderSource—
allowCachebooltrue
shaderSource

Исходники этапов с выбранным языком. SourceCompute принимает raw GLSL.

allowCache

Разрешить использование кэша компиляции. Ошибки результата всё равно нужно проверить.

Возвращает RDShaderSpirV

Объект байткода с отдельными данными и ошибками этапов.

ShaderCreateFromBytecode4 перегрузки
# ShaderCreateFromBytecode · 1/4
C#
public Rid ShaderCreateFromBytecode(byte[] binaryData);

Создает новый экземпляр шейдера из скомпилированного двоичного шейдера. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice. См. также RenderingDevice.ShaderCompileBinaryFromSpirV и RenderingDevice.ShaderCreateFromSpirV.

Параметры
ИмяТипПо умолчанию
binaryDatabyte[]—
Возвращает Rid
# ShaderCreateFromBytecode · 2/4
C#
public Rid ShaderCreateFromBytecode(byte[] binaryData, Rid placeholderRid = default);

Создает новый экземпляр шейдера из скомпилированного двоичного шейдера. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice. См. также RenderingDevice.ShaderCompileBinaryFromSpirV и RenderingDevice.ShaderCreateFromSpirV.

Параметры
ИмяТипПо умолчанию
binaryDatabyte[]—
placeholderRidRiddefault
Возвращает Rid
# ShaderCreateFromBytecode · 3/4
C#
public Rid ShaderCreateFromBytecode(ReadOnlySpan<byte> binaryData);

Создает новый экземпляр шейдера из скомпилированного двоичного шейдера. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice. См. также RenderingDevice.ShaderCompileBinaryFromSpirV и RenderingDevice.ShaderCreateFromSpirV.

Параметры
ИмяТипПо умолчанию
binaryDataReadOnlySpan<byte>—
Возвращает Rid
# ShaderCreateFromBytecode · 4/4
C#
public Rid ShaderCreateFromBytecode(ReadOnlySpan<byte> binaryData, Rid placeholderRid);

Создает новый экземпляр шейдера из скомпилированного двоичного шейдера. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice. См. также RenderingDevice.ShaderCompileBinaryFromSpirV и RenderingDevice.ShaderCreateFromSpirV.

Параметры
ИмяТипПо умолчанию
binaryDataReadOnlySpan<byte>—
placeholderRidRid—
Возвращает Rid
ShaderCreateFromSpirVRid
# ShaderCreateFromSpirV
C#
public Rid ShaderCreateFromSpirV(RDShaderSpirV spirVData, string name = "");

Создаёт RID шейдера этого устройства из SPIR-V без ошибок компиляции. Наличие объекта RDShaderSpirV само по себе не доказывает успех; проверяйте ошибки этапов и возвращённый RID.

Параметры
ИмяТипПо умолчанию
spirVDataRDShaderSpirV—
namestring""
spirVData

Байткод этапов без ошибок компиляции.

name

Необязательное диагностическое имя шейдера.

Возвращает Rid

RID созданного ресурса этого устройства; проверяйте валидность.

ShaderCreatePlaceholderRid
# ShaderCreatePlaceholder
C#
public Rid ShaderCreatePlaceholder();

Создайте RID-заполнитель, выделив RID без его инициализации для использования в RenderingDevice.ShaderCreateFromBytecode. Это позволяет вам создать RID для шейдера и передать его, но отложить компиляцию шейдера на более позднее время.

Возвращает Rid
ShaderGetVertexInputAttributeMaskulong
# ShaderGetVertexInputAttributeMask
C#
public ulong ShaderGetVertexInputAttributeMask(Rid shader);

Возвращает внутреннюю входную маску вершин. Внутри входная маска вершин представляет собой беззнаковое целое число, состоящее из местоположений (указанных в GLSL через layout(location = ...)) входных переменных (указанных в GLSL ключевым словом in).

Параметры
ИмяТипПо умолчанию
shaderRid—
Возвращает ulong
StorageBufferCreate4 перегрузки
# StorageBufferCreate · 1/4
C#
public Rid StorageBufferCreate(uint sizeBytes, byte[] data, RenderingDevice.StorageBufferUsage usage);

Создает буфер хранения с указанными data и usage. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeBytesuint—
databyte[]—
usageRenderingDevice.StorageBufferUsage—
data

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().

Возвращает Rid
# StorageBufferCreate · 2/4
C#
public Rid StorageBufferCreate(uint sizeBytes, byte[] data = null, RenderingDevice.StorageBufferUsage usage = (RenderingDevice.StorageBufferUsage)0, RenderingDevice.BufferCreationBits creationBits = (RenderingDevice.BufferCreationBits)0);

Создаёт storage buffer этого устройства. Непустые начальные данные должны иметь ровно sizeBytes байтов. Проверяйте возвращённый RID и освобождайте его через это же устройство после завершения использования.

Параметры
ИмяТипПо умолчанию
sizeBytesuint—
databyte[]null
usageRenderingDevice.StorageBufferUsage(RenderingDevice.StorageBufferUsage)0
creationBitsRenderingDevice.BufferCreationBits(RenderingDevice.BufferCreationBits)0
sizeBytes

Полный размер буфера в байтах; непустые data должны совпадать по длине.

data

Исходные байты, не массив элементов произвольной ширины.

usage

Флаги использования storage buffer; для обычного примера 0.

creationBits

Дополнительные флаги создания буфера; для обычного примера 0.

Возвращает Rid

RID созданного ресурса этого устройства; проверяйте валидность.

# StorageBufferCreate · 3/4
C#
public Rid StorageBufferCreate(uint sizeBytes, ReadOnlySpan<byte> data, RenderingDevice.StorageBufferUsage usage);

Создает буфер хранения с указанными data и usage. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeBytesuint—
dataReadOnlySpan<byte>—
usageRenderingDevice.StorageBufferUsage—
Возвращает Rid
# StorageBufferCreate · 4/4
C#
public Rid StorageBufferCreate(uint sizeBytes, ReadOnlySpan<byte> data, RenderingDevice.StorageBufferUsage usage, RenderingDevice.BufferCreationBits creationBits);

Создает буфер хранения с указанными data и usage. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeBytesuint—
dataReadOnlySpan<byte>—
usageRenderingDevice.StorageBufferUsage—
creationBitsRenderingDevice.BufferCreationBits—
Возвращает Rid
Submitvoid
# Submit
C#
public void Submit();

Отправляет работу локального RenderingDevice на GPU. Не применяется к глобальному устройству движка; перед следующей отправкой этого локального устройства требуется Sync.

Syncvoid
# Sync
C#
public void Sync();

Ожидает предыдущую отправку Submit локального устройства и завершает её цикл обработки. Блокирует вызывающий поток; не вызывайте до Submit или на глобальном устройстве движка.

TextureBufferCreate2 перегрузки
# TextureBufferCreate · 1/2
C#
public Rid TextureBufferCreate(uint sizeBytes, RenderingDevice.DataFormat format, byte[] data = null);

Создает новый буфер текстуры. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeBytesuint—
formatRenderingDevice.DataFormat—
databyte[]null
data

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().

Возвращает Rid
# TextureBufferCreate · 2/2
C#
public Rid TextureBufferCreate(uint sizeBytes, RenderingDevice.DataFormat format, ReadOnlySpan<byte> data);

Создает новый буфер текстуры. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeBytesuint—
formatRenderingDevice.DataFormat—
dataReadOnlySpan<byte>—
Возвращает Rid
TextureClear2 перегрузки
# TextureClear · 1/2
C#
public Error TextureClear(Rid texture, Color color, uint baseMipmap, uint mipmapCount, uint baseLayer, uint layerCount);

Очищает указанный texture, заменяя все его пиксели указанным color. base_mipmap и mipmap_count определяют, какие mip-карты текстуры затронуты этой операцией очистки, в то время как base_layer и layer_count определяют, какие слои 3D-текстуры (или массива текстур) затронуты этой операцией очистки. Для 2D-текстур (которые имеют только один слой по замыслу), base_layer должен быть 0, а layer_count должен быть 1. Примечание: texture нельзя очистить, пока создается список отрисовки, который использует его как часть буфера кадра. Убедитесь, что список отрисовки финализирован (и что текстура цвета/глубины, использующая его, не установлена на RenderingDevice.FinalAction.Continue), чтобы очистить эту текстуру.

Параметры
ИмяТипПо умолчанию
textureRid—
colorColor—
baseMipmapuint—
mipmapCountuint—
baseLayeruint—
layerCountuint—
Возвращает Error
# TextureClear · 2/2
C#
public Error TextureClear(Rid texture, Color color, uint baseMipmap, uint mipmapCount, uint baseLayer, uint layerCount, RenderingDevice.BarrierMask postBarrier);

Очищает указанный texture, заменяя все его пиксели указанным color. base_mipmap и mipmap_count определяют, какие mip-карты текстуры затронуты этой операцией очистки, в то время как base_layer и layer_count определяют, какие слои 3D-текстуры (или массива текстур) затронуты этой операцией очистки. Для 2D-текстур (которые имеют только один слой по замыслу), base_layer должен быть 0, а layer_count должен быть 1. Примечание: texture нельзя очистить, пока создается список отрисовки, который использует его как часть буфера кадра. Убедитесь, что список отрисовки финализирован (и что текстура цвета/глубины, использующая его, не установлена на RenderingDevice.FinalAction.Continue), чтобы очистить эту текстуру.

Параметры
ИмяТипПо умолчанию
textureRid—
colorColor—
baseMipmapuint—
mipmapCountuint—
baseLayeruint—
layerCountuint—
postBarrierRenderingDevice.BarrierMask—
Возвращает Error
TextureCopy2 перегрузки
# TextureCopy · 1/2
C#
public Error TextureCopy(Rid fromTexture, Rid toTexture, Vector3 fromPos, Vector3 toPos, Vector3 size, uint srcMipmap, uint dstMipmap, uint srcLayer, uint dstLayer);

Копии from_texture в адрес to_texture указанными from_pos, to_pos и size Координаты для двухмерных текстуров: from_pos и to_pos должна иметь ось Z 0, и size должна иметь ось Z 1. Кроме того, должны быть указаны мип-карты источников и мест назначения/слои с указанием этих параметров. 0 для текстуров без микрокарт или однослойных текстуров. Error.Ok если текстурная копия была успешной, или Error.InvalidParameter иначе. Примечание: from_texture Скопировать текстуру невозможно, пока создается список рисунков, в котором он используется как часть рамного буффера. Убедитесь, что список рисунков завершен (и что цвет/глубокая текстура с его использованием не установлен для RenderingDevice.FinalAction.Continue) для копирования этой текстуры. Примечание: from_texture текстура требует RenderingDevice.TextureUsageBits.CanCopyFromBit будет возвращено. Примечание: to_texture не может быть скопирован, пока будет создан список рисунков, использующий его в качестве части рам-бюфера. Убедитесь, что список рисунков завершен (и что цвет/глубокая текстура с использованием этого списка не установлен для RenderingDevice.FinalAction.Continue) для копирования этой текстуры. Примечание: to_texture требует RenderingDevice.TextureUsageBits.CanCopyToBit будет возвращено. Примечание: from_texture и to_texture должен быть одного и того же типа (цвет или глубина).

Параметры
ИмяТипПо умолчанию
fromTextureRid—
toTextureRid—
fromPosVector3—
toPosVector3—
sizeVector3—
srcMipmapuint—
dstMipmapuint—
srcLayeruint—
dstLayeruint—
Возвращает Error
# TextureCopy · 2/2
C#
public Error TextureCopy(Rid fromTexture, Rid toTexture, Vector3 fromPos, Vector3 toPos, Vector3 size, uint srcMipmap, uint dstMipmap, uint srcLayer, uint dstLayer, RenderingDevice.BarrierMask postBarrier);

Копии from_texture в адрес to_texture указанными from_pos, to_pos и size Координаты для двухмерных текстуров: from_pos и to_pos должна иметь ось Z 0, и size должна иметь ось Z 1. Кроме того, должны быть указаны мип-карты источников и мест назначения/слои с указанием этих параметров. 0 для текстуров без микрокарт или однослойных текстуров. Error.Ok если текстурная копия была успешной, или Error.InvalidParameter иначе. Примечание: from_texture Скопировать текстуру невозможно, пока создается список рисунков, в котором он используется как часть рамного буффера. Убедитесь, что список рисунков завершен (и что цвет/глубокая текстура с его использованием не установлен для RenderingDevice.FinalAction.Continue) для копирования этой текстуры. Примечание: from_texture текстура требует RenderingDevice.TextureUsageBits.CanCopyFromBit будет возвращено. Примечание: to_texture не может быть скопирован, пока будет создан список рисунков, использующий его в качестве части рам-бюфера. Убедитесь, что список рисунков завершен (и что цвет/глубокая текстура с использованием этого списка не установлен для RenderingDevice.FinalAction.Continue) для копирования этой текстуры. Примечание: to_texture требует RenderingDevice.TextureUsageBits.CanCopyToBit будет возвращено. Примечание: from_texture и to_texture должен быть одного и того же типа (цвет или глубина).

Параметры
ИмяТипПо умолчанию
fromTextureRid—
toTextureRid—
fromPosVector3—
toPosVector3—
sizeVector3—
srcMipmapuint—
dstMipmapuint—
srcLayeruint—
dstLayeruint—
postBarrierRenderingDevice.BarrierMask—
Возвращает Error
TextureCreateRid
# TextureCreate
C#
public Rid TextureCreate(RDTextureFormat format, RDTextureView view, Reckfell.Collections.Array<byte[]> data = null);

Создаёт новую текстуру. Доступ к ней осуществляется по возвращаемому RID. После завершения работы с RID необходимо освободить RID с помощью метода RenderingDevice.FreeRid объекта RenderingDevice. Примечание: data принимает Reckfell.Collections.Array из byte[]. Для типов RenderingDevice.TextureType.Type1D, RenderingDevice.TextureType.Type2D и RenderingDevice.TextureType.Type3D этот массив должен содержать только один элемент — byte[], содержащий все данные текстуры. Для типов _ARRAY и _CUBE длина должна быть равна количеству RDTextureFormat.ArrayLayers в format. Примечание: Не путать с RenderingServer.Texture2DCreate, который создает специфичный для Reckfell ресурс Texture2D, а не собственный тип текстуры графического API.

Параметры
ИмяТипПо умолчанию
formatRDTextureFormat—
viewRDTextureView—
dataReckfell.Collections.Array<byte[]>null
Возвращает Rid
TextureCreateFromExtension2 перегрузки
# TextureCreateFromExtension · 1/2
C#
public Rid TextureCreateFromExtension(RenderingDevice.TextureType type, RenderingDevice.DataFormat format, RenderingDevice.TextureSamples samples, RenderingDevice.TextureUsageBits usageFlags, ulong image, ulong width, ulong height, ulong depth, ulong layers);

Возвращает RID для существующего image (VkImage) с заданными type, format, samples, usage_flags, width, height, depth, layers и mipmaps. Это можно использовать, чтобы разрешить Reckfell выполнять рендеринг на сторонних изображениях.

Параметры
ИмяТипПо умолчанию
typeRenderingDevice.TextureType—
formatRenderingDevice.DataFormat—
samplesRenderingDevice.TextureSamples—
usageFlagsRenderingDevice.TextureUsageBits—
imageulong—
widthulong—
heightulong—
depthulong—
layersulong—
Возвращает Rid
# TextureCreateFromExtension · 2/2
C#
public Rid TextureCreateFromExtension(RenderingDevice.TextureType type, RenderingDevice.DataFormat format, RenderingDevice.TextureSamples samples, RenderingDevice.TextureUsageBits usageFlags, ulong image, ulong width, ulong height, ulong depth, ulong layers, ulong mipmaps = 1);

Возвращает RID для существующего image (VkImage) с заданными type, format, samples, usage_flags, width, height, depth, layers и mipmaps. Это можно использовать, чтобы разрешить Reckfell выполнять рендеринг на сторонних изображениях.

Параметры
ИмяТипПо умолчанию
typeRenderingDevice.TextureType—
formatRenderingDevice.DataFormat—
samplesRenderingDevice.TextureSamples—
usageFlagsRenderingDevice.TextureUsageBits—
imageulong—
widthulong—
heightulong—
depthulong—
layersulong—
mipmapsulong1
Возвращает Rid
TextureCreateSharedRid
# TextureCreateShared
C#
public Rid TextureCreateShared(RDTextureView view, Rid withTexture);

Создаёт общую текстуру, используя указанный параметр view и информацию о текстуре из параметра with_texture. Этот параметр будет автоматически освобождён при освобождении параметра with_texture.

Параметры
ИмяТипПо умолчанию
viewRDTextureView—
withTextureRid—
Возвращает Rid
TextureCreateSharedFromSlice2 перегрузки
# TextureCreateSharedFromSlice · 1/2
C#
public Rid TextureCreateSharedFromSlice(RDTextureView view, Rid withTexture, uint layer, uint mipmap, uint mipmaps, RenderingDevice.TextureSliceType sliceType);

Создать общую текстуру с помощью указанного view и информацию о текстуре от with_texture's layer и mipmap. Число включенных микрокарт из оригинальной текстуры может контролироваться с помощью mipmaps параметр. layers параметр контролирует количество встроенных слоев из оригинальной текстуры для 2D текстурных массивов и должен быть: 0 для всех других типов текстуры. layers это 0 для двухмерного массива текстуры, layer должны быть также 0В случае однослойных текстуров использовать RenderingDevice.TextureCreateShared. Для 2D текстуров (которые имеют только один слой), layer должно быть 0. Это будет автоматически освобождено, когда with_texture освободился.

Параметры
ИмяТипПо умолчанию
viewRDTextureView—
withTextureRid—
layeruint—
mipmapuint—
mipmapsuint—
sliceTypeRenderingDevice.TextureSliceType—
Возвращает Rid
# TextureCreateSharedFromSlice · 2/2
C#
public Rid TextureCreateSharedFromSlice(RDTextureView view, Rid withTexture, uint layer, uint mipmap, uint mipmaps = 1, RenderingDevice.TextureSliceType sliceType = RenderingDevice.TextureSliceType.Slice2D, uint layers = 0);

Создать общую текстуру с помощью указанного view и информацию о текстуре от with_texture's layer и mipmap. Число включенных микрокарт из оригинальной текстуры может контролироваться с помощью mipmaps параметр. layers параметр контролирует количество встроенных слоев из оригинальной текстуры для 2D текстурных массивов и должен быть: 0 для всех других типов текстуры. layers это 0 для двухмерного массива текстуры, layer должны быть также 0В случае однослойных текстуров использовать RenderingDevice.TextureCreateShared. Для 2D текстуров (которые имеют только один слой), layer должно быть 0. Это будет автоматически освобождено, когда with_texture освободился.

Параметры
ИмяТипПо умолчанию
viewRDTextureView—
withTextureRid—
layeruint—
mipmapuint—
mipmapsuint1
sliceTypeRenderingDevice.TextureSliceTypeRenderingDevice.TextureSliceType.Slice2D
layersuint0
Возвращает Rid
TextureGetDatabyte[]
# TextureGetData
C#
public byte[] TextureGetData(Rid texture, uint layer);

Возвращает данные texture для указанного layer в виде необработанных двоичных данных. Для 2D-текстур (с одним слоем) layer должен быть равен 0. Примечание: texture невозможно получить, пока создаётся список отрисовки, использующий его как часть буфера кадра. Убедитесь, что список отрисовки завершен (и что используемая им текстура цвета/глубины не установлена в RenderingDevice.FinalAction.Continue), чтобы получить эту текстуру. В противном случае выводится ошибка и возвращается пустой byte[]. Примечание: texture требует получения RenderingDevice.TextureUsageBits.CanCopyFromBit. В противном случае выводится ошибка и возвращается пустой byte[]. Примечание: Этот метод блокирует работу графического процессора до тех пор, пока данные не будут получены. Альтернативный метод, возвращающий данные более производительным способом, описан в RenderingDevice.TextureGetDataAsync.

Параметры
ИмяТипПо умолчанию
textureRid—
layeruint—
Возвращает byte[]
TextureGetDataAsyncError
# TextureGetDataAsync
C#
public Error TextureGetDataAsync(Rid texture, uint layer, Callable callback);

Асинхронная версия RenderingDevice.TextureGetData. RenderingDevice вызовет callback в определенном количестве кадров с данными, которые были у текстуры на момент запроса. Примечание: На данный момент задержка соответствует количеству кадров, указанному ProjectSettings.rendering/rendering_device/vsync/frame_queue_size. Примечание: Загрузка больших текстур может иметь непомерно высокую стоимость для реального времени даже при использовании асинхронного метода из-за ограничений пропускной способности оборудования. При работе с большими ресурсами вы можете настроить такие параметры, как ProjectSettings.rendering/rendering_device/staging_buffer/texture_download_region_size_px и ProjectSettings.rendering/rendering_device/staging_buffer/block_size_kb, чтобы улучшить скорость передачи за счет дополнительной памяти.

Параметры
ИмяТипПо умолчанию
textureRid—
layeruint—
callbackCallable—
Возвращает Error
TextureGetFormatRDTextureFormat
# TextureGetFormat
C#
public RDTextureFormat TextureGetFormat(Rid texture);

Возвращает формат данных, использованный для создания этой текстуры.

Параметры
ИмяТипПо умолчанию
textureRid—
Возвращает RDTextureFormat
TextureGetNativeHandleulong · Устарело
# TextureGetNativeHandle
C#
public ulong TextureGetNativeHandle(Rid texture);

Возвращает внутренний графический дескриптор для этого объекта текстуры. Для использования при взаимодействии со сторонними API, в основном с ReckfellExtension. Примечание: Эта функция возвращает uint64_t, который внутренне сопоставляется с GLuint (OpenGL) или VkImage (Вулкан).

Параметры
ИмяТипПо умолчанию
textureRid—
Возвращает ulong
TextureIsDiscardablebool
# TextureIsDiscardable
C#
public bool TextureIsDiscardable(Rid texture);

Возвращает true, если texture можно отбросить, false в противном случае. См. RDTextureFormat или RenderingDevice.TextureSetDiscardable.

Параметры
ИмяТипПо умолчанию
textureRid—
Возвращает bool
TextureIsFormatSupportedForUsagebool
# TextureIsFormatSupportedForUsage
C#
public bool TextureIsFormatSupportedForUsage(RenderingDevice.DataFormat format, RenderingDevice.TextureUsageBits usageFlags);

Возвращает true, если указанный format поддерживается для заданных usage_flags, в противном случае false.

Параметры
ИмяТипПо умолчанию
formatRenderingDevice.DataFormat—
usageFlagsRenderingDevice.TextureUsageBits—
Возвращает bool
TextureIsSharedbool
# TextureIsShared
C#
public bool TextureIsShared(Rid texture);

Возвращает true, если texture является общей, false в противном случае. См. RDTextureView.

Параметры
ИмяТипПо умолчанию
textureRid—
Возвращает bool
TextureIsValidbool
# TextureIsValid
C#
public bool TextureIsValid(Rid texture);

Возвращает true, если texture действителен, в противном случае false.

Параметры
ИмяТипПо умолчанию
textureRid—
Возвращает bool
TextureResolveMultisample2 перегрузки
# TextureResolveMultisample · 1/2
C#
public Error TextureResolveMultisample(Rid fromTexture, Rid toTexture);

Разрешает текстуру from_texture на to_texture с включенным сглаживанием multisample. Это необходимо использовать при рендеринге буфера кадра для работы MSAA. Возвращает Error.Ok в случае успеха, Error.InvalidParameter в противном случае. Примечание: Текстуры from_texture и to_texture должны иметь одинаковый размер, формат и тип (цвет или глубина). Примечание: from_texture нельзя копировать, пока создается список отрисовки, который использует его как часть буфера кадра. Убедитесь, что список отрисовки финализирован (и что текстура цвета/глубины, использующая его, не установлена на RenderingDevice.FinalAction.Continue), чтобы разрешить эту текстуру. Примечание: from_texture требует получения RenderingDevice.TextureUsageBits.CanCopyFromBit. Примечание: from_texture должен быть мультисэмплированным и также должен быть 2D (или частью 3D/cubemap текстуры). Примечание: to_texture нельзя копировать, пока создается список отрисовки, который использует его как часть буфера кадра. Убедитесь, что список отрисовки финализирован (и что текстура цвета/глубины, использующая его, не установлена на RenderingDevice.FinalAction.Continue), чтобы разрешить эту текстуру. Примечание: Текстура to_texture требует получения RenderingDevice.TextureUsageBits.CanCopyToBit. Примечание: Текстура to_texture не должна **** быть мультисэмплированной и должна быть 2D (или фрагментом 3D/кубической текстуры).

Параметры
ИмяТипПо умолчанию
fromTextureRid—
toTextureRid—
Возвращает Error
# TextureResolveMultisample · 2/2
C#
public Error TextureResolveMultisample(Rid fromTexture, Rid toTexture, RenderingDevice.BarrierMask postBarrier);

Разрешает текстуру from_texture на to_texture с включенным сглаживанием multisample. Это необходимо использовать при рендеринге буфера кадра для работы MSAA. Возвращает Error.Ok в случае успеха, Error.InvalidParameter в противном случае. Примечание: Текстуры from_texture и to_texture должны иметь одинаковый размер, формат и тип (цвет или глубина). Примечание: from_texture нельзя копировать, пока создается список отрисовки, который использует его как часть буфера кадра. Убедитесь, что список отрисовки финализирован (и что текстура цвета/глубины, использующая его, не установлена на RenderingDevice.FinalAction.Continue), чтобы разрешить эту текстуру. Примечание: from_texture требует получения RenderingDevice.TextureUsageBits.CanCopyFromBit. Примечание: from_texture должен быть мультисэмплированным и также должен быть 2D (или частью 3D/cubemap текстуры). Примечание: to_texture нельзя копировать, пока создается список отрисовки, который использует его как часть буфера кадра. Убедитесь, что список отрисовки финализирован (и что текстура цвета/глубины, использующая его, не установлена на RenderingDevice.FinalAction.Continue), чтобы разрешить эту текстуру. Примечание: Текстура to_texture требует получения RenderingDevice.TextureUsageBits.CanCopyToBit. Примечание: Текстура to_texture не должна **** быть мультисэмплированной и должна быть 2D (или фрагментом 3D/кубической текстуры).

Параметры
ИмяТипПо умолчанию
fromTextureRid—
toTextureRid—
postBarrierRenderingDevice.BarrierMask—
Возвращает Error
TextureSetDiscardablevoid
# TextureSetDiscardable
C#
public void TextureSetDiscardable(Rid texture, bool discardable);

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

Параметры
ИмяТипПо умолчанию
textureRid—
discardablebool—
TextureUpdate4 перегрузки
# TextureUpdate · 1/4
C#
public Error TextureUpdate(Rid texture, uint layer, byte[] data);

Обновляет данные текстуры новыми данными, заменяя предыдущие данные на месте. Обновленные данные текстуры должны иметь те же размеры и формат. Для 2D-текстур (которые имеют только один слой) layer должен быть 0. Возвращает Error.Ok, если обновление прошло успешно, Error.InvalidParameter в противном случае. Примечание: Обновление текстур запрещено во время создания списка отрисовки или вычисления. Примечание: Существующая texture не может быть обновлена, пока создается список отрисовки, который использует ее как часть буфера кадра. Убедитесь, что список отрисовки финализирован (и что текстура цвета/глубины, использующая его, не установлена на RenderingDevice.FinalAction.Continue), чтобы обновить эту текстуру. Примечание: Для существующей texture требуется, чтобы RenderingDevice.TextureUsageBits.CanUpdateBit была обновляемой.

Параметры
ИмяТипПо умолчанию
textureRid—
layeruint—
databyte[]—
Возвращает Error
# TextureUpdate · 2/4
C#
public Error TextureUpdate(Rid texture, uint layer, byte[] data, RenderingDevice.BarrierMask postBarrier);

Обновляет данные текстуры новыми данными, заменяя предыдущие данные на месте. Обновленные данные текстуры должны иметь те же размеры и формат. Для 2D-текстур (которые имеют только один слой) layer должен быть 0. Возвращает Error.Ok, если обновление прошло успешно, Error.InvalidParameter в противном случае. Примечание: Обновление текстур запрещено во время создания списка отрисовки или вычисления. Примечание: Существующая texture не может быть обновлена, пока создается список отрисовки, который использует ее как часть буфера кадра. Убедитесь, что список отрисовки финализирован (и что текстура цвета/глубины, использующая его, не установлена на RenderingDevice.FinalAction.Continue), чтобы обновить эту текстуру. Примечание: Для существующей texture требуется, чтобы RenderingDevice.TextureUsageBits.CanUpdateBit была обновляемой.

Параметры
ИмяТипПо умолчанию
textureRid—
layeruint—
databyte[]—
postBarrierRenderingDevice.BarrierMask—
Возвращает Error
# TextureUpdate · 3/4
C#
public Error TextureUpdate(Rid texture, uint layer, ReadOnlySpan<byte> data);

Обновляет данные текстуры новыми данными, заменяя предыдущие данные на месте. Обновленные данные текстуры должны иметь те же размеры и формат. Для 2D-текстур (которые имеют только один слой) layer должен быть 0. Возвращает Error.Ok, если обновление прошло успешно, Error.InvalidParameter в противном случае. Примечание: Обновление текстур запрещено во время создания списка отрисовки или вычисления. Примечание: Существующая texture не может быть обновлена, пока создается список отрисовки, который использует ее как часть буфера кадра. Убедитесь, что список отрисовки финализирован (и что текстура цвета/глубины, использующая его, не установлена на RenderingDevice.FinalAction.Continue), чтобы обновить эту текстуру. Примечание: Для существующей texture требуется, чтобы RenderingDevice.TextureUsageBits.CanUpdateBit была обновляемой.

Параметры
ИмяТипПо умолчанию
textureRid—
layeruint—
dataReadOnlySpan<byte>—
Возвращает Error
# TextureUpdate · 4/4
C#
public Error TextureUpdate(Rid texture, uint layer, ReadOnlySpan<byte> data, RenderingDevice.BarrierMask postBarrier);

Обновляет данные текстуры новыми данными, заменяя предыдущие данные на месте. Обновленные данные текстуры должны иметь те же размеры и формат. Для 2D-текстур (которые имеют только один слой) layer должен быть 0. Возвращает Error.Ok, если обновление прошло успешно, Error.InvalidParameter в противном случае. Примечание: Обновление текстур запрещено во время создания списка отрисовки или вычисления. Примечание: Существующая texture не может быть обновлена, пока создается список отрисовки, который использует ее как часть буфера кадра. Убедитесь, что список отрисовки финализирован (и что текстура цвета/глубины, использующая его, не установлена на RenderingDevice.FinalAction.Continue), чтобы обновить эту текстуру. Примечание: Для существующей texture требуется, чтобы RenderingDevice.TextureUsageBits.CanUpdateBit была обновляемой.

Параметры
ИмяТипПо умолчанию
textureRid—
layeruint—
dataReadOnlySpan<byte>—
postBarrierRenderingDevice.BarrierMask—
Возвращает Error
TlasBuildError
# TlasBuild
C#
public Error TlasBuild(Rid tlas, Reckfell.Collections.Array<RDAccelerationStructureInstance> instances);

Строит tlas. Содержимое предыдущих построений отбрасывается. Любая BLAS, предоставленная через член RDAccelerationStructureInstance.Blas, должна быть уже построена с помощью метода RenderingDevice.BlasBuild. Количество экземпляров может быть равно или меньше максимального количества экземпляров, указанного в методе RenderingDevice.TlasCreate. Примечание: Освобождение или перестроение любой из предоставленных BLAS после этого метода делает TLAS недействительным и требует его перестроения.

Параметры
ИмяТипПо умолчанию
tlasRid—
instancesReckfell.Collections.Array<RDAccelerationStructureInstance>—
Возвращает Error
TlasCreateRid
# TlasCreate
C#
public Rid TlasCreate(uint maxInstanceCount, RenderingDevice.AccelerationStructureFlagBits flags);

Создаёт новую структуру ускорения верхнего уровня (TLAS). RID ..вернёмся. Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод.

Параметры
ИмяТипПо умолчанию
maxInstanceCountuint—
flagsRenderingDevice.AccelerationStructureFlagBits—
Возвращает Rid
UniformBufferCreate4 перегрузки
# UniformBufferCreate · 1/4
C#
public Rid UniformBufferCreate(uint sizeBytes, byte[] data);

Создает новый унифицированный буфер. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeBytesuint—
databyte[]—
data

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().

Возвращает Rid
# UniformBufferCreate · 2/4
C#
public Rid UniformBufferCreate(uint sizeBytes, byte[] data = null, RenderingDevice.BufferCreationBits creationBits = (RenderingDevice.BufferCreationBits)0);

Создает новый унифицированный буфер. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeBytesuint—
databyte[]null
creationBitsRenderingDevice.BufferCreationBits(RenderingDevice.BufferCreationBits)0
data

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().

Возвращает Rid
# UniformBufferCreate · 3/4
C#
public Rid UniformBufferCreate(uint sizeBytes, ReadOnlySpan<byte> data);

Создает новый унифицированный буфер. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeBytesuint—
dataReadOnlySpan<byte>—
Возвращает Rid
# UniformBufferCreate · 4/4
C#
public Rid UniformBufferCreate(uint sizeBytes, ReadOnlySpan<byte> data, RenderingDevice.BufferCreationBits creationBits);

Создает новый унифицированный буфер. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeBytesuint—
dataReadOnlySpan<byte>—
creationBitsRenderingDevice.BufferCreationBits—
Возвращает Rid
UniformSetCreateRid
# UniformSetCreate
C#
public Rid UniformSetCreate(Reckfell.Collections.Array<RDUniform> uniforms, Rid shader, uint shaderSet);

Создаёт набор ресурсов для указанного set шейдера. RDUniform.Binding, вид ресурса и все необходимые привязки должны соответствовать layout шейдера; RID ресурсов принадлежат тому же устройству.

Параметры
ИмяТипПо умолчанию
uniformsReckfell.Collections.Array<RDUniform>—
shaderRid—
shaderSetuint—
uniforms

Описания всех необходимых привязок выбранного set.

shader

RID шейдера того же устройства с соответствующим layout.

shaderSet

Номер GLSL set, объявленного шейдером; не номер binding.

Возвращает Rid

RID созданного ресурса этого устройства; проверяйте валидность.

UniformSetIsValidbool
# UniformSetIsValid
C#
public bool UniformSetIsValid(Rid uniformSet);

Проверяет, является ли uniform_set допустимым, т.е. принадлежит ли он кому-либо.

Параметры
ИмяТипПо умолчанию
uniformSetRid—
Возвращает bool
VertexArrayCreate2 перегрузки
# VertexArrayCreate · 1/2
C#
public Rid VertexArrayCreate(uint vertexCount, long vertexFormat, Reckfell.Collections.Array<Rid> srcBuffers, long[] offsets = null);

Создаёт массив вершины на основе определенных буферов. offsets Для каждого буфера может быть определено (в байтах). Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод. Это будет автоматически освобождено, когда любой из src_buffers освободился.

Параметры
ИмяТипПо умолчанию
vertexCountuint—
vertexFormatlong—
srcBuffersReckfell.Collections.Array<Rid>—
offsetslong[]null
offsets

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<long>().

Возвращает Rid
# VertexArrayCreate · 2/2
C#
public Rid VertexArrayCreate(uint vertexCount, long vertexFormat, Reckfell.Collections.Array<Rid> srcBuffers, ReadOnlySpan<long> offsets);

Создаёт массив вершины на основе определенных буферов. offsets Для каждого буфера может быть определено (в байтах). Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод. Это будет автоматически освобождено, когда любой из src_buffers освободился.

Параметры
ИмяТипПо умолчанию
vertexCountuint—
vertexFormatlong—
srcBuffersReckfell.Collections.Array<Rid>—
offsetsReadOnlySpan<long>—
Возвращает Rid
VertexBufferCreate4 перегрузки
# VertexBufferCreate · 1/4
C#
public Rid VertexBufferCreate(uint sizeBytes, byte[] data = null, RenderingDevice.BufferCreationBits creationBits = (RenderingDevice.BufferCreationBits)0);

Создает новый буфер вершин. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeBytesuint—
databyte[]null
creationBitsRenderingDevice.BufferCreationBits(RenderingDevice.BufferCreationBits)0
data

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().

Возвращает Rid
# VertexBufferCreate · 2/4
C#
public Rid VertexBufferCreate(uint sizeBytes, byte[] data, bool useAsStorage);

Создает новый буфер вершин. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeBytesuint—
databyte[]—
useAsStoragebool—
data

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().

Возвращает Rid
# VertexBufferCreate · 3/4
C#
public Rid VertexBufferCreate(uint sizeBytes, ReadOnlySpan<byte> data, RenderingDevice.BufferCreationBits creationBits);

Создает новый буфер вершин. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeBytesuint—
dataReadOnlySpan<byte>—
creationBitsRenderingDevice.BufferCreationBits—
Возвращает Rid
# VertexBufferCreate · 4/4
C#
public Rid VertexBufferCreate(uint sizeBytes, ReadOnlySpan<byte> data, bool useAsStorage);

Создает новый буфер вершин. К нему можно получить доступ с помощью возвращаемого RID. После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.

Параметры
ИмяТипПо умолчанию
sizeBytesuint—
dataReadOnlySpan<byte>—
useAsStoragebool—
Возвращает Rid
VertexFormatCreatelong
# VertexFormatCreate
C#
public long VertexFormatCreate(Reckfell.Collections.Array<RDVertexAttribute> vertexDescriptions);

Создает новый формат вершины с указанным vertex_descriptions. Возвращает уникальный идентификатор формата вершины, соответствующий вновь созданному формату вершины.

Параметры
ИмяТипПо умолчанию
vertexDescriptionsReckfell.Collections.Array<RDVertexAttribute>—
Возвращает long

Поля и константы2

InvalidFormatIdПоле
# InvalidFormatId
C#
public const long InvalidFormatId = -1;

Возвращается функциями, которые возвращают идентификатор формата, если значение недопустимо.

Нет

InvalidIdПоле
# InvalidId
C#
public const long InvalidId = -1;

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

RenderingDevice.AccelerationStructureFlagBits

ЗначениеОписание
AllowCompactionBit = 2

Позволяет уплотнить структуру ускорения для уменьшения использования памяти после ее создания.

AllowUpdateBit = 1

Позволяет обновлять структуру, чтобы она обновлялась после ее создания.

LowMemoryBit = 16

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

PreferFastBuildBit = 8

При построении структуры ускорения приоритет отдается производительности сборки, а не производительности обхода лучей.

PreferFastTraceBit = 4

При построении структуры ускорения приоритет отдается производительности обхода лучей, а не производительности построения.

RenderingDevice.AccelerationStructureGeometryFlagBits

ЗначениеОписание
NoDuplicateAnyHitInvocationBit = 2

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

OpaqueBit = 1

Непрозрачная геометрия не вызывает шейдеры, отвечающие за срабатывание.

RenderingDevice.AccelerationStructureInstanceFlagBits

ЗначениеОписание
ForceNoOpaqueBit = 8

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

ForceOpaqueBit = 4

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

TriangleFacingCullDisableBit = 1

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

TriangleFlipFacingBit = 2

В данном случае при обходе луча изменяет направление треугольника на противоположное.

RenderingDevice.BarrierMask

ЗначениеОписание
AllBarriers = 32767

Барьерная маска для всех типов (вершинная, фрагментная, вычислительная, трансферная).

Compute = 2

Вычислить барьерную маску.

Fragment = 8

Маска барьера фрагментного шейдера.

NoBarrier = 32768

Никаких барьеров для любого типа.

Raster = 9

Маска растрового барьера (вершина и фрагмент). Эквивалентно BARRIER_MASK_VERTEX | BARRIER_MASK_FRAGMENT.

БАРРИЕР БАРРИЕРЫ

Transfer = 4

Перенос барьерной маски.

Vertex = 1

Барьерная маска вершинного шейдера.

RenderingDevice.BlendFactor

ЗначениеОписание
ConstantAlpha = 12

Color и коэффициент альфа-смеси blend constant alpha (см. RenderingDevice.DrawListSetBlendConstants).

ConstantColor = 10

Color коэффициент смешанности: blend constant color. Коэффициент альфа-смеси blend constant alpha (см. RenderingDevice.DrawListSetBlendConstants).

DstAlpha = 8

Color и коэффициент альфа-смеси destination alpha.

DstColor = 4

Color коэффициент смешанности: destination color. Коэффициент альфа-смеси destination alpha.

Max = 19

Представляет размер перечисления RenderingDevice.BlendFactor.

One = 1

Постоянный коэффициент смешивания 1.0.

OneMinusConstantAlpha = 13

Color и коэффициент альфа-смеси 1.0 - blend constant alpha (см. RenderingDevice.DrawListSetBlendConstants).

OneMinusConstantColor = 11

Color коэффициент смешанности: 1.0 - blend constant color. Коэффициент альфа-смеси 1.0 - blend constant alpha (см. RenderingDevice.DrawListSetBlendConstants).

OneMinusDstAlpha = 9

Color и коэффициент альфа-смеси 1.0 - destination alpha.

OneMinusDstColor = 5

Color коэффициент смешанности: 1.0 - destination color. Коэффициент альфа-смеси 1.0 - destination alpha.

OneMinusSrc1Alpha = 18

Color и коэффициент альфа-смеси 1.0 - second source alpha. Только применительно к смешиванию из двух источников.

OneMinusSrc1Color = 16

Color коэффициент смешанности: 1.0 - second source color. Коэффициент альфа-смеси 1.0 - second source alpha. Только применительно к смешиванию из двух источников.

OneMinusSrcAlpha = 7

Color и коэффициент альфа-смеси 1.0 - source alpha.

OneMinusSrcColor = 3

Color коэффициент смешанности: 1.0 - source color. Коэффициент альфа-смеси 1.0 - source alpha.

Src1Alpha = 17

Color и коэффициент альфа-смеси second source alpha. Только применительно к смешиванию из двух источников.

Src1Color = 15

Color коэффициент смешанности: second source color. Коэффициент альфа-смеси second source alpha. Только применительно к смешиванию из двух источников.

SrcAlpha = 6

Color и коэффициент альфа-смеси source alpha.

SrcAlphaSaturate = 14

Color коэффициент смешанности: min(source alpha, 1.0 - destination alpha). Коэффициент альфа-смеси 1.0.

SrcColor = 2

Color коэффициент смешанности: source color. Коэффициент альфа-смеси source alpha.

Zero = 0

Константа 0.0 коэффициент смешанности.

RenderingDevice.BlendOperation

ЗначениеОписание
Add = 0

Операция аддитивного смешивания (source + destination).

Max = 5

Представляет размер перечисления RenderingDevice.BlendOperation.

Maximum = 4

Максимальное смешивание (сохранить наибольшее значение из двух).

Minimum = 3

Минимальная операция смешивания (сохранить наименьшее значение из двух).

ReverseSubtract = 2

Операция обратного вычитающего смешивания(destination - source).

Subtract = 1

Операция субтрактивного смешивания (source - destination).

RenderingDevice.BreadcrumbMarker

ЗначениеОписание
AlphaPass = 458752

Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать "ALPHA_PASS" для добавленного контекста в отношении того, когда произошел сбой.

BlitPass = 655360

Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать "BLIT_PASS" для добавленного контекста в отношении того, когда произошел сбой.

DebugPass = 786432

Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать "DEBUG_PASS" для добавленного контекста в отношении того, когда произошел сбой.

LightmapperPass = 196608

Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать "LIGHTMAPPER_PASS" для добавленного контекста в отношении того, когда произошел сбой.

None = 0

Маркер хлебной крошки (breadcrumb) не будет добавлен.

OpaquePass = 393216

Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать "OPAQUE_PASS" для добавленного контекста в отношении того, когда произошел сбой.

PostProcessingPass = 589824

Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать "POST_PROCESSING_PASS" для добавленного контекста в отношении того, когда произошел сбой.

ReflectionProbes = 65536

Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать "REFLECTION_PROBES" для добавленного контекста в отношении того, когда произошел сбой.

ShadowPassCube = 327680

Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать "SHADOW_PASS_CUBE" для добавленного контекста в отношении того, когда произошел сбой.

ShadowPassDirectional = 262144

Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать "SHADOW_PASS_DIRECTIONAL" для добавленного контекста в отношении того, когда произошел сбой.

SkyPass = 131072

Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать "SKY_PASS" для добавленного контекста в отношении того, когда произошел сбой.

TransparentPass = 524288

Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать "TRANSPARENT_PASS" для добавленного контекста в отношении того, когда произошел сбой.

UiPass = 720896

Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать "UI_PASS" для добавленного контекста в отношении того, когда произошел сбой.

RenderingDevice.BufferCreationBits

ЗначениеОписание
AccelerationStructureBuildInputReadOnlyBit = 8

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

AsStorageBit = 2

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

DeviceAddressBit = 1

При желании установите этот флаг, если хотите использовать функционал RenderingDevice.BufferGetDeviceAddress. Сначала необходимо проверить, поддерживает ли его графический процессор:

RenderingDevice.CompareOperator

ЗначениеОписание
Always = 7

Сравнение «Всегда» (противоположно RenderingDevice.CompareOperator.Never).

Equal = 2

"Равноценное" сравнение.

Greater = 4

Сравнение "больше, чем".

GreaterOrEqual = 6

Сравнение «больше или равно».

Less = 1

Сравнение "меньше, чем".

LessOrEqual = 3

Сравнение "меньше или равно".

Max = 8

Представляет размер перечисления RenderingDevice.CompareOperator.

Never = 0

Сравнение «Никогда» (противоположно RenderingDevice.CompareOperator.Always).

NotEqual = 5

Сравнение "Не равно".

RenderingDevice.DataFormat

ЗначениеОписание
A1R5G5B5UnormPack16 = 7

Формат данных канала альфа/красный/зеленый/синий с 1 битом альфа, 5 битами красного, 6 битами зеленого и 5 битами синего, упакованными в 16 бит. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_R8_UNORM

A2B10G10R10SintPack32 = 68

Формат данных канала альфа/синий/зеленый/красный со знаком в виде целого числа с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит синего, 10 бит зеленого и 10 бит красного. Значения находятся в диапазоне [-511, 511] для синего/зеленого/красного и [-1, 1] для альфа.

A2B10G10R10SnormPack32 = 64

Формат данных альфа/синего/зеленого/красного канала со знаком и плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит синего, 10 бит зеленого и 10 бит красного. Значения находятся в диапазоне [-1.0, 1.0].

  • ДАННЫЕ_ФОРМАТ_A2B10G10R10_USCALED_PACK32
A2B10G10R10SscaledPack32 = 66

Формат данных канала альфа/синий/зеленый/красный со знаком и плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит синего, 10 бит зеленого и 10 бит красного. Значения находятся в диапазоне [-511.0, 511.0] для синего/зеленого/красного и [-1.0, 1.0] для альфа.

*ДАННЫЕ_ФОРМАТ_A2B10G10R10_UINT_PACK32

A2B10G10R10UintPack32 = 67

Формат данных канала альфа/синий/зеленый/красный без знака с нормализованным значением, упакованный в 32 бита. Формат содержит 2 бита альфа, 10 бит синего, 10 бит зеленого и 10 бит красного. Значения находятся в диапазоне [0, 1023] для синего/зеленого/красного и [0, 3] для альфа.

ДАННЫЕ_ФОРМАТ_A2B10G10R10_SINT_PACK32

A2B10G10R10UnormPack32 = 63

Формат данных канала альфа/синий/зеленый/красный без знака с плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит синего, 10 бит зеленого и 10 бит красного. Значения находятся в диапазоне [0.0, 1.0].

A2B10G10R10UscaledPack32 = 65

Формат данных канала альфа/синий/зеленый/красный без знака с плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит синего, 10 бит зеленого и 10 бит красного. Значения находятся в диапазоне [0.0, 1023.0] для синего/зеленого/красного и [0.0, 3.0] для альфа.

A2R10G10B10SintPack32 = 62

Формат данных канала альфа/красный/зеленый/синий со знаком в виде целого числа с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит красного, 10 бит зеленого и 10 бит синего. Значения находятся в диапазоне [-511, 511] для красного/зеленого/синего и [-1, 1] для альфа.

  • ДАННЫЕ_ФОРМАТ_A2B10G10R10_UNORM_PACK32
A2R10G10B10SnormPack32 = 58

Формат данных канала альфа/красный/зеленый/синий со знаком и плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит красного, 10 бит зеленого и 10 бит синего. Значения находятся в диапазоне [-1.0, 1.0].

*ДАННЫЕ_ФОРМАТ_A2R10G10B10_USCALED_PACK32

A2R10G10B10SscaledPack32 = 60

Формат данных канала альфа/красный/зеленый/синий со знаком и плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит красного, 10 бит зеленого и 10 бит синего. Значения находятся в диапазоне [-511.0, 511.0] для красного/зеленого/синего и [-1.0, 1.0] для альфа.

ДАННЫЕ_ФОРМАТ_A2R10G10B10_UINT_PACK32

A2R10G10B10UintPack32 = 61

Формат данных канала альфа/красный/зеленый/синий без знака с нормализованным значением, упакованный в 32 бита. Формат содержит 2 бита альфа, 10 бит красного, 10 бит зеленого и 10 бит синего. Значения находятся в диапазоне [0, 1023] для красного/зеленого/синего и [0, 3] для альфа.

ДАННЫЕ_ФОРМАТ_A2R10G10B10_SINT_PACK32

A2R10G10B10UnormPack32 = 57

Формат данных канала альфа/красный/зеленый/синий без знака с плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит красного, 10 бит зеленого и 10 бит синего. Значения находятся в диапазоне [0.0, 1.0].

A2R10G10B10UscaledPack32 = 59

Формат данных канала альфа/красный/зеленый/синий без знака с плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит красного, 10 бит зеленого и 10 бит синего. Значения находятся в диапазоне [0.0, 1023.0] для красного/зеленого/синего и [0.0, 3.0] для альфа.

ДАННЫЕ_ФОРМАТ_A2R10G10B10_ШКАЛИРОВАННЫЙ_PACK32

A8B8G8R8SintPack32 = 55

Формат данных 8-битного на канал знакового целого числа альфа/красного/зеленого/синего каналов, упакованный в 32 бита. Значения находятся в диапазоне [-127, 127].

  • ДАННЫЕ_ФОРМАТ_A8B8G8R8_SRGB_PACK32
A8B8G8R8SnormPack32 = 51

Формат данных альфа/красного/зеленого/синего каналов с плавающей точкой и 8 битами на канал с нормализованным значением, упакованным в 32 бита. Значения находятся в диапазоне [-1.0, 1.0].

ДАННЫЕ_ФОРМАТ_A8B8G8R8_USCALED_PACK32

A8B8G8R8SrgbPack32 = 56

8-битный формат данных для каждого канала в формате беззнаковых чисел с плавающей запятой (альфа/красный/зеленый/синий), с нормализованным значением и нелинейным кодированием sRGB, упакованный в 32 бита. Значения находятся в диапазоне [0.0, 1.0].

  • ДАННЫЕ_ФОРМАТ_A2R10G10B10_UNORM_PACK32
A8B8G8R8SscaledPack32 = 53

8-бит-канал, подписанный в плавающей точке альфа/красный/зеленый/синий канал с масштабируемым значением (значение преобразуется из целого в floatЗначения в 32 битах. [-127.0, 127.0] Диапазон.

ДАННЫЕ_ФОРМАТ_A8B8G8R8_UINT_PACK32

A8B8G8R8UintPack32 = 54

Формат данных канала альфа/красный/зеленый/синий без знака, 8 бит на канал, упакованный в 32 бита. Значения находятся в диапазоне [0, 255].

ДАННЫЕ_ФОРМАТ_A8B8G8R8_SINT_PACK32

A8B8G8R8UnormPack32 = 50

Формат данных альфа/красного/зеленого/синего каналов с плавающей точкой и беззнаковым 8-битным каналом с нормализованным значением, упакованным в 32 бита. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_A8B8G8R8_SNORM_PACK32

A8B8G8R8UscaledPack32 = 52

Неподписанный формат данных по альфа/красным/зеленым/голубым каналам с масштабируемой величиной (значение преобразуется из целого в floatЗначения в 32 битах. [0.0, 255.0] Диапазон.

ДАННЫЕ_ФОРМАТ_A8B8G8R8_ШКАЛИРОВАННЫЙ_PACK32

Astc10X10SfloatBlock = 229
Astc10X10SrgbBlock = 179

Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 10×10. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc10X10UnormBlock = 178

Сжатый VRAM беззнаковый формат данных с плавающей точкой с нормализованным значением, упакованный в блоки 10×10. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc10X5SfloatBlock = 226
Astc10X5SrgbBlock = 173

Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 10×5. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc10X5UnormBlock = 172

Формат данных с плавающей точкой без знака, сжатый VRAM, с нормализованным значением, упакованный в блоки 10×5. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc10X6SfloatBlock = 227
Astc10X6SrgbBlock = 175

Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 10×6. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc10X6UnormBlock = 174

Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в блоки 10×6. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc10X8SfloatBlock = 228
Astc10X8SrgbBlock = 177

Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 10×8. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc10X8UnormBlock = 176

Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в блоки 10×8. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc12X10SfloatBlock = 230
Astc12X10SrgbBlock = 181

Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 12×10. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc12X10UnormBlock = 180

Формат данных с плавающей точкой без знака, сжатый VRAM, с нормализованным значением, упакованный в блоки 12×10. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc12X12SfloatBlock = 231
Astc12X12SrgbBlock = 183

Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в 12 блоков (наименьшее качество). Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc12X12UnormBlock = 182

Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в 12 блоков (самое низкое качество). Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc4X4SfloatBlock = 218
Astc4X4SrgbBlock = 157

Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 4×4 (наивысшее качество). Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc4X4UnormBlock = 156

Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в блоки 4×4 (наивысшее качество). Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc5X4SfloatBlock = 219
Astc5X4SrgbBlock = 159

Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 5×4. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc5X4UnormBlock = 158

Формат данных с плавающей точкой без знака, сжатый VRAM, с нормализованным значением, упакованный в блоки 5×4. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc5X5SfloatBlock = 220
Astc5X5SrgbBlock = 161

Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 5×5. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc5X5UnormBlock = 160

Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в блоки 5×5. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc6X5SfloatBlock = 221
Astc6X5SrgbBlock = 163

Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 6×5. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc6X5UnormBlock = 162

Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в блоки 6×5. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc6X6SfloatBlock = 222
Astc6X6SrgbBlock = 165

Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 6×6. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc6X6UnormBlock = 164

Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в блоки 6×6. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc8X5SfloatBlock = 223
Astc8X5SrgbBlock = 167

Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 8×5. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc8X5UnormBlock = 166

Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в блоки 8×5. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc8X6SfloatBlock = 224
Astc8X6SrgbBlock = 169

Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 8×6. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc8X6UnormBlock = 168

Формат данных с плавающей точкой без знака, сжатый VRAM, с нормализованным значением, упакованный в блоки 8×6. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc8X8SfloatBlock = 225
Astc8X8SrgbBlock = 171

Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 8×8. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

Astc8X8UnormBlock = 170

Формат данных с плавающей точкой без знака, сжатый VRAM, с нормализованным значением, упакованный в блоки 8×8. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие ASTC.

B10G11R11UfloatPack32 = 121

Формат данных без знака с плавающей точкой blue/green/red, значение которого хранится как есть, упаковано в 32 бита. Точность формата составляет 10 бит синего канала, 11 бит зеленого канала и 11 бит красного канала.

B10X6G10X6R10X6G10X6422Unorm4Pack16 = 195

10-битные на канал беззнаковые данные с плавающей точкой синего/зеленого/красного/зеленого каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованные в 4×16 бит. Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала). Зеленый канал указан дважды, но содержит разные значения, что позволяет представить его в полном разрешении.

B12X4G12X4R12X4G12X4422Unorm4Pack16 = 205

12-битные на канал беззнаковые данные с плавающей точкой синего/зеленого/красного/зеленого каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованные в 4×16 бит. Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала). Зеленый канал указан дважды, но содержит разные значения, что позволяет представить его в полном разрешении.

B16G16R16G16422Unorm = 212

Формат данных синего/зеленого/красного каналов без знака с плавающей точкой 16 бит на канал с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала).

B4G4R4A4UnormPack16 = 2

Формат данных 4-битного канала синего/зеленого/красного/альфа-канала, упакованный в 16 бит. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_R5G6B5_UNORM_PACK16

B5G5R5A1UnormPack16 = 6

Формат данных канала синий/зеленый/красный/альфа с 5 битами синего, 6 битами зеленого, 5 битами красного и 1 битом альфа, упакованными в 16 бит. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_A1R5G5B5_UNORM_PACK16

B5G6R5UnormPack16 = 4

Формат данных канала синий/зеленый/красный с 5 битами синего, 6 битами зеленого и 5 битами красного, упакованными в 16 бит. Значения находятся в диапазоне [0.0, 1.0].

B8G8R8A8Sint = 48

Формат данных 8-битного на канал знакового целого числа синего/зеленого/красного/альфа-канала. Значения находятся в диапазоне [-127, 127].

ДАНЫ_ФОРМАТ_B8G8R8A8_SRGB

B8G8R8A8Snorm = 44

Формат данных канала синего/зеленого/красного/альфа со знаком 8 бит на канал и плавающей точкой с нормализованным значением. Значения находятся в диапазоне [-1.0, 1.0].

ДАННЫЕ_ФОРМАТ_B8G8R8A8_USCALED

B8G8R8A8Srgb = 49

8-битный формат данных с плавающей запятой без знака для каждого канала: синий/зеленый/красный/альфа-канал, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне [0.0, 1.0].

  • ДАННЫЕ_ФОРМАТ_A8B8G8R8_UNORM_PACK32
B8G8R8A8Sscaled = 46

Формат данных с голубой/зеленой/красной/альфа-канала с масштабной величиной (значение преобразуется из целого в float) Значения: [-127.0, 127.0] Диапазон.

ДАННЫЕ_ФОРМАТ_B8G8R8A8_UINT

B8G8R8A8Uint = 47

Формат данных 8-битного на канал беззнакового целого числа синего/зеленого/красного/альфа-канала. Значения находятся в диапазоне [0, 255].

ДАННЫЕ_ФОРМАТ_B8G8R8A8_SINT

B8G8R8A8Unorm = 43

Формат данных 8-битного канала без знака с плавающей точкой синего/зеленого/красного/альфа с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0].

B8G8R8A8Uscaled = 45

Формат данных канала 8-битная на канал неподписываемая синяя/зеленая/красная/альфа с масштабируемым значением (значение преобразуется с целого в float) Значения: [0.0, 255.0] Диапазон.

B8G8R8G8422Unorm = 185

Формат данных синего/зеленого/красного канала без знака с плавающей точкой 8 бит на канал с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала).

B8G8R8Sint = 34

Формат данных 8-битного на канал знакового целого числа синего/зеленого/красного канала. Значения находятся в диапазоне [-127, 127].

B8G8R8Snorm = 30

Формат данных синего/зеленого/красного канала с плавающей точкой, 8 бит на канал, со знаком, с нормализованным значением. Значения находятся в диапазоне [-1.0, 1.0].

ДАННЫЕ_ФОРМАТ_B8G8R8_USCALed

B8G8R8Srgb = 35

8-битный формат данных синего/зеленого/красного цвета с плавающей запятой без знака на канал, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_R8G8B8A8_UNORM

B8G8R8Sscaled = 32

8-битный/канал, подписанный в голубой/зеленый/красный формат данных с масштабной величиной (значение преобразуется из целого в float) Значения: [-127.0, 127.0] Диапазон.

ДАННЫЕ_ФОРМАТ_B8G8R8_UINT

B8G8R8Uint = 33

Формат данных 8-битного на канал беззнакового целого числа синего/зеленого/красного канала. Значения находятся в диапазоне [0, 255].

ДАННЫЕ_ФОРМАТ_B8G8R8_SINT

B8G8R8Unorm = 29

Формат данных синего/зеленого/красного канала с плавающей точкой и беззнаковым 8-битным каналом с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0].

B8G8R8Uscaled = 31

Формат данных синего/зеленого/красного канала с масштабируемой величиной 8 бит на канал (значение преобразуется из целого в float) Значения: [0.0, 255.0] Диапазон.

ДАННЫЕ_ФОРМАТ_B8G8R8_ШКАЛА

Bc1RgbSrgbBlock = 131

Формат данных красного/зеленого/синего каналов, сжатый в видеопамяти, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне [0.0, 1.0]. Точность формата составляет 5 бит для красного канала, 6 бит для зеленого канала и 5 бит для синего канала. Используется сжатие текстур BC1 (также известное как S3TC DXT1).

Bc1RgbUnormBlock = 130

Сжатый VRAM беззнаковый формат данных красного/зеленого/синего канала с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Точность формата составляет 5 бит красного канала, 6 бит зеленого канала и 5 бит синего канала. Используется сжатие текстур BC1 (также известное как S3TC DXT1).

Bc1RgbaSrgbBlock = 133

Формат данных красного/зеленого/синего/альфа-канала, сжатый в видеопамяти, с нормализованными значениями и нелинейным кодированием sRGB. Значения находятся в диапазоне [0.0, 1.0]. Точность формата составляет 5 бит для красного канала, 6 бит для зеленого канала, 5 бит для синего канала и 1 бит для альфа-канала. Используется сжатие текстур BC1 (также известное как S3TC DXT1).

Bc1RgbaUnormBlock = 132

Сжатый VRAM беззнаковый формат данных красного/зеленого/синего/альфа-канала с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Точность формата составляет 5 бит красного канала, 6 бит зеленого канала, 5 бит синего канала и 1 бит альфа-канала. Используется сжатие текстур BC1 (также известное как S3TC DXT1).

ДАННЫЕ_ФОРМАТ_BC1_RGBA_SRGB_BLOK

Bc2SrgbBlock = 135

Сжатый в видеопамяти формат данных беззнаковых каналов красного/зеленого/синего/альфа-канала с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне [0.0, 1.0]. Точность формата составляет 5 бит для красного канала, 6 бит для зеленого канала, 5 бит для синего канала и 4 бита для альфа-канала. Используется сжатие текстур BC2 (также известное как S3TC DXT3).

Bc2UnormBlock = 134

Сжатый VRAM беззнаковый формат данных красного/зеленого/синего/альфа-канала с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Точность формата составляет 5 бит красного канала, 6 бит зеленого канала, 5 бит синего канала и 4 бита альфа-канала. Используется сжатие текстур BC2 (также известное как S3TC DXT3).

Bc3SrgbBlock = 137

Формат данных красного/зеленого/синего/альфа-канала, сжатый в видеопамяти, с нормализованными значениями и нелинейным кодированием sRGB. Значения находятся в диапазоне [0.0, 1.0]. Точность формата составляет 5 бит для красного канала, 6 бит для зеленого канала, 5 бит для синего канала и 8 бит для альфа-канала. Используется сжатие текстур BC3 (также известное как S3TC DXT5).

Bc3UnormBlock = 136

Сжатый VRAM беззнаковый формат данных красного/зеленого/синего/альфа-канала с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Точность формата составляет 5 бит красного канала, 6 бит зеленого канала, 5 бит синего канала и 8 бит альфа-канала. Используется сжатие текстур BC3 (также известное как S3TC DXT5).

Bc4SnormBlock = 139

Формат данных красного канала со знаком, сжатый VRAM, с нормализованным значением. Значения находятся в диапазоне [-1.0, 1.0]. Точность формата составляет 8 бит красного канала. Используется сжатие текстур BC4.

Bc4UnormBlock = 138

Сжатый VRAM беззнаковый формат данных красного канала с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Точность формата составляет 8 бит красного канала. Используется сжатие текстур BC4.

Bc5SnormBlock = 141

Формат данных канала красного/зеленого со знаком, сжатый VRAM, с нормализованным значением. Значения находятся в диапазоне [-1.0, 1.0]. Точность формата составляет 8 бит красного канала и 8 бит зеленого канала. Используется сжатие текстур BC5 (также известное как S3TC RGTC).

Bc5UnormBlock = 140

Сжатый VRAM беззнаковый формат данных красного/зеленого канала с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Точность формата составляет 8 бит красного канала и 8 бит зеленого канала. Используется сжатие текстур BC5 (также известное как S3TC RGTC).

Bc6HSfloatBlock = 143

Формат данных канала красного/зеленого/синего со знаком, сжатый VRAM, с плавающей точкой, сохраненной как есть. Точность формата составляет от 10 до 13 бит для каналов красного/зеленого/синего. Используется сжатие текстур BC6H (также известное как БПТС " Доклад о развитии человеческого потенциала ").

ДАННЫЕ_ФОРМАТ_BC7_UNORM_BLOK

Bc6HUfloatBlock = 142

Формат данных каналов красного/зеленого/синего цвета без знака, сжатый VRAM, с плавающей точкой, сохраненной как есть. Точность формата составляет от 10 до 13 бит для каналов красного/зеленого/синего цвета. Используется сжатие текстур BC6H (также известное как БПТС " Доклад о развитии человеческого потенциала ").

Bc7SrgbBlock = 145

Формат данных красного/зеленого/синего/альфа-канала, сжатый в видеопамяти, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне [0.0, 1.0]. Точность формата составляет от 4 до 7 бит для красного/зеленого/синего каналов и от 0 до 8 бит для альфа-канала. Также известен как БПТК ЛДР.

Bc7UnormBlock = 144

Сжатый VRAM беззнаковый формат данных красного/зеленого/синего/альфа-канала с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Точность формата составляет от 4 до 7 бит для красного/зеленого/синего каналов и от 0 до 8 бит для альфа-канала. Также известен как БПТК ЛДР.

D16Unorm = 123

16-битный беззнаковый формат данных с плавающей точкой глубины с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_X8_D24_UNORM_PACK32

D16UnormS8Uint = 127

16-битный беззнаковый формат данных с плавающей точкой глубины с нормализованным значением, плюс 8 бит трафарета в беззнаковом целочисленном формате. Значения для глубины находятся в диапазоне [0.0, 1.0]. Значения для трафарета находятся в диапазоне [0, 255].

D24UnormS8Uint = 128

24-битный беззнаковый формат данных с плавающей точкой глубины с нормализованным значением, плюс 8 бит трафарета в беззнаковом целочисленном формате. Значения для глубины находятся в диапазоне [0.0, 1.0]. Значения для трафарета находятся в диапазоне [0, 255].

D32Sfloat = 125

32-битный знаковый формат данных глубины с плавающей точкой, значение которого сохраняется «как есть».

ДАННЫЕ_ФОРМАТА_S8_UINT

D32SfloatS8Uint = 129

32-битный знаковый формат данных глубины с плавающей точкой, значение которого хранится как есть, плюс 8 бит трафарета в формате беззнакового целого числа. Значения для трафарета находятся в диапазоне [0, 255].

E5B9G9R9UfloatPack32 = 122

Формат данных экспозиции/синего/зеленого/красного без знака с плавающей точкой, значение хранится как есть, упаковано в 32 бита. Точность формата составляет 5 бит экспозиции, 9 бит синего канала, 9 бит зеленого канала и 9 бит красного канала.

ДАТА_ФОРМАТ_D16_UNORM

EacR11G11SnormBlock = 155

11-битный сжатый VRAM-компрессированный формат данных красного/зеленого канала с нормализованным значением. Значения находятся в диапазоне [-1.0, 1.0]. Используется сжатие текстур ETC2.

EacR11G11UnormBlock = 154

11-битный сжатый VRAM беззнаковый формат данных красного/зеленого канала с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие текстур ETC2.

EacR11SnormBlock = 153

11-битный сжатый VRAM-компрессированный формат данных красного канала со знаком и нормализованным значением. Значения находятся в диапазоне [-1.0, 1.0]. Используется сжатие текстур ETC2.

ДАННЫЕ_ФОРМАТ_EAC_R11G11_UNORM_BLOCK

EacR11UnormBlock = 152

11-битный сжатый VRAM беззнаковый формат данных красного канала с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие текстур ETC2.

Etc2R8G8B8A1SrgbBlock = 149

Сжатые в видеопамяти данные беззнаковых каналов красного/зеленого/синего/альфа-канала с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне [0.0, 1.0]. Красный/зеленый/синий каналы используют 8-битную точность каждый, а альфа-канал — 1-битную точность. Используется текстурное сжатие ETC2.

ДАННЫЕ_ФОРМАТ_ETC2_R8G8B8A8_UNORM_BLOCK

Etc2R8G8B8A1UnormBlock = 148

Сжатый VRAM беззнаковый формат данных красного/зеленого/синего/альфа-канала с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Красный/зеленый/синий используют 8-битную точность каждый, а альфа использует 1-битную точность. Используется сжатие текстур ETC2.

Etc2R8G8B8A8SrgbBlock = 151

Сжатые в видеопамяти данные беззнаковых каналов красного/зеленого/синего/альфа-канала с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне [0.0, 1.0]. Красный/зеленый/синий каналы используют по 8 бит точности каждый, а альфа-канал — также 8 бит точности. Используется текстурное сжатие ETC2.

ДАННЫЕ_ФОРМАТ_EAC_R11_UNORM_BLOCK

Etc2R8G8B8A8UnormBlock = 150

Сжатый VRAM беззнаковый формат данных красного/зеленого/синего/альфа-канала с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Красный/зеленый/синий используют 8 бит точности каждый, а альфа использует 8 бит точности. Используется сжатие текстур ETC2.

Etc2R8G8B8SrgbBlock = 147

Сжатые в видеопамяти данные каналов красного/зеленого/синего цвета без знака, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне [0.0, 1.0]. Используется текстурное сжатие ETC2.

Etc2R8G8B8UnormBlock = 146

Сжатый VRAM беззнаковый формат данных каналов красного/зеленого/синего с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Используется сжатие текстур ETC2.

G10X6B10X6G10X6R10X6422Unorm4Pack16 = 194

10-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/зеленого/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованные в 4×16 бит. Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала). Зеленый канал указан дважды, но содержит разные значения, что позволяет представить его в полном разрешении.

G10X6B10X6R10X62Plane420Unorm3Pack16 = 197

10-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 2 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным и вертикальным разрешением (т. е. 2×2 соседних пикселя будут иметь одинаковое значение для синего/красного канала).

G10X6B10X6R10X62Plane422Unorm3Pack16 = 199

10-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 3 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала).

G10X6B10X6R10X63Plane420Unorm3Pack16 = 196

10-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 2 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным и вертикальным разрешением (т. е. 2×2 соседних пикселя будут иметь одинаковое значение для синего/красного канала).

G10X6B10X6R10X63Plane422Unorm3Pack16 = 198

10-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 3 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала).

G10X6B10X6R10X63Plane444Unorm3Pack16 = 200

10-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 3 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_R12X4_UNORM_PACK16

G12X4B12X4G12X4R12X4422Unorm4Pack16 = 204

12-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/зеленого/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованные в 4×16 бит. Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала). Зеленый канал указан дважды, но содержит разные значения, что позволяет представить его в полном разрешении.

G12X4B12X4R12X42Plane420Unorm3Pack16 = 207

12-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 2 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным и вертикальным разрешением (т. е. 2×2 соседних пикселя будут иметь одинаковое значение для синего/красного канала).

G12X4B12X4R12X42Plane422Unorm3Pack16 = 209

12-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 3 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала).

G12X4B12X4R12X43Plane420Unorm3Pack16 = 206

12-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 2 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным и вертикальным разрешением (т. е. 2×2 соседних пикселя будут иметь одинаковое значение для синего/красного канала).

G12X4B12X4R12X43Plane422Unorm3Pack16 = 208

12-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 3 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала).

G12X4B12X4R12X43Plane444Unorm3Pack16 = 210

12-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 3 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне [0.0, 1.0].

G16B16G16R16422Unorm = 211

Формат данных зеленого/синего/красного каналов без знака с плавающей точкой 16 бит на канал с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала).

G16B16R162Plane420Unorm = 214

16-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Хранятся в 2 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным и вертикальным разрешением (т. е. 2×2 соседних пикселя будут иметь одинаковое значение для синего/красного канала).

G16B16R162Plane422Unorm = 216

16-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Хранятся в 3 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала).

G16B16R163Plane420Unorm = 213

16-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Хранятся в 2 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным и вертикальным разрешением (т. е. 2×2 соседних пикселя будут иметь одинаковое значение для синего/красного канала).

G16B16R163Plane422Unorm = 215

16-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Хранятся в 3 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала).

G16B16R163Plane444Unorm = 217

16-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Хранятся в 3 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне [0.0, 1.0].

G8B8G8R8422Unorm = 184

Формат данных зеленого/синего/красного каналов без знака с плавающей точкой, 8 бит на канал, с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала).

G8B8R82Plane420Unorm = 187

8-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, хранящиеся в 2 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным и вертикальным разрешением (т. е. 2×2 соседних пикселя будут иметь одинаковое значение для синего/красного канала).

G8B8R82Plane422Unorm = 189

8-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, хранящиеся в 2 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала).

G8B8R83Plane420Unorm = 186

8-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, хранящиеся в 3 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным и вертикальным разрешением (т. е. 2×2 соседних пикселя будут иметь одинаковое значение для синего/красного канала).

G8B8R83Plane422Unorm = 188

8-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, хранящиеся в 2 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне [0.0, 1.0]. Данные синего и красного каналов хранятся с уменьшенным вдвое горизонтальным разрешением (т. е. 2 горизонтально смежных пикселя будут иметь одинаковое значение для синего/красного канала).

G8B8R83Plane444Unorm = 190

8-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, хранящиеся в 3 отдельных плоскостях. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_R10X6_UNORM_PACK16

Max = 232

Представляет размер перечисления RenderingDevice.DataFormat.

R10X6G10X6B10X6A10X6Unorm4Pack16 = 193

10-бит на канал беззнаковых данных с плавающей точкой красного/зеленого/синего/альфа-канала с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованных в 4×16 бит. Значения находятся в диапазоне [0.0, 1.0].

R10X6G10X6Unorm2Pack16 = 192

10-бит на канал беззнаковых данных с плавающей точкой красного/зеленого каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованных в 2×16 бит. Значения находятся в диапазоне [0.0, 1.0].

R10X6UnormPack16 = 191

10-бит на канал беззнаковых данных с плавающей точкой красного канала с нормализованным значением, плюс 6 неиспользуемых бит, упакованных в 16 бит. Значения находятся в диапазоне [0.0, 1.0].

R12X4G12X4B12X4A12X4Unorm4Pack16 = 203

12-битные на канал беззнаковые данные с плавающей точкой красного/зеленого/синего/альфа-канала с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованные в 4×16 бит. Значения находятся в диапазоне [0.0, 1.0].

R12X4G12X4Unorm2Pack16 = 202

12-бит на канал беззнаковых данных с плавающей точкой красного/зеленого каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованных в 2×16 бит. Значения находятся в диапазоне [0.0, 1.0].

R12X4UnormPack16 = 201

12-бит на канал беззнаковых данных с плавающей точкой красного канала с нормализованным значением, плюс 6 неиспользуемых бит, упакованных в 16 бит. Значения находятся в диапазоне [0.0, 1.0].

R16G16B16A16Sfloat = 96

Формат данных красного, зеленого, синего и альфа-канала с плавающей точкой и 16-битным знаком, значение сохраняется «как есть».

ДАННЫЕ_ФОРМАТ_R32_UINT

R16G16B16A16Sint = 95

Формат данных канала красного/зеленого/синего/альфа со знаком 16 бит на канал. Значения находятся в диапазоне [-32767, 32767].

ДАННЫЕ_ФОРМАТ_R16G16B16A16_SFLOAT

R16G16B16A16Snorm = 91

Формат данных канала красного/зеленого/синего/альфа со знаком и плавающей точкой, 16 бит на канал, с нормализованным значением. Значения находятся в диапазоне [-1.0, 1.0].

ДАННЫЕ_ФОРМАТ_R16G16B16A16_USCALed

R16G16B16A16Sscaled = 93

Формат данных о плавучих каналах красного/зеленого/голубого/алфского канала с масштабной величиной (значение преобразуется из целого в float) Значения: [-32767.0, 32767.0] Диапазон.

ДАННЫЕ_ФОРМАТ_R16G16B16A16_UINT

R16G16B16A16Uint = 94

Формат данных канала красного/зеленого/синего/альфа с 16-битным беззнаковым целым числом. Значения находятся в диапазоне [0.0, 65535].

ДАННЫЕ_ФОРМАТ_R16G16B16A16_SINT

R16G16B16A16Unorm = 90

Формат данных канала красного/зеленого/синего/альфа с 16 битами на канал без знака и плавающей точкой с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0].

ДАНЫ_ФОРМАТ_R16G16B16A16_SNORM

R16G16B16A16Uscaled = 92

Формат данных по плавучему каналу в красной/зеленой/синей/альфа-канала с масштабируемой величиной (значение преобразуется из целого в float) Значения: [0.0, 65535.0] Диапазон.

ДАННЫЕ_ФОРМАТ_R16G16B16A16_ШКАЛА

R16G16B16Sfloat = 89

Формат данных красного/зеленого/синего каналов с плавающей точкой и 16 битами на канал, со значением, сохраняемым «как есть».

ДАННЫЕ_ФОРМАТ_R16G16B16A16_UNORM

R16G16B16Sint = 88

Формат данных канала красного/зеленого/синего цвета со знаком 16 бит на канал. Значения находятся в диапазоне [-32767, 32767].

ДАНЫ_ФОРМАТ_R16G16B16_SFLOAT

R16G16B16Snorm = 84

Формат данных канала красного/зеленого/синего цвета с плавающей точкой и 16 битами на канал, со знаком, с нормализованным значением. Значения находятся в диапазоне [-1.0, 1.0].

ДАННЫЕ_ФОРМАТ_R16G16B16_USCALed

R16G16B16Sscaled = 86

Формат данных по плавучим точкам красного/зеленого/голубого канала с масштабной величиной (значение преобразуется из целого в float) Значения: [-32767.0, 32767.0] Диапазон.

ДАННЫЕ_ФОРМАТ_R16G16B16_UINT

R16G16B16Uint = 87

Формат данных канала красного/зеленого/синего цвета без знака, 16 бит на канал. Значения находятся в диапазоне [0.0, 65535].

ДАННЫЕ_ФОРМАТ_R16G16B16_SINT

R16G16B16Unorm = 83

16-битный на канал беззнаковый формат данных с плавающей точкой красного/зеленого/синего канала с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_R16G16B16_SNORM

R16G16B16Uscaled = 85

Формат данных по красному/зеленому/голубому каналу с масштабируемой величиной (значение преобразуется из целого в float) Значения: [0.0, 65535.0] Диапазон.

ДАННЫЕ_ФОРМАТ_R16G16B16_ШКАЛЕННЫЙ

R16G16Sfloat = 82

Формат данных красного/зеленого каналов с плавающей точкой и 16-битным знаком на канал, значение сохраняется «как есть».

ДАННЫЕ_ФОРМАТ_R16G16B16_UNORM

R16G16Sint = 81

Формат данных красного/зеленого канала со знаком 16 бит на канал. Значения находятся в диапазоне [-32767, 32767].

R16G16Snorm = 77

Формат данных красного/зеленого канала с плавающей точкой и 16 битами на канал, со знаком, с нормализованным значением. Значения находятся в диапазоне [-1.0, 1.0].

ДАННЫЕ_ФОРМАТ_R16G16_USCALed

R16G16Sscaled = 79

16-бит-канал, подписанный в красном/зеленом канале с масштабной величиной (значение преобразуется из целого в float) Значения: [-32767.0, 32767.0] Диапазон.

ДАННЫЕ_ФОРМАТ_R16G16_UINT

R16G16Uint = 80

Формат данных красного/зеленого канала без знака 16 бит на канал. Значения находятся в диапазоне [0.0, 65535].

ДАННЫЕ_ФОРМАТ_R16G16_SINT

R16G16Unorm = 76

16-битный на канал беззнаковый формат данных с плавающей точкой красного/зеленого канала с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_R16G16_SNORM

R16G16Uscaled = 78

Формат данных по красному/зеленому каналу с увеличенной величиной 16 бит на один канал (значение преобразуется из целого в float) Значения: [0.0, 65535.0] Диапазон.

ДАННЫЕ_ФОРМАТ_R16G16_ШКАЛЕННЫЙ

R16Sfloat = 75

Формат данных красного канала с плавающей точкой и знаком, 16 бит на канал, значение сохраняется «как есть».

ДАННЫЕ_ФОРМАТ_R16G16_UNORM

R16Sint = 74

Формат данных красного канала со знаком 16 бит на канал. Значения находятся в диапазоне [-32767, 32767].

ДАННЫЕ_ФОРМАТ_R16_SFLOAT

R16Snorm = 70

Формат данных красного канала с плавающей точкой и 16 битами на канал со знаком и нормализованным значением. Значения находятся в диапазоне [-1.0, 1.0].

ДАННЫЕ_ФОРМАТА_R16_УСТАНОВАННЫЕ

R16Sscaled = 72

Формат данных по плавучему каналу с увеличенной величиной 16 бит на одну трубку (значение преобразуется из целого в float) Значения: [-32767.0, 32767.0] Диапазон.

ДАННЫЕ_ФОРМАТ_R16_UINT

R16Uint = 73

Формат данных красного канала без знака 16 бит на канал. Значения находятся в диапазоне [0.0, 65535].

ДАННЫЕ_ФОРМАТ_R16_SINT

R16Unorm = 69

16-битный на канал беззнаковый формат данных с плавающей точкой красного канала с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0].

R16Uscaled = 71

Формат данных по плавучим каналам с масштабной величиной 16 бит на канал неподписываемого красного канала (значение преобразуется из целого в float) Значения: [0.0, 65535.0] Диапазон.

ДАННЫЕ_ФОРМАТА_R16_ШКАЛЕННЫЙ

R32G32B32A32Sfloat = 108

Формат данных красного, зеленого, синего и альфа-канала с плавающей точкой и 32-битным знаком, значение сохраняется «как есть».

ДАННЫЕ_ФОРМАТ_R64_UINT

R32G32B32A32Sint = 107

Формат данных 32-битного на канал знакового целого числа красного/зеленого/синего/альфа-канала. Значения находятся в диапазоне [2^31 + 1, 2^31 - 1].

ДАНЫ_ФОРМАТ_R32G32B32A32_SFLOAT

R32G32B32A32Uint = 106

Формат данных канала красного/зеленого/синего/альфа с 32-битным беззнаковым целым числом. Значения находятся в диапазоне [0, 2^32 - 1].

ДАННЫЕ_ФОРМАТ_R32G32B32A32_SINT

R32G32B32Sfloat = 105

Формат данных красного/зеленого/синего каналов с плавающей точкой и 32-битным знаком, значение сохраняется «как есть».

ДАННЫЕ_ФОРМАТ_R32G32B32A32_UINT

R32G32B32Sint = 104

Формат данных 32-битного на канал знакового целого числа красного/зеленого/синего канала. Значения находятся в диапазоне [2^31 + 1, 2^31 - 1].

ДАННЫЕ_ФОРМАТ_R32G32B32_SFLOAT

R32G32B32Uint = 103

Формат данных канала красного/зеленого/синего цвета без знака, 32 бита на канал. Значения находятся в диапазоне [0, 2^32 - 1].

ДАННЫЕ_ФОРМАТ_R32G32B32_SINT

R32G32Sfloat = 102

Формат данных красного/зеленого каналов с плавающей точкой и 32-битным знаком на канал, значение сохраняется «как есть».

ДАННЫЕ_ФОРМАТ_R32G32B32_UINT

R32G32Sint = 101

Формат данных красного/зеленого канала со знаком 32 бита на канал. Значения находятся в диапазоне [2^31 + 1, 2^31 - 1].

ДАННЫЕ_ФОРМАТ_R32G32_SFLOAT

R32G32Uint = 100

Формат данных канала красного/зеленого цвета без знака, 32 бита на канал. Значения находятся в диапазоне [0, 2^32 - 1].

ДАННЫЕ_ФОРМАТ_R32G32_SINT

R32Sfloat = 99

Формат данных красного канала с плавающей точкой и 32-битным знаком на канал, значение сохраняется «как есть».

ДАННЫЕ_ФОРМАТА_R32G32_UINT

R32Sint = 98

Формат данных красного канала со знаком 32 бита на канал. Значения находятся в диапазоне [2^31 + 1, 2^31 - 1].

ДАННЫЕ_ФОРМАТ_R32_SFLOAT

R32Uint = 97

Формат данных красного канала без знака, 32 бита на канал. Значения находятся в диапазоне [0, 2^32 - 1].

ДАННЫЕ_ФОРМАТ_R32_SINT

R4G4B4A4UnormPack16 = 1

Формат данных канала красного/зеленого/синего/альфа по 4 бита на канал, упакованный в 16 бит. Значения находятся в диапазоне [0.0, 1.0].

R4G4UnormPack8 = 0

Формат данных красного/зеленого каналов 4 бита на канал, упакованный в 8 бит. Значения находятся в диапазоне [0.0, 1.0]. Примечание: Более подробную информацию обо всех форматах данных можно найти в разделе Идентификация форматов спецификации Vulkan, а также в перечислении VkFormat(https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html).

R5G5B5A1UnormPack16 = 5

Формат данных канала красный/зеленый/синий/альфа с 5 битами красного, 6 битами зеленого, 5 битами синего и 1 битом альфа, упакованными в 16 бит. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_B5G5R5A1_UNORM_PACK16

R5G6B5UnormPack16 = 3

Формат данных канала красный/зеленый/синий с 5 битами красного, 6 битами зеленого и 5 битами синего, упакованными в 16 бит. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_B5G6R5_UNORM_PACK16

R64G64B64A64Sfloat = 120

Формат данных красного, зеленого, синего и альфа-каналов с плавающей точкой и 64-битным знаком, значение сохраняется «как есть».

ДАННЫЕ_ФОРМАТ_B10G11R11_UFLOAT_PACK32

R64G64B64A64Sint = 119

Формат данных 64-битного на канал знакового целого числа красного/зеленого/синего/альфа-канала. Значения находятся в диапазоне [2^63 + 1, 2^63 - 1].

ДАННЫЕ_ФОРМАТ_R64G64B64A64_SFLOAT

R64G64B64A64Uint = 118

Формат данных канала красного/зеленого/синего/альфа с 64-битным беззнаковым целым числом. Значения находятся в диапазоне [0, 2^64 - 1].

ДАННЫЕ_ФОРМАТ_R64G64B64A64_SINT

R64G64B64Sfloat = 117

Формат данных красного/зеленого/синего каналов с плавающей точкой и 64-битным знаком, значение сохраняется «как есть».

ДАНЫ_ФОРМАТ_R64G64B64A64_UINT

R64G64B64Sint = 116

Формат данных 64-битного на канал знакового целого числа красного/зеленого/синего канала. Значения находятся в диапазоне [2^63 + 1, 2^63 - 1].

ДАННЫЕ_ФОРМАТ_R64G64B64_SFLOAT

R64G64B64Uint = 115

Формат данных канала красного/зеленого/синего цвета без знака 64 бита на канал. Значения находятся в диапазоне [0, 2^64 - 1].

ДАННЫЕ_ФОРМАТ_R64G64B64_SINT

R64G64Sfloat = 114

Формат данных красного/зеленого каналов с плавающей точкой и 64-битным знаком, значение сохраняется «как есть».

ДАННЫЕ_ФОРМАТА_R64G64B64_UINT

R64G64Sint = 113

Формат данных красного/зеленого канала со знаком 64 бита на канал. Значения находятся в диапазоне [2^63 + 1, 2^63 - 1].

ДАННЫЕ_ФОРМАТ_R64G64_SFLOAT

R64G64Uint = 112

Формат данных 64-битного на канал беззнакового целого числа красного/зеленого канала. Значения находятся в диапазоне [0, 2^64 - 1].

ДАННЫЕ_ФОРМАТ_R64G64_SINT

R64Sfloat = 111

Формат данных красного канала с плавающей точкой и знаком, 64 бита на канал, значение сохраняется «как есть».

ДАННЫЕ_ФОРМАТ_R64G64_UINT

R64Sint = 110

Формат данных красного канала со знаком 64 бита на канал. Значения находятся в диапазоне [2^63 + 1, 2^63 - 1].

ДАННЫЕ_ФОРМАТ_R64_SFLOAT

R64Uint = 109

Формат данных красного канала без знака 64-бит на канал. Значения находятся в диапазоне [0, 2^64 - 1].

ДАНЫ_ФОРМАТ_R64_SINT

R8G8B8A8Sint = 41

Формат данных канала красного/зеленого/синего/альфа со знаком 8 бит на канал. Значения находятся в диапазоне [-127, 127].

ДАННЫЕ_ФОРМАТ_R8G8B8A8_SRGB

R8G8B8A8Snorm = 37

Формат данных канала красного/зеленого/синего/альфа со знаком 8 бит на канал и плавающей точкой с нормализованным значением. Значения находятся в диапазоне [-1.0, 1.0].

ДАННЫЕ_ФОРМАТ_R8G8B8A8_USCALED

R8G8B8A8Srgb = 42

8-битный формат данных с плавающей запятой без знака для каждого канала: красный/зеленый/синий/альфа-канал, нормализованное значение и нелинейное кодирование sRGB. Значения находятся в диапазоне [0.0, 1.0].

R8G8B8A8Sscaled = 39

8-битный/канал, подписанный в красной/зеленой/синей/альфа-каналах с масштабируемым значением (значение преобразуется из целого в float) Значения: [-127.0, 127.0] Диапазон.

ДАННЫЕ_ФОРМАТ_R8G8B8A8_UINT

R8G8B8A8Uint = 40

Формат данных канала красного/зеленого/синего/альфа с 8-битным беззнаковым целым числом. Значения находятся в диапазоне [0, 255].

ДАННЫЕ_ФОРМАТ_R8G8B8A8_SINT

R8G8B8A8Unorm = 36

Формат данных канала красного/зеленого/синего/альфа с 8 битами на канал без знака и плавающей точкой с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0].

R8G8B8A8Uscaled = 38

Формат данных канала 8-бит на канал неподписываемой плавающей точки красный/зеленый/синий/альфа с масштабируемым значением (значение преобразуется с целого в float) Значения: [0.0, 255.0] Диапазон.

ДАННЫЕ_ФОРМАТ_R8G8B8A8_ШКАЛА

R8G8B8Sint = 27

Формат данных канала красного/зеленого/синего цвета со знаком 8 бит на канал. Значения находятся в диапазоне [-127, 127].

ДАННЫЕ_ФОРМАТА_R8G8B8_SRGB

R8G8B8Snorm = 23

Формат данных канала красного/зеленого/синего цвета с плавающей точкой и 8 битами на канал с нормализованным значением. Значения находятся в диапазоне [-1.0, 1.0].

ДАННЫЕ_ФОРМАТ_R8G8B8_USCALed

R8G8B8Srgb = 28

8-битный формат данных каналов красного/зеленого/синего цвета с плавающей запятой без знака на канал, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_B8G8R8_UNORM

R8G8B8Sscaled = 25

8-бит-канал, подписанный в красном/зеленом/голубом канале с масштабируемой величиной (значение преобразуется из целого в float) Значения: [-127.0, 127.0] Диапазон.

ДАННЫЕ_ФОРМАТ_R8G8B8_UINT

R8G8B8Uint = 26

Формат данных канала красного/зеленого/синего цвета без знака 8 бит на канал. Значения находятся в диапазоне [0, 255].

ДАННЫЕ_ФОРМАТ_R8G8B8_SINT

R8G8B8Unorm = 22

Формат данных канала красного/зеленого/синего цвета с плавающей точкой и беззнаковым 8-битным каналом с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0].

R8G8B8Uscaled = 24

Формат данных по красному/зеленому/голубому каналу с масштабируемым значением (значение преобразуется из целого в float) Значения: [0.0, 255.0] Диапазон.

ДАННЫЕ_ФОРМАТА_R8G8B8_ШКАЛЕННЫЙ

R8G8Sint = 20

Формат данных красного/зеленого канала со знаком 8 бит на канал. Значения находятся в диапазоне [-127, 127].

ДАННЫЕ_ФОРМАТ_R8G8_SRGB

R8G8Snorm = 16

Формат данных красного/зеленого канала с плавающей точкой и знаком 8 бит на канал с нормализованным значением. Значения находятся в диапазоне [-1.0, 1.0].

ДАННЫЕ_ФОРМАТ_R8G8_USCALED

R8G8Srgb = 21

8-битный формат данных красного/зеленого канала с плавающей запятой без знака на канал, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_R8G8B8_UNORM

R8G8Sscaled = 18

8-битный/канал, подписанный красным/зеленым каналом с масштабной величиной (значение преобразуется из целого в float) Значения: [-127.0, 127.0] Диапазон.

ДАННЫЕ_ФОРМАТ_R8G8_UINT

R8G8Uint = 19

Формат данных красного/зеленого канала без знака 8-бит на канал. Значения находятся в диапазоне [0, 255].

ДАННЫЕ_ФОРМАТ_R8G8_SINT

R8G8Unorm = 15

Формат данных красного/зеленого канала без знака с плавающей точкой, 8 бит на канал, с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_R8G8_SNORM

R8G8Uscaled = 17

8-битная на канал неподписанная красная/зеленая трубка с масштабируемым значением (значение преобразуется из целого в float) Значения: [0.0, 255.0] Диапазон.

ДАННЫЕ_ФОРМАТ_R8G8_ШКАЛЕННЫЙ

R8Sint = 13

Формат данных красного канала со знаком 8 бит на канал. Значения находятся в диапазоне [-127, 127].

ДАННЫЕ_ФОРМАТА_R8_SRGB

R8Snorm = 9

Формат данных красного канала с плавающей точкой и знаком 8 бит на канал с нормализованным значением. Значения находятся в диапазоне [-1.0, 1.0].

ДАННЫЕ_ФОРМАТА_R8_УСТАНОВКИ

R8Srgb = 14

8-битный формат данных красного канала с плавающей запятой без знака на канал, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_R8G8_UNORM

R8Sscaled = 11

Формат данных по плавучему каналу с масштабной величиной 8 бит на одну трубу (значение переводится из целого в float) Значения: [-127.0, 127.0] Диапазон.

ДАННЫЕ_ФОРМАТ_R8_UINT

R8Uint = 12

Формат данных красного канала без знака 8-бит на канал. Значения находятся в диапазоне [0, 255].

ДАННЫЕ_ФОРМАТ_R8_SINT

R8Unorm = 8

Формат данных красного канала без знака с плавающей точкой, 8 бит на канал, с нормализованным значением. Значения находятся в диапазоне [0.0, 1.0].

ДАННЫЕ_ФОРМАТ_R8_SNORM

R8Uscaled = 10

Формат данных по плавучему каналу с увеличенной величиной 8 бит на канал неподписываемого красного канала (значение преобразуется из целого в float) Значения: [0.0, 255.0] Диапазон.

ДАННЫЕ_ФОРМАТ_R8_ШКАЛИРОВАННЫЕ

S8Uint = 126

Формат данных трафарета 8-битного беззнакового целого числа.

ДАННЫЕ_ФОРМАТ_D16_UNORM_S8_UINT

X8D24UnormPack32 = 124

24-битный беззнаковый формат данных глубины с плавающей точкой с нормализованным значением, плюс 8 неиспользуемых бит, упакованных в 32 бита. Значения глубины находятся в диапазоне [0.0, 1.0].

ДАТА_ФОРМАТ_D32_SFLOAT

RenderingDevice.DeviceType

ЗначениеОписание
Cpu = 4

Устройство рендеринга обеспечивается программной эмуляцией (например, Lavapipe или SwiftShader(https://github.com/google/swiftshader)). Это самый медленный тип доступного устройства рендеринга; обычно он намного медленнее, чем RenderingDevice.DeviceType.IntegratedGpu.

DiscreteGpu = 2

Устройство рендеринга — это выделенный графический процессор, который обычно (но не всегда) быстрее интегрированных графических процессоров (RenderingDevice.DeviceType.IntegratedGpu).

IntegratedGpu = 1

Устройство рендеринга — это интегрированный графический процессор, который обычно (но не всегда) медленнее, чем выделенные графические процессоры (RenderingDevice.DeviceType.DiscreteGpu). На Android и iOS тип устройства рендеринга всегда считается RenderingDevice.DeviceType.IntegratedGpu.

Max = 5

Представляет размер перечисления RenderingDevice.DeviceType.

Other = 0

Тип устройства рендеринга не соответствует ни одному из других значений перечисления или неизвестен.

VirtualGpu = 3

Устройство рендеринга — это эмулированный GPU в виртуальной среде. Обычно он намного медленнее, чем хост-GPU, что означает, что ожидаемый уровень производительности на выделенном GPU будет примерно эквивалентен RenderingDevice.DeviceType.IntegratedGpu. Сквозной GPU виртуальной машины (например, VFIO) не будет сообщать тип устройства как RenderingDevice.DeviceType.VirtualGpu. Вместо этого тип устройства хост-GPU будет сообщаться так, как если бы GPU не был эмулирован.

RenderingDevice.DrawFlags

ЗначениеОписание
ClearAll = 327935

Удалить все вложения.

ClearColor0 = 1

Очистит первую цветовую вставку.

ClearColor1 = 2

Очистит вторую цветную вставку.

ClearColor2 = 4

Очистит третью цветовую вставку.

ClearColor3 = 8

Очистит четвертую цветовую вставку.

ClearColor4 = 16

Очистит пятую цветовую насадку.

ClearColor5 = 32

Очистит шестую цветовую вставку.

ClearColor6 = 64

Очистите седьмую цветовую насадку.

ClearColor7 = 128

Очистит восьмую цветовую насадку.

ClearColorAll = 255

Удалить все цветные вложения.

ClearColorMask = 255

Маска для очистки всех цветных насадок.

ClearDepth = 65536

Очистите насадку для измерения глубины.

ClearStencil = 262144

Снимите трафаретную насадку.

DefaultAll = 0

Не удаляет и не игнорирует никакие вложения.

IgnoreAll = 720640

Игнорируйте предыдущее содержимое всех вложений.

IgnoreColor0 = 256

Игнорируйте предыдущее содержимое первого цветного вложения.

IgnoreColor1 = 512

Игнорируйте предыдущее содержимое второго цветного вложения.

IgnoreColor2 = 1024

Не обращайте внимания на предыдущее содержимое третьего цветного вложения.

IgnoreColor3 = 2048

Не обращайте внимания на предыдущее содержимое четвертого цветного вложения.

IgnoreColor4 = 4096

Не обращайте внимания на предыдущее содержимое пятого цветного вложения.

IgnoreColor5 = 8192

Не обращайте внимания на предыдущее содержимое шестого цветного вложения.

IgnoreColor6 = 16384

Не обращайте внимания на предыдущее содержимое седьмого цветного вложения.

IgnoreColor7 = 32768

Не обращайте внимания на предыдущее содержимое восьмого цветного вложения.

IgnoreColorAll = 65280

Игнорируйте предыдущее содержимое всех цветных вложений.

IgnoreColorMask = 65280

Маска для игнорирования всего предыдущего содержимого цветных вложений.

IgnoreDepth = 131072

Игнорируйте предыдущее содержимое вложения глубины.

IgnoreStencil = 524288

Не обращайте внимания на предыдущее содержимое трафарета.

RenderingDevice.DriverResource

ЗначениеОписание
Buffer = 10

Буфер любого типа (хранилище, вершинный и т. д.).

  • Vulkan: VkBuffer.
  • D3D12: ID3D12Resource.
CommandQueue = 3

Основная очередь команд для графических вычислений (параметр rid игнорируется).

  • Vulkan: VkQueue.
  • D3D12: ID3D12CommandQueue- Металл: MTLCommandQueue.
ComputePipeline = 11
  • Вулкан: VkPipeline.
  • Металл: MTLComputePipelineState.
LogicalDevice = 0

Объект конкретного устройства, основанный на физическом устройстве (параметр rid игнорируется).

  • Vulkan: Ресурс драйвера устройства Vulkan (VkDevice).
  • D3D12: Ресурс драйвера устройства D3D12 (ID3D12Device).
  • Metal: Ресурс драйвера устройства Metal (MTLDevice).
PhysicalDevice = 1

Физическое устройство, на котором основано конкретное логическое устройство (параметр rid игнорируется).

  • Vulkan: VkPhysicalDevice.
  • D3D12: IDXGIAdapter.
QueueFamily = 4

Конкретное семейство, к которому принадлежит основная очередь (параметр rid игнорируется).

  • Vulkan: Индекс семейства очереди, uint32_t.

ВОДИТЬ ИСТОЧНИК_ТЕКСТ

RenderPipeline = 12
  • Вулкан: VkPipeline.
  • Металл: MTLRenderPipelineState.

ВОДИТЬ ИСТОЧНИКИ ВУЛКАН

Sampler = 8
  • Вулкан: VkSampler.
Texture = 5
  • Вулкан: VkImage.
  • D3D12: ID3D12Resource.
TextureDataFormat = 7

Собственный идентификатор формата данных текстуры.

  • Vulkan: VkFormat.
  • D3D12: DXGI_FORMAT.
TextureView = 6

Вид собственной или общей текстуры.

  • Vulkan: VkImageView.
  • D3D12: ID3D12Resource.
TopmostObject = 2

Самый верхний объект записи графического API (параметр rid игнорируется).

  • Vulkan: VkInstance.
UniformSet = 9
  • Вулкан: VkDescriptorSet.
VulkanBuffer = 10
VulkanComputePipeline = 11
VulkanDescriptorSet = 9
VulkanDevice = 0
VulkanImage = 5
VulkanImageNativeTextureFormat = 7
VulkanImageView = 6
VulkanInstance = 2
VulkanPhysicalDevice = 1
VulkanQueue = 3
VulkanQueueFamilyIndex = 4
VulkanRenderPipeline = 12
VulkanSampler = 8

RenderingDevice.Features

ЗначениеОписание
BufferDeviceAddress = 6

Поддерживает расширение адреса буферного устройства.

HdrOutput = 13

Поддержка вывода изображения с расширенным динамическим диапазоном (HDR).

ImageAtomic32Bit = 7

Поддержка 32-разрядных атомных операций изображения.

MetalfxSpatial = 3

Поддержка пространственного (spatial) увеличения разрешения MetalFX.

MetalfxTemporal = 4

Поддержка :: Временное расширение " MetalFX ".

RasterizationRateMap = 14

Поддержка карт скорости рестеризации. Текущее осуществление нацелено на Metal на платформах Apple. Это позволяет производить фтивированную трансляцию, которая используется модулем Валиевос XR.

RayQuery = 11

Поддержка расширения для запросов лучей.

Примечание: В настоящее время это поддерживается только при использовании Vulkan. На macOS и iOS (даже на оборудовании, поддерживающем трассировку лучей) это не поддерживается из-за ограничений MoltenVK.

RaytracingPipeline = 12

Поддержка расширения конвейера трассировки лучей.

Примечание: В настоящее время это поддерживается только при использовании Vulkan. На macOS и iOS (даже на оборудовании, поддерживающем трассировку лучей) это не поддерживается из-за ограничений MoltenVK.

RenderingDevice.FinalAction

ЗначениеОписание
Continue = 0
Discard = 1

Отменить содержимое буфера кадра. Это самый быстрый вариант, если вам не нужно использовать результаты списка розыгрыша.

Заключительная часть Макс

Max = 2

Представляет размер перечисления RenderingDevice.FinalAction.

ЗАКЛЮЧИТЕЛЬНОЕ ЗАКЛЮЧЕНИЕ

Read = 0
Store = 0

Сохраните результат списка отрисовки в буфере кадра. Это то, что вы обычно хотите сделать.

ЗАКЛЮЧИТЕЛЬНОЕ ЗАКЛЮЧЕНИЕ

RenderingDevice.IndexBufferFormat

ЗначениеОписание
Uint16 = 0

Буфер индекса в формате 16-битного целого числа без знака. Это ограничивает максимальный индекс, который может быть указан, до 65535.

Uint32 = 1

Буфер индекса в формате 32-битного целого числа без знака. Это ограничивает максимальный индекс, который может быть указан, до 4294967295.

RenderingDevice.InitialAction

ЗначениеОписание
Clear = 1

Очистить весь буфер кадра или его указанную область.

ClearRegion = 1
ClearRegionContinue = 1
Continue = 0
Discard = 2

Игнорировать предыдущее содержимое буфера кадра. Это самый быстрый вариант, если вы перезапишете все пиксели и вам не нужно их считывать.

Drop = 2
Keep = 0
Load = 0

Загрузите предыдущее содержимое буфера кадра.

Max = 3

Представляет размер перечисления RenderingDevice.InitialAction.

RenderingDevice.Limit

ЗначениеОписание
MaxBoundUniformSets = 0

Максимальное количество комплектов униформы, которые можно связать одновременно.

МАРМИТ_МАКС_ФРАМЕБФЕР_КОЛОР_АТАЦИЙ

MaxComputeSharedMemorySize = 27

Максимальный размер разделяемой памяти для вычислительных шейдеров.

MaxComputeWorkgroupCountX = 28

Максимальное количество рабочих групп для вычислительных шейдеров по оси X.

MaxComputeWorkgroupCountY = 29

Максимальное количество рабочих групп для вычислительных шейдеров по оси Y.

MaxComputeWorkgroupCountZ = 30

Максимальное количество рабочих групп для вычислительных шейдеров по оси Z.

MaxComputeWorkgroupInvocations = 31

Максимальное количество вызовов рабочей группы для вычислительных шейдеров.

MaxComputeWorkgroupSizeX = 32

Максимальный размер рабочей группы для вычислительных шейдеров по оси X.

MaxComputeWorkgroupSizeY = 33

Максимальный размер рабочей группы для вычислительных шейдеров по оси Y.

MaxComputeWorkgroupSizeZ = 34

Максимальный размер рабочей группы для вычислительных шейдеров по оси Z.

MaxDrawIndexedIndex = 7

Максимальный индекс для индексированной команды рисования.

MaxFramebufferColorAttachments = 1

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

MaxFramebufferHeight = 8

Максимальная высота буфера кадра (в пикселях).

MaxFramebufferWidth = 9

Максимальная ширина буфера кадра (в пикселях).

  • МАРМИТ_МАКС_ТЕКСТУРА_АРРАЙ_ЛЕЙЕРЫ*
MaxPushConstantSize = 20

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

MaxSamplersPerShaderStage = 16

Максимальное количество сэмплеров на одну стадию шейдера.

MaxSamplersPerUniformSet = 3

Максимальное количество пробоотборников, которые можно использовать в одном наборе.

MaxStorageBuffersPerShaderStage = 17

Максимальное количество буферов хранения на этап шейдера.

MaxStorageBuffersPerUniformSet = 4

Максимальное количество буферов хранения на унифицированный набор.

MaxStorageImagesPerShaderStage = 18

Максимальное количество хранимых изображений на каждом этапе шейдера.

MaxStorageImagesPerUniformSet = 5

Максимальное количество хранимых изображений на один унифицированный набор.

MaxTextureArrayLayers = 10

Максимальное количество слоев массива текстур.

MaxTextureSize1D = 11

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

MaxTextureSize2D = 12

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

MaxTextureSize3D = 13

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

MaxTextureSizeCube = 14

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

MaxTexturesPerShaderStage = 15

Максимальное количество текстур на этап шейдера.

MaxTexturesPerUniformSet = 2

Максимальное количество текстур, которые можно использовать в одном наборе униформы.

MaxUniformBufferSize = 21

Максимальный размер равномерного буфера.

MaxUniformBuffersPerShaderStage = 19

Максимальное количество однородных буферов на однородный набор.

MaxUniformBuffersPerUniformSet = 6

Максимальное количество однородных буферов на однородный набор.

MaxVertexInputAttributeOffset = 22

Максимальное смещение атрибута входной вершины.

МАРМИТ_МАКС_ВЕРТЕКС_ИНПУТ_АТРИУТЫ

MaxVertexInputAttributes = 23

Максимальное количество входных атрибутов вершин.

МАРМИТ_MAX_verTEX_INPUT_INDINGs

MaxVertexInputBindingStride = 25

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

MaxVertexInputBindings = 24

Максимальное количество входных привязок вершин.

МАРМИТ_МАКС_ВЕРТЕХ_ИНПУТ_БИНДИД

MaxViewportDimensionsX = 35

Максимальная ширина области просмотра (в пикселях).

MaxViewportDimensionsY = 36

Максимальная высота области просмотра (в пикселях).

MetalfxTemporalScalerMaxScale = 47

Возвращает наибольшее значение для ProjectSettings.rendering/scaling_3d/scale при использовании временного апскейлера MetalFX. Примечание: Возвращаемое значение умножается на коэффициент 1000000 для сохранения 6 цифр точности. Его необходимо разделить на 1000000.0 для преобразования значения в число с плавающей точкой.

MetalfxTemporalScalerMinScale = 46

Возвращает наименьшее значение для ProjectSettings.rendering/scaling_3d/scale при использовании временного апскейлера MetalFX. Примечание: Возвращаемое значение умножается на коэффициент 1000000 для сохранения 6 цифр точности. Его необходимо разделить на 1000000.0 для преобразования значения в число с плавающей точкой.

MinUniformBufferOffsetAlignment = 26

Минимальное равномерное выравнивание смещения буфера.

RenderingDevice.LogicOperation

ЗначениеОписание
And = 1

Логическая операция И.

AndInverted = 4

Логическая операция И с инвертируемым операндом source. См. также RenderingDevice.LogicOperation.AndReverse.

AndReverse = 2

Логическая операция И с инвертируемым операндом destination (назначение). См. также RenderingDevice.LogicOperation.AndInverted.

Clear = 0

Очистить логическую операцию (результат всегда 0). См. также RenderingDevice.LogicOperation.Set.

Copy = 3

Операция копирования логики (сохраняет значение source (источник) как есть). См. также RenderingDevice.LogicOperation.CopyInverted и RenderingDevice.LogicOperation.NoOp.

CopyInverted = 12

Логическая операция НЕ (инвертирует значение). См. также RenderingDevice.LogicOperation.Copy.

Equivalent = 9

Логическая операция «не-исключающее ИЛИ» (XNOR).

Invert = 10

Инвертировать логическую операцию.

Max = 16

Представляет размер перечисления RenderingDevice.LogicOperation.

Nand = 14

Логическая операция НЕ-И (NAND).

NoOp = 5

Логическая операция без операции (сохраняет значение destination как есть). См. также RenderingDevice.LogicOperation.Copy.

Nor = 8

Логическая операция «НЕ-ИЛИ» (NOR).

Or = 7

Логическая операция ИЛИ.

OrInverted = 13

Логическая операция ИЛИ с инвертируемым операндом source. См. также RenderingDevice.LogicOperation.OrReverse.

OrReverse = 11

Логическая операция ИЛИ с инвертируемым операндом destination. См. также RenderingDevice.LogicOperation.OrReverse.

Set = 15

Логическая операция SET (результат всегда 1). См. также RenderingDevice.LogicOperation.Clear.

Xor = 6

Логическая операция «исключающее ИЛИ» (XOR).

RenderingDevice.MemoryType

ЗначениеОписание
Buffers = 1

Память, занятая буферами.

Textures = 0

Память занята текстурами.

Total = 2

Общая занятая память. Это больше, чем сумма RenderingDevice.MemoryType.Textures и RenderingDevice.MemoryType.Buffers, так как включает в себя также прочее использование памяти.

RenderingDevice.PipelineDynamicStateFlags

ЗначениеОписание
BlendConstants = 4
DepthBias = 2

Позволяет динамически изменять смещение глубины.

DepthBounds = 8
LineWidth = 1

Позволяет динамически изменять ширину линий рендеринга.

StencilCompareMask = 16
StencilReference = 64
StencilWriteMask = 32

RenderingDevice.PipelineSpecializationConstantType

ЗначениеОписание
Bool = 0

Константа логической специализации.

Float = 2

Константа специализации с плавающей точкой.

Int = 1

Целочисленная константа специализации.

RenderingDevice.PolygonCullMode

ЗначениеОписание
Back = 2

Использовать отсечение обратных граней полигонов (грани, направленные в сторону от камеры, скрыты).

Disabled = 0

Не используйте отбраковку передней или задней поверхности полигона.

Front = 1

Использовать отсечение фронтальных граней полигонов (грани, направленные в сторону камеры, скрыты).

RenderingDevice.PolygonFrontFace

ЗначениеОписание
Clockwise = 0

Порядок поворота по часовой стрелке позволяет определить, какая грань многоугольника является его передней гранью.

CounterClockwise = 1

Порядок вращения против часовой стрелки для определения того, какая грань многоугольника является его передней гранью.

RenderingDevice.RenderPrimitive

ЗначениеОписание
Lines = 1

Примитив рендеринга списка линий. Линии рисуются отдельно друг от друга.

LinesWithAdjacency = 2

Примитив рендеринга списка линий с соседством. Примечание: Смежность полезна только с геометрическими шейдерами, которые Reckfell не раскрывает.

Linestrips = 3

Примитив рендеринга полосовой линии. Нарисованные линии соединяются с предыдущей вершиной.

LinestripsWithAdjacency = 4

Примитив рендеринга полос линий с соседством. Примечание: Смежность полезна только с геометрическими шейдерами, которые Reckfell не раскрывает.

Max = 11

Представляет размер перечисления RenderingDevice.RenderPrimitive.

Points = 0

Примитив рендеринга точки (с постоянным размером, независимо от расстояния до камеры).

TesselationPatch = 10

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

TriangleStrips = 7

Примитив рендеринга полосы треугольника. Нарисованные треугольники соединяются с предыдущим треугольником.

TriangleStripsWithAjacency = 8

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

TriangleStripsWithRestartIndex = 9

Примитив рендеринга полосы треугольников с включенным перезапуском примитива. Нарисованные треугольники связаны с предыдущим треугольником, но индекс перезапуска примитива может быть указан перед рисованием, чтобы создать вторую полосу треугольников после указанного индекса. Примечание: Совместимо только с индексированными рисунками.

Triangles = 5

Примитив рендеринга списка треугольников. Треугольники рисуются отдельно друг от друга.

TrianglesWithAdjacency = 6

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

RenderingDevice.SamplerBorderColor

ЗначениеОписание
FloatOpaqueBlack = 2

Возвращает непрозрачный черный цвет с плавающей точкой при выборке за пределами диапазона [RenderingDevice.SamplerRepeatMode.ClampToBorder`](/ru/docs/api/renderingdevice#member-clamptoborder-c0127e60c8).

FloatOpaqueWhite = 4

Возвращает непрозрачный белый цвет с плавающей точкой при выборке за пределами диапазона [RenderingDevice.SamplerRepeatMode.ClampToBorder`](/ru/docs/api/renderingdevice#member-clamptoborder-c0127e60c8).

FloatTransparentBlack = 0

Возвращает прозрачный черный цвет с плавающей точкой при выборке за пределами диапазона [RenderingDevice.SamplerRepeatMode.ClampToBorder`](/ru/docs/api/renderingdevice#member-clamptoborder-c0127e60c8).

IntOpaqueBlack = 3

Возвращает целочисленный непрозрачный чёрный цвет при выборке за пределами диапазона [RenderingDevice.SamplerRepeatMode.ClampToBorder`](/ru/docs/api/renderingdevice#member-clamptoborder-c0127e60c8).

IntOpaqueWhite = 5

Возвращает целочисленный непрозрачный белый цвет при выборке за пределами диапазона [RenderingDevice.SamplerRepeatMode.ClampToBorder`](/ru/docs/api/renderingdevice#member-clamptoborder-c0127e60c8).

IntTransparentBlack = 1

Возвращает целочисленный прозрачный чёрный цвет при сэмплировании вне диапазона [RenderingDevice.SamplerRepeatMode.ClampToBorder`](/ru/docs/api/renderingdevice#member-clamptoborder-c0127e60c8).

Max = 6

Представляет размер перечисления RenderingDevice.SamplerBorderColor.

RenderingDevice.SamplerFilter

ЗначениеОписание
Linear = 1

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

Nearest = 0

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

RenderingDevice.SamplerRepeatMode

ЗначениеОписание
ClampToBorder = 3

Образец с отключенным повторением. При выборке за пределами диапазона [RDSamplerState.BorderColor`](/ru/docs/api/rdsamplerstate#member-bordercolor-6ccdb88f0e).

ClampToEdge = 2

Образец с отключенным повторением. При выборке за пределами диапазона [0.0, 1.0] вернуть цвет последнего пикселя на краю.

Max = 5

Представляет размер перечисления RenderingDevice.SamplerRepeatMode.

MirrorClampToEdge = 4

Выборка с включенным зеркальным повторением, но только один раз. При выборке в диапазоне [-1.0, 0.0] вернуть зеркальную версию выборки. При выборке за пределами диапазона [-1.0, 1.0] вернуть цвет последнего пикселя на краю.

MirroredRepeat = 1

Сэмпл с включенным зеркальным повторением. При сэмплировании за пределами диапазона [0.0, 1.0] возвращает зеркальную версию сэмплера. Эта зеркальная версия зеркалируется снова, если сэмплирование происходит дальше, при этом шаблон повторяется бесконечно.

Repeat = 0

Образец с включенным повторением.

RenderingDevice.ShaderLanguage

ЗначениеОписание
Glsl = 0

Язык шейдеров Хронос ГЛСЛ (используется изначально OpenGL и Vulkan). Это язык, используемый для основных шейдеров Reckfell.

Hlsl = 1

Язык шейдеров высокого уровня от Microsoft (используется изначально в Direct3D, но может также использоваться в Vulkan).

RenderingDevice.ShaderStage

ЗначениеОписание
AnyHit = 6

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

AnyHitBit = 64

Любой бит этапа шейдера попадания (см. также RenderingDevice.ShaderStage.AnyHit).

ClosestHit = 7

Этап шейдера "Ближайшее попадание". Он позволяет задать, что происходит, когда луч попадает в ближайшую геометрическую фигуру в сцене.

ClosestHitBit = 128

Бит этапа шейдера ближайшего попадания (см. также RenderingDevice.ShaderStage.ClosestHit).

Compute = 4

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

ComputeBit = 16

Вычислить бит этапа шейдера (см. также RenderingDevice.ShaderStage.Compute).

Fragment = 1

Этап фрагментного шейдера (называемый «пиксельным шейдером» в Direct3D). Его можно использовать для манипулирования пикселями из шейдера.

FragmentBit = 2

Бит этапа фрагментного шейдера (см. также RenderingDevice.ShaderStage.Fragment).

Intersection = 9

Этап шейдера пересечения. Шейдер пересечения для треугольников встроен. Его можно использовать для вычисления пересечений лучей с примитивами, которые не являются треугольниками.

IntersectionBit = 512

Бит этапа шейдера пересечения (см. также RenderingDevice.ShaderStage.Intersection).

Max = 10

Представляет размер перечисления RenderingDevice.ShaderStage.

Miss = 8

Этап промаха шейдера. Это позволяет указать, что произойдет, если луч не попадет ни во что в сцене.

MissBit = 256

Пропущенный бит этапа шейдера (см. также RenderingDevice.ShaderStage.Miss).

Raygen = 5

Этап генерации лучей в шейдере. Его можно использовать для генерации первичных лучей.

RaygenBit = 32

Бит этапа генерации шейдера лучей (см. также RenderingDevice.ShaderStage.Raygen).

TesselationControl = 2

Этап шейдера управления тесселяцией. Это можно использовать для создания дополнительной геометрии из шейдера.

TesselationControlBit = 4

Бит этапа шейдера управления тесселяцией (см. также RenderingDevice.ShaderStage.TesselationControl).

TesselationEvaluation = 3

Этап шейдера оценки тесселяции. Это можно использовать для создания дополнительной геометрии из шейдера.

TesselationEvaluationBit = 8

Бит этапа шейдера оценки тесселяции (см. также RenderingDevice.ShaderStage.TesselationEvaluation).

Vertex = 0

Стадия вершинного шейдера. Это можно использовать для манипулирования вершинами из шейдера (но не для создания новых вершин).

VertexBit = 1

Бит этапа вершинного шейдера (см. также RenderingDevice.ShaderStage.Vertex).

RenderingDevice.StencilOperation

ЗначениеОписание
DecrementAndClamp = 4

Уменьшить существующее значение трафарета и зафиксировать его на минимальном значении, если оно достигнуто. Биты трафарета рассматриваются как беззнаковое целое число.

DecrementAndWrap = 7

Уменьшить значение трафарета и вернуться к максимально представимому беззнаковому значению, если достигнуто минимум. Биты трафарета рассматриваются как беззнаковое целое число.

IncrementAndClamp = 3

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

IncrementAndWrap = 6

Увеличить значение трафарета и перейти к 0 при достижении максимального представимого беззнакового значения. Биты трафарета рассматриваются как беззнаковое целое число.

Invert = 5

Побитовое инвертирование существующего значения трафарета.

Keep = 0

Сохранить текущее значение трафарета.

Max = 8

Представляет размер перечисления RenderingDevice.StencilOperation.

Replace = 2

Замените существующее значение трафарета новым.

Zero = 1

Установите значение трафарета на 0.

RenderingDevice.StorageBufferUsage

ЗначениеОписание
Indirect = 1

RenderingDevice.TextureSamples

ЗначениеОписание
Max = 7

Представляет размер перечисления RenderingDevice.TextureSamples.

Samples1 = 0

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

Samples16 = 4

Выполнить 16 выборок текстур. Не поддерживается на мобильных GPU и многих настольных GPU.

Samples2 = 1

Выполните 2 образца текстуры.

Samples32 = 5

Выполнить 32 выборки текстур. Не поддерживается большинством графических процессоров.

Samples4 = 2

Выполните 4 образца текстуры.

Samples64 = 6

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

Samples8 = 3

Выполнить 8 выборок текстур. Не поддерживается на мобильных GPU (включая Яблоко кремния).

RenderingDevice.TextureSliceType

ЗначениеОписание
Cubemap = 1

Cubemap Кусочек текстуры.

Slice2D = 0

Двухмерный срез текстуры.

Slice2DArray = 3

Двухмерный кусок текстуры.

Slice3D = 2

Трехмерный срез текстуры.

RenderingDevice.TextureSwizzle

ЗначениеОписание
A = 6

Образец альфа-канала.

B = 5

Возьмите образец синего цветового канала.

G = 4

Возьмите образец зеленого цветового канала.

Identity = 0

Верните выбранное значение как есть.

Max = 7

Представляет размер перечисления RenderingDevice.TextureSwizzle.

One = 2

Всегда возвращайте 1.0 при выборке.

R = 3

Возьмите образец красного цветового канала.

Zero = 1

Всегда возвращайте 0.0 при выборке.

RenderingDevice.TextureType

ЗначениеОписание
Cube = 3

Текстура Cubemap.

CubeArray = 6

Array Количество Cubemap текстуры.

Max = 7

Представляет размер перечисления RenderingDevice.TextureType.

Type1D = 0

Одномерная текстура.

Type1DArray = 4

Array 1-мерные текстуры.

Type2D = 1

2-мерная текстура.

Type2DArray = 5

Array двухмерные текстуры.

Type3D = 2

3-мерная текстура.

RenderingDevice.TextureUsageBits

ЗначениеОписание
CanCopyFromBit = 128

Texture может быть источником RenderingDevice.TextureCopy.

CanCopyToBit = 256

Texture может быть пунктом назначения для RenderingDevice.TextureCopy.

CanUpdateBit = 64

Texture можно обновить с помощью RenderingDevice.TextureUpdate.

ColorAttachmentBit = 2

Texture может использоваться как цветное соединение в кадрах.

CpuReadBit = 32

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

DepthResolveAttachmentBit = 4096

Texture может использоваться в качестве крепления для определения глубины/устойчивости в рамном буффере.

DepthStencilAttachmentBit = 4

Texture может использоваться в качестве крепления глубины/уплотнения в рамном буффере.

InputAttachmentBit = 512

Texture могут использоваться в качестве Входное вложение в кадрах-буферах.

SamplingBit = 1

Texture могут быть отобраны.

*ТЕКСТУРА_USAGE_COLOR_ATATACTIANT_BIT

StorageAtomicBit = 16

Texture могут использоваться в качестве Картина хранения с поддержкой атомных операций.

StorageBit = 8

Texture могут использоваться в качестве Картина хранения.

ТЕКСТУРЕ_USAGE_StorAGE_ATOMIC_BIT

RenderingDevice.UniformType

ЗначениеОписание
AccelerationStructure = 12

Униформа структуры ускорения.

Image = 3

Image униформа.

ImageBuffer = 6

Image Базовая форма.

InputAttachment = 9

Input - униформа для крепления.

Max = 13

Представляет размер перечисления RenderingDevice.UniformType.

Sampler = 0

Образец униформы.

SamplerWithTexture = 1

Образец униформы с текстурой.

SamplerWithTextureBuffer = 5

Униформа сэмплера с текстурным буфером.

StorageBuffer = 8

Буфер хранения униформа.

StorageBufferDynamic = 11

То же, что и в случае UNIFORM_TYPE_StorAGE_BUFFER, но для буферов, созданных с помощью BUFFER_KREAT_DYNAMIC_PERSSTENT_BIT. Примечание: Этот флаг не доступен пользователям ReckfellApi из-за того, что он слишком опасен (т.е. неправильное использование может привести к визуальным сбоям). На случай, если пользователи ReckfellApi получат буфер, созданный с таким флагом от Reckfell.

УНИФИКАЦИЯ_ТИПЕ_АксЕЛЯЦИЯ_СТРУКТУРА

Texture = 2

Texture униформа.

TextureBuffer = 4

Texture Базовая форма.

  • Единообразный_TYPE_SAMPLER_WITH_TEXTURE_BUFER*
UniformBuffer = 7

Унифицированная буферная униформа.

UniformBufferDynamic = 10

То же, что и UNIFORM_TYPE_UNIFORM_BUFFER, но для буферов, созданных с помощью BUFFER_KREAT_DYNAMIC_PERSISTENT_BIT. Примечание: Этот флаг не доступен пользователям ReckfellApi из-за того, что он слишком опасен (т.е. неправильное использование может привести к визуальным сбоям). На случай, если пользователи ReckfellApi получат буфер, созданный с таким флагом от Reckfell.

RenderingDevice.VertexFrequency

ЗначениеОписание
Instance = 1

Адресация атрибутов вершин является функцией индекса экземпляра. Это используется для указания скорости, с которой атрибуты вершин извлекаются из буферов.

Vertex = 0

Адресация атрибутов вершин является функцией вершины. Это используется для указания скорости, с которой атрибуты вершин извлекаются из буферов.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.