RenderingDevice
Низкоуровневое устройство для GPU-ресурсов, команд и вычислений.
RenderingDevice создаёт ресурсы с RID, записывает команды и управляет передачей данных. Локальное устройство принадлежит создавшему коду; глобальное устройство движка заимствуется и не должно освобождаться пользователем. Соблюдайте поток устройства, зависимости ресурсов и порядок синхронизации.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Методы182
Barriervoid · Устарело
public void Barrier(RenderingDevice.BarrierMask from = RenderingDevice.BarrierMask.AllBarriers, RenderingDevice.BarrierMask to = RenderingDevice.BarrierMask.AllBarriers);Этот метод ничего не даёт.
| Имя | Тип | По умолчанию |
|---|---|---|
from | RenderingDevice.BarrierMask | RenderingDevice.BarrierMask.AllBarriers |
to | RenderingDevice.BarrierMask | RenderingDevice.BarrierMask.AllBarriers |
BlasBuildError
public Error BlasBuild(Rid blas);Создаёт blas.
| Имя | Тип | По умолчанию |
|---|---|---|
blas | Rid | — |
ErrorBlasCreateRid
public Rid BlasCreate(Reckfell.Collections.Array<RDAccelerationStructureGeometry> geometries, RenderingDevice.AccelerationStructureFlagBits flags);Создает новую структуру ускорения низового уровня (БЛАС). RID ..вернёмся.
Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод.
| Имя | Тип | По умолчанию |
|---|---|---|
geometries | Reckfell.Collections.Array<RDAccelerationStructureGeometry> | — |
flags | RenderingDevice.AccelerationStructureFlagBits | — |
RidBufferClear2 перегрузки
public Error BufferClear(Rid buffer, uint offset, uint sizeBytes);Очищает содержимое buffer, очищая size_bytes байт, начиная с offset.
Выводит ошибку, если:
- размер не кратен четырем
- область, указанная
offset+size_bytes, превышает буфер - в данный момент активен список отрисовки (создан
RenderingDevice.DrawListBegin) - в данный момент активен список вычислений (создан
RenderingDevice.ComputeListBegin)
| Имя | Тип | По умолчанию |
|---|---|---|
buffer | Rid | — |
offset | uint | — |
sizeBytes | uint | — |
Errorpublic Error BufferClear(Rid buffer, uint offset, uint sizeBytes, RenderingDevice.BarrierMask postBarrier);Очищает содержимое buffer, очищая size_bytes байт, начиная с offset.
Выводит ошибку, если:
- размер не кратен четырем
- область, указанная
offset+size_bytes, превышает буфер - в данный момент активен список отрисовки (создан
RenderingDevice.DrawListBegin) - в данный момент активен список вычислений (создан
RenderingDevice.ComputeListBegin)
| Имя | Тип | По умолчанию |
|---|---|---|
buffer | Rid | — |
offset | uint | — |
sizeBytes | uint | — |
postBarrier | RenderingDevice.BarrierMask | — |
ErrorBufferCopyError
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)
| Имя | Тип | По умолчанию |
|---|---|---|
srcBuffer | Rid | — |
dstBuffer | Rid | — |
srcOffset | uint | — |
dstOffset | uint | — |
size | uint | — |
ErrorBufferGetDatabyte[]
public byte[] BufferGetData(Rid buffer, uint offsetBytes = 0, uint sizeBytes = 0);Блокирующее чтение буфера в новый byte[] с ожиданием работы устройства. Смещение и размер в байтах; sizeBytes=0 выбирает полный размер буфера, не остаток после произвольного смещения. Для частичного чтения задавайте размер явно.
| Имя | Тип | По умолчанию |
|---|---|---|
buffer | Rid | — |
offsetBytes | uint | 0 |
sizeBytes | uint | 0 |
bufferRID буфера того же устройства.
offsetBytesНачальное смещение в байтах. Для чтения с ненулевого смещения задавайте sizeBytes явно.
sizeBytesРазмер чтения в байтах; 0 выбирает полный размер буфера, не остаток после offsetBytes.
byte[]Копия прочитанных байтов; это блокирующее чтение.
BufferGetDataAsyncError
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, чтобы улучшить скорость передачи за счет дополнительной памяти.
| Имя | Тип | По умолчанию |
|---|---|---|
buffer | Rid | — |
callback | Callable | — |
offsetBytes | uint | 0 |
sizeBytes | uint | 0 |
ErrorBufferGetDeviceAddressulong
public ulong BufferGetDeviceAddress(Rid buffer);Возвращает адрес указанного buffer, который может быть передан шейдерам любым способом для доступа к базовым данным. Буфер должен быть создан с включенной этой функцией.
Примечание: Вы должны проверить, поддерживает ли графический процессор эту функцию, вызвав RenderingDevice.HasFeature с RenderingDevice.Features.BufferDeviceAddress в качестве параметра.
| Имя | Тип | По умолчанию |
|---|---|---|
buffer | Rid | — |
ulongBufferUpdate4 перегрузки
public Error BufferUpdate(Rid buffer, uint offset, uint sizeBytes, byte[] data);Записывает sizeBytes байтов в буфер со смещения offset. Вызывайте вне активного compute/draw/raytracing list, передайте достаточно исходных байтов и оставайтесь в пределах выделенного буфера. Это не число элементов.
| Имя | Тип | По умолчанию |
|---|---|---|
buffer | Rid | — |
offset | uint | — |
sizeBytes | uint | — |
data | byte[] | — |
bufferRID буфера того же устройства.
offsetСмещение назначения в байтах.
sizeBytesЧисло записываемых байтов; data должны содержать не меньше этого количества.
dataИсходные байты, не массив элементов произвольной ширины.
ErrorError.Ok при успешной записи либо код ошибки.
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)
| Имя | Тип | По умолчанию |
|---|---|---|
buffer | Rid | — |
offset | uint | — |
sizeBytes | uint | — |
data | byte[] | — |
postBarrier | RenderingDevice.BarrierMask | — |
Errorpublic Error BufferUpdate(Rid buffer, uint offset, uint sizeBytes, ReadOnlySpan<byte> data);Обновляет область размером size_bytes байт, начиная с offset, в буфере с указанными data.
Выводит ошибку, если:
- область, указанная
offset+size_bytes, превышает буфер - в данный момент активен список отрисовки (создан
RenderingDevice.DrawListBegin) - в данный момент активен список вычислений (создан
RenderingDevice.ComputeListBegin)
| Имя | Тип | По умолчанию |
|---|---|---|
buffer | Rid | — |
offset | uint | — |
sizeBytes | uint | — |
data | ReadOnlySpan<byte> | — |
Errorpublic 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)
| Имя | Тип | По умолчанию |
|---|---|---|
buffer | Rid | — |
offset | uint | — |
sizeBytes | uint | — |
data | ReadOnlySpan<byte> | — |
postBarrier | RenderingDevice.BarrierMask | — |
ErrorCaptureTimestampvoid
public void CaptureTimestamp(string name);Создает маркер временной метки с указанным name. Используется для отчетов о производительности с методами RenderingDevice.GetCapturedTimestampCpuTime, RenderingDevice.GetCapturedTimestampGpuTime и RenderingDevice.GetCapturedTimestampName.
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
ComputeListAddBarriervoid
public void ComputeListAddBarrier(long computeList);Повышает вычислительный барьер Vulkan в указанном compute_list.
| Имя | Тип | По умолчанию |
|---|---|---|
computeList | long | — |
ComputeListBegin2 перегрузки
public long ComputeListBegin();Начинает запись compute list в потоке устройства. Одновременно допускается один активный compute list; после привязки pipeline и ресурсов завершите запись через ComputeListEnd.
longИдентификатор для последующих команд активного списка.
public long ComputeListBegin(bool allowDrawOverlap);Начинает список команд вычислений, созданных с помощью методов compute_*. Возвращаемое значение должно быть передано другим функциям compute_list_*.
Нельзя одновременно создавать несколько списков вычислений; сначала необходимо завершить предыдущий список вычислений с помощью RenderingDevice.ComputeListEnd.
Простая операция вычислений может выглядеть следующим образом (код не является полным примером):
| Имя | Тип | По умолчанию |
|---|---|---|
allowDrawOverlap | bool | — |
longComputeListBindComputePipelinevoid
public void ComputeListBindComputePipeline(long computeList, Rid computePipeline);Привязывает compute pipeline того же устройства к активному списку. До dispatch также задайте совместимые наборы ресурсов и требуемые шейдером параметры.
| Имя | Тип | По умолчанию |
|---|---|---|
computeList | long | — |
computePipeline | Rid | — |
computeListИдентификатор активного compute list этого устройства.
computePipelineRID совместимого compute pipeline того же устройства.
ComputeListBindUniformSetvoid
public void ComputeListBindUniformSet(long computeList, Rid uniformSet, uint setIndex);Привязывает uniform set к номеру set активного compute pipeline. setIndex соответствует GLSL set, а не RDUniform.Binding; layout должен быть совместим с шейдером pipeline.
| Имя | Тип | По умолчанию |
|---|---|---|
computeList | long | — |
uniformSet | Rid | — |
setIndex | uint | — |
computeListИдентификатор активного compute list этого устройства.
uniformSetRID набора с layout, совместимым с шейдером pipeline.
setIndexНомер GLSL set для привязки набора.
ComputeListDispatchvoid
public void ComputeListDispatch(long computeList, uint xGroups, uint yGroups, uint zGroups);Записывает запуск указанного числа рабочих групп, не отдельных потоков. Числа групп должны быть положительными и укладываться в лимиты устройства; неполную последнюю группу ограничивайте проверкой индекса в шейдере.
| Имя | Тип | По умолчанию |
|---|---|---|
computeList | long | — |
xGroups | uint | — |
yGroups | uint | — |
zGroups | uint | — |
computeListИдентификатор активного compute list этого устройства.
xGroupsПоложительное число рабочих групп по X в пределах лимита устройства.
yGroupsПоложительное число рабочих групп по Y в пределах лимита устройства.
zGroupsПоложительное число рабочих групп по Z в пределах лимита устройства.
ComputeListDispatchIndirectvoid
public void ComputeListDispatchIndirect(long computeList, Rid buffer, uint offset);Отправляет список вычислений для обработки на GPU с заданными числами групп, сохраненными в buffer по адресу offset. Буфер должен быть создан с флагом RenderingDevice.StorageBufferUsage.Indirect.
| Имя | Тип | По умолчанию |
|---|---|---|
computeList | long | — |
buffer | Rid | — |
offset | uint | — |
ComputeListEnd2 перегрузки
public void ComputeListEnd();Завершает запись активного compute list. Это не ожидание GPU: локальное устройство требует отправки Submit и подходящей синхронизации до использования результата на CPU.
public void ComputeListEnd(RenderingDevice.BarrierMask postBarrier);Завершает список команд вычисления, созданных с помощью методов compute_*.
| Имя | Тип | По умолчанию |
|---|---|---|
postBarrier | RenderingDevice.BarrierMask | — |
ComputeListSetPushConstant2 перегрузки
public void ComputeListSetPushConstant(long computeList, byte[] buffer, uint sizeBytes);Устанавливает данные константы push в buffer для указанного compute_list. Шейдер определяет, как используются эти двоичные данные. Размер буфера в байтах также должен быть указан в size_bytes (его можно получить, вызвав метод PackedByteArray.size для переданного buffer).
| Имя | Тип | По умолчанию |
|---|---|---|
computeList | long | — |
buffer | byte[] | — |
sizeBytes | uint | — |
public void ComputeListSetPushConstant(long computeList, ReadOnlySpan<byte> buffer, uint sizeBytes);Устанавливает данные константы push в buffer для указанного compute_list. Шейдер определяет, как используются эти двоичные данные. Размер буфера в байтах также должен быть указан в size_bytes (его можно получить, вызвав метод PackedByteArray.size для переданного buffer).
| Имя | Тип | По умолчанию |
|---|---|---|
computeList | long | — |
buffer | ReadOnlySpan<byte> | — |
sizeBytes | uint | — |
ComputePipelineCreateRid
public Rid ComputePipelineCreate(Rid shader, Reckfell.Collections.Array<RDPipelineSpecializationConstant> specializationConstants = null);Создаёт compute pipeline из compute-шейдера того же устройства. Обычный графический шейдер не подходит. Pipeline можно повторно использовать с совместимыми наборами ресурсов.
| Имя | Тип | По умолчанию |
|---|---|---|
shader | Rid | — |
specializationConstants | Reckfell.Collections.Array<RDPipelineSpecializationConstant> | null |
shaderRID шейдера того же устройства с соответствующим layout.
specializationConstantsНеобязательные значения констант специализации pipeline.
RidRID созданного ресурса этого устройства; проверяйте валидность.
ComputePipelineIsValidbool
public bool ComputePipelineIsValid(Rid computePipeline);Возвращает true, если вычислительный конвейер, указанный RID compute_pipeline, действителен, в противном случае — false.
| Имя | Тип | По умолчанию |
|---|---|---|
computePipeline | Rid | — |
boolCreateLocalDeviceRenderingDevice
public RenderingDevice CreateLocalDevice();Создайте новый локальный RenderingDevice. Это наиболее полезно для выполнения вычислительных операций на GPU независимо от остального движка.
RenderingDeviceDrawCommandBeginLabelvoid
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.
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
color | Color | — |
DrawCommandEndLabelvoid
public void DrawCommandEndLabel();Завершает область метки отладки буфера команд, начатую вызовом RenderingDevice.DrawCommandBeginLabel.
DrawCommandInsertLabelvoid · Устарело
public void DrawCommandInsertLabel(string name, Color color);Этот метод ничего не даёт.
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
color | Color | — |
DrawListBegin9 перегрузок
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)| Имя | Тип | По умолчанию |
|---|---|---|
framebuffer | Rid | — |
drawFlags | RenderingDevice.DrawFlags | RenderingDevice.DrawFlags.DefaultAll |
clearColorValues | Color[] | null |
clearDepthValue | float | 1f |
clearStencilValue | uint | 0 |
region | Rect2? | default |
breadcrumb | uint | 0 |
clearColorValuesЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<Color>().
regionЕсли параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).
longpublic 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)| Имя | Тип | По умолчанию |
|---|---|---|
framebuffer | Rid | — |
drawFlags | RenderingDevice.DrawFlags | — |
clearColorValues | ReadOnlySpan<Color> | — |
clearDepthValue | float | — |
clearStencilValue | uint | — |
region | Rect2? | — |
breadcrumb | uint | — |
regionЕсли параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).
longpublic 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)| Имя | Тип | По умолчанию |
|---|---|---|
framebuffer | Rid | — |
initialColorAction | RenderingDevice.InitialAction | — |
finalColorAction | RenderingDevice.FinalAction | — |
initialDepthAction | RenderingDevice.InitialAction | — |
finalDepthAction | RenderingDevice.FinalAction | — |
clearColorValues | Color[] | — |
clearDepth | float | — |
clearStencil | uint | — |
region | Rect2? | — |
clearColorValuesЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<Color>().
regionЕсли параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).
longpublic 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)| Имя | Тип | По умолчанию |
|---|---|---|
framebuffer | Rid | — |
initialColorAction | RenderingDevice.InitialAction | — |
finalColorAction | RenderingDevice.FinalAction | — |
initialDepthAction | RenderingDevice.InitialAction | — |
finalDepthAction | RenderingDevice.FinalAction | — |
clearColorValues | Color[] | — |
clearDepth | float | — |
clearStencil | uint | — |
region | Rect2? | — |
storageTextures | Reckfell.Collections.Array | — |
longpublic 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)| Имя | Тип | По умолчанию |
|---|---|---|
framebuffer | Rid | — |
initialColorAction | RenderingDevice.InitialAction | — |
finalColorAction | RenderingDevice.FinalAction | — |
initialDepthAction | RenderingDevice.InitialAction | — |
finalDepthAction | RenderingDevice.FinalAction | — |
clearColorValues | Color[] | — |
clearDepth | float | — |
clearStencil | uint | — |
region | Rect2? | — |
storageTextures | Reckfell.Collections.Array<Rid> | — |
clearColorValuesЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<Color>().
regionЕсли параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).
longpublic 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)| Имя | Тип | По умолчанию |
|---|---|---|
framebuffer | Rid | — |
initialColorAction | RenderingDevice.InitialAction | — |
finalColorAction | RenderingDevice.FinalAction | — |
initialDepthAction | RenderingDevice.InitialAction | — |
finalDepthAction | RenderingDevice.FinalAction | — |
clearColorValues | Color[] | — |
clearDepth | float | — |
clearStencil | uint | — |
region | Rect2? | — |
breadcrumb | uint | — |
clearColorValuesЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<Color>().
regionЕсли параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).
longpublic 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)| Имя | Тип | По умолчанию |
|---|---|---|
framebuffer | Rid | — |
initialColorAction | RenderingDevice.InitialAction | — |
finalColorAction | RenderingDevice.FinalAction | — |
initialDepthAction | RenderingDevice.InitialAction | — |
finalDepthAction | RenderingDevice.FinalAction | — |
clearColorValues | ReadOnlySpan<Color> | — |
clearDepth | float | — |
clearStencil | uint | — |
region | Rect2? | — |
regionЕсли параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).
longpublic 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)| Имя | Тип | По умолчанию |
|---|---|---|
framebuffer | Rid | — |
initialColorAction | RenderingDevice.InitialAction | — |
finalColorAction | RenderingDevice.FinalAction | — |
initialDepthAction | RenderingDevice.InitialAction | — |
finalDepthAction | RenderingDevice.FinalAction | — |
clearColorValues | ReadOnlySpan<Color> | — |
clearDepth | float | — |
clearStencil | uint | — |
region | Rect2? | — |
storageTextures | Reckfell.Collections.Array<Rid> | — |
regionЕсли параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).
longpublic 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)| Имя | Тип | По умолчанию |
|---|---|---|
framebuffer | Rid | — |
initialColorAction | RenderingDevice.InitialAction | — |
finalColorAction | RenderingDevice.FinalAction | — |
initialDepthAction | RenderingDevice.InitialAction | — |
finalDepthAction | RenderingDevice.FinalAction | — |
clearColorValues | ReadOnlySpan<Color> | — |
clearDepth | float | — |
clearStencil | uint | — |
region | Rect2? | — |
breadcrumb | uint | — |
regionЕсли параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).
longDrawListBeginForScreenlong
public long DrawListBeginForScreen(int screen = 0, Color? clearColor = default);Высокоуровневый вариант RenderingDevice.DrawListBegin, с параметрами, автоматически настраиваемыми для рисования в окне, указанном идентификатором screen.
Примечание: Не может использоваться с локальными RenderingDevices, так как у них нет экрана. При вызове на локальном RenderingDevice RenderingDevice.DrawListBeginForScreen возвращает RenderingDevice.InvalidId.
| Имя | Тип | По умолчанию |
|---|---|---|
screen | int | 0 |
clearColor | Color? | default |
clearColorЕсли параметр не имеет значения, то значение по умолчанию: new Color(0.0f, 0.0f, 0.0f, 1.0f).
longDrawListBeginSplit2 перегрузки · Есть устаревшие
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[].
| Имя | Тип | По умолчанию |
|---|---|---|
framebuffer | Rid | — |
splits | uint | — |
initialColorAction | RenderingDevice.InitialAction | — |
finalColorAction | RenderingDevice.FinalAction | — |
initialDepthAction | RenderingDevice.InitialAction | — |
finalDepthAction | RenderingDevice.FinalAction | — |
clearColorValues | Color[] | null |
clearDepth | float | 1f |
clearStencil | uint | 0 |
region | Rect2? | default |
storageTextures | Reckfell.Collections.Array<Rid> | null |
clearColorValuesЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<Color>().
regionЕсли параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).
long[]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[].
| Имя | Тип | По умолчанию |
|---|---|---|
framebuffer | Rid | — |
splits | uint | — |
initialColorAction | RenderingDevice.InitialAction | — |
finalColorAction | RenderingDevice.FinalAction | — |
initialDepthAction | RenderingDevice.InitialAction | — |
finalDepthAction | RenderingDevice.FinalAction | — |
clearColorValues | ReadOnlySpan<Color> | — |
clearDepth | float | — |
clearStencil | uint | — |
region | Rect2? | — |
storageTextures | Reckfell.Collections.Array<Rid> | — |
regionЕсли параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).
long[]DrawListBindIndexArrayvoid
public void DrawListBindIndexArray(long drawList, Rid indexArray);Связывает index_array с указанным draw_list.
| Имя | Тип | По умолчанию |
|---|---|---|
drawList | long | — |
indexArray | Rid | — |
DrawListBindRenderPipelinevoid
public void DrawListBindRenderPipeline(long drawList, Rid renderPipeline);Связывает render_pipeline с указанным draw_list.
| Имя | Тип | По умолчанию |
|---|---|---|
drawList | long | — |
renderPipeline | Rid | — |
DrawListBindUniformSetvoid
public void DrawListBindUniformSet(long drawList, Rid uniformSet, uint setIndex);Связывает uniform_set с указанным draw_list. Также необходимо указать set_index, который представляет собой идентификатор, начинающийся с 0, который должен соответствовать ожидаемому списку отрисовки.
| Имя | Тип | По умолчанию |
|---|---|---|
drawList | long | — |
uniformSet | Rid | — |
setIndex | uint | — |
DrawListBindVertexArrayvoid
public void DrawListBindVertexArray(long drawList, Rid vertexArray);Связывает vertex_array с указанным draw_list.
| Имя | Тип | По умолчанию |
|---|---|---|
drawList | long | — |
vertexArray | Rid | — |
DrawListBindVertexBuffersFormat2 перегрузки
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.
| Имя | Тип | По умолчанию |
|---|---|---|
drawList | long | — |
vertexFormat | long | — |
vertexCount | uint | — |
vertexBuffers | Reckfell.Collections.Array<Rid> | — |
offsets | long[] | null |
offsetsЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<long>().
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.
| Имя | Тип | По умолчанию |
|---|---|---|
drawList | long | — |
vertexFormat | long | — |
vertexCount | uint | — |
vertexBuffers | Reckfell.Collections.Array<Rid> | — |
offsets | ReadOnlySpan<long> | — |
DrawListDisableScissorvoid
public void DrawListDisableScissor(long drawList);Удаляет и отключает прямоугольник ножниц для указанного draw_list. См. также RenderingDevice.DrawListEnableScissor.
| Имя | Тип | По умолчанию |
|---|---|---|
drawList | long | — |
DrawListDrawvoid
public void DrawListDraw(long drawList, bool useIndices, uint instances, uint proceduralVertexCount = 0);Отправляет draw_list для рендеринга на GPU. Это растровый эквивалент RenderingDevice.ComputeListDispatch.
| Имя | Тип | По умолчанию |
|---|---|---|
drawList | long | — |
useIndices | bool | — |
instances | uint | — |
proceduralVertexCount | uint | 0 |
DrawListDrawIndirectvoid
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.
| Имя | Тип | По умолчанию |
|---|---|---|
drawList | long | — |
useIndices | bool | — |
buffer | Rid | — |
offset | uint | 0 |
drawCount | uint | 1 |
stride | uint | 0 |
DrawListEnableScissorvoid
public void DrawListEnableScissor(long drawList, Rect2? rect = default);Создает прямоугольник-ножницы и включает его для указанного draw_list. Прямоугольники-ножницы используются для обрезки путем отбрасывания фрагментов, которые выходят за пределы указанной прямоугольной части экрана. См. также RenderingDevice.DrawListDisableScissor.
Примечание: Указанный rect автоматически пересекается с размерами экрана, что означает, что он не может превышать размеры экрана.
| Имя | Тип | По умолчанию |
|---|---|---|
drawList | long | — |
rect | Rect2? | default |
rectЕсли параметр не имеет значения, то значение по умолчанию: new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)).
DrawListEnd2 перегрузки
public void DrawListEnd();Завершает список команд растрового рисования, созданных с помощью методов draw_*.
public void DrawListEnd(RenderingDevice.BarrierMask postBarrier);Завершает список команд растрового рисования, созданных с помощью методов draw_*.
| Имя | Тип | По умолчанию |
|---|---|---|
postBarrier | RenderingDevice.BarrierMask | — |
DrawListSetBlendConstantsvoid
public void DrawListSetBlendConstants(long drawList, Color color);Устанавливает константы смешивания для указанного draw_list в color. Константы смешивания используются только в том случае, если графический конвейер создан с установленным флагом RenderingDevice.PipelineDynamicStateFlags.BlendConstants.
| Имя | Тип | По умолчанию |
|---|---|---|
drawList | long | — |
color | Color | — |
DrawListSetPushConstant2 перегрузки
public void DrawListSetPushConstant(long drawList, byte[] buffer, uint sizeBytes);Устанавливает данные константы push в buffer для указанного draw_list. Шейдер определяет, как используются эти двоичные данные. Размер буфера в байтах также должен быть указан в size_bytes (его можно получить, вызвав метод PackedByteArray.size для переданного buffer).
| Имя | Тип | По умолчанию |
|---|---|---|
drawList | long | — |
buffer | byte[] | — |
sizeBytes | uint | — |
public void DrawListSetPushConstant(long drawList, ReadOnlySpan<byte> buffer, uint sizeBytes);Устанавливает данные константы push в buffer для указанного draw_list. Шейдер определяет, как используются эти двоичные данные. Размер буфера в байтах также должен быть указан в size_bytes (его можно получить, вызвав метод PackedByteArray.size для переданного buffer).
| Имя | Тип | По умолчанию |
|---|---|---|
drawList | long | — |
buffer | ReadOnlySpan<byte> | — |
sizeBytes | uint | — |
DrawListSwitchToNextPasslong
public long DrawListSwitchToNextPass();Переключается на следующий проход розыгрыша.
longDrawListSwitchToNextPassSplitlong[] · Устарело
public long[] DrawListSwitchToNextPassSplit(uint splits);Этот метод ничего не делает и всегда возвращает пустой long[].
| Имя | Тип | По умолчанию |
|---|---|---|
splits | uint | — |
long[]FramebufferCreateRid
public Rid FramebufferCreate(Reckfell.Collections.Array<Rid> textures, long validateWithFormat = -1, uint viewCount = 1);Создаёт новый рам-бюффер. Доступ к нему можно получить с помощью RID ..вернёмся.
Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод.
Это будет автоматически освобождено, когда любой из textures освободился.
| Имя | Тип | По умолчанию |
|---|---|---|
textures | Reckfell.Collections.Array<Rid> | — |
validateWithFormat | long | -1 |
viewCount | uint | 1 |
RidFramebufferCreateEmptyRid
public Rid FramebufferCreateEmpty(Vector2I size, RenderingDevice.TextureSamples samples = RenderingDevice.TextureSamples.Samples1, long validateWithFormat = -1);Создает новый пустой буфер кадра. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
size | Vector2I | — |
samples | RenderingDevice.TextureSamples | RenderingDevice.TextureSamples.Samples1 |
validateWithFormat | long | -1 |
RidFramebufferCreateMultipassRid
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 освободился.
| Имя | Тип | По умолчанию |
|---|---|---|
textures | Reckfell.Collections.Array<Rid> | — |
passes | Reckfell.Collections.Array<RDFramebufferPass> | — |
validateWithFormat | long | -1 |
viewCount | uint | 1 |
RidFramebufferFormatCreatelong
public long FramebufferFormatCreate(Reckfell.Collections.Array<RDAttachmentFormat> attachments, uint viewCount = 1);Создать новый формат makebuffer с указанным attachments и view_count. Возвращает уникальный идентификатор формата рамбуффера.
Если view_count больше или равно 2, позволяет мультивидение, которое используется для VR-просмотра. Это требует поддержки для расширения Мультивидение Vulkan.
| Имя | Тип | По умолчанию |
|---|---|---|
attachments | Reckfell.Collections.Array<RDAttachmentFormat> | — |
viewCount | uint | 1 |
longFramebufferFormatCreateEmptylong
public long FramebufferFormatCreateEmpty(RenderingDevice.TextureSamples samples = RenderingDevice.TextureSamples.Samples1);Создает новый пустой формат буфера кадра с указанным числом samples и возвращает его идентификатор.
| Имя | Тип | По умолчанию |
|---|---|---|
samples | RenderingDevice.TextureSamples | RenderingDevice.TextureSamples.Samples1 |
longFramebufferFormatCreateMultipasslong
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.
| Имя | Тип | По умолчанию |
|---|---|---|
attachments | Reckfell.Collections.Array<RDAttachmentFormat> | — |
passes | Reckfell.Collections.Array<RDFramebufferPass> | — |
viewCount | uint | 1 |
longFramebufferFormatGetTextureSamplesRenderingDevice.TextureSamples
public RenderingDevice.TextureSamples FramebufferFormatGetTextureSamples(long format, uint renderPass = 0);Возвращает количество образцов текстуры, используемых для заданного идентификатора буфера кадра format (возвращается RenderingDevice.FramebufferGetFormat).
| Имя | Тип | По умолчанию |
|---|---|---|
format | long | — |
renderPass | uint | 0 |
RenderingDevice.TextureSamplesFramebufferGetFormatlong
public long FramebufferGetFormat(Rid framebuffer);Возвращает идентификатор формата буфера кадра, заданного RID framebuffer. Этот идентификатор гарантированно уникален для тех же форматов и не требует освобождения.
| Имя | Тип | По умолчанию |
|---|---|---|
framebuffer | Rid | — |
longFramebufferIsValidbool
public bool FramebufferIsValid(Rid framebuffer);Возвращает true, если буфер кадра, указанный в RID framebuffer, действителен, в противном случае — false.
| Имя | Тип | По умолчанию |
|---|---|---|
framebuffer | Rid | — |
boolFreeRidvoid
public void FreeRid(Rid rid);Освобождает принадлежащий этому RenderingDevice ресурс. Учитывайте зависимости и завершение работы; не используйте освобождённый RID. Ненулевой Rid.IsValid сам по себе не доказывает, что ресурс ещё существует.
| Имя | Тип | По умолчанию |
|---|---|---|
rid | Rid | — |
ridСуществующий RID ресурса, принадлежащего этому устройству.
FullBarriervoid · Устарело
public void FullBarrier();Этот метод ничего не даёт.
GetCapturedTimestampCpuTimeulong
public ulong GetCapturedTimestampCpuTime(uint index);Возвращает временную метку в процессорном времени для шага рендеринга, указанного index (в микросекундах с момента запуска движка). См. также RenderingDevice.GetCapturedTimestampGpuTime и RenderingDevice.CaptureTimestamp.
| Имя | Тип | По умолчанию |
|---|---|---|
index | uint | — |
ulongGetCapturedTimestampGpuTimeulong
public ulong GetCapturedTimestampGpuTime(uint index);Возвращает время в времени GPU для этапа отображения, указанного index (в наносекундах с момента запуска двигателя). См. также RenderingDevice.GetCapturedTimestampCpuTime и RenderingDevice.CaptureTimestamp.
| Имя | Тип | По умолчанию |
|---|---|---|
index | uint | — |
ulongGetCapturedTimestampNamestring
public string GetCapturedTimestampName(uint index);Возвращает имя временной метки для шага рендеринга, указанного index. См. также RenderingDevice.CaptureTimestamp.
| Имя | Тип | По умолчанию |
|---|---|---|
index | uint | — |
stringGetCapturedTimestampsCountuint
public uint GetCapturedTimestampsCount();Возвращает общее количество временных меток (шагов рендеринга), доступных для профилирования.
uintGetCapturedTimestampsFrameulong
public ulong GetCapturedTimestampsFrame();Возвращает индекс последнего отрисованного кадра, временные метки которого доступны для запроса.
ulongGetDeviceAllocationCountulong
public ulong GetDeviceAllocationCount();Возвращает количество выделений, выполненных графическим процессором для внутренних структур драйвера. Используется Vulkan только в отладочных сборках и может возвращать 0, если эта информация не отслеживается или неизвестна.
ulongGetDeviceAllocsByObjectTypeulong
public ulong GetDeviceAllocsByObjectType(uint type);То же, что и RenderingDevice.GetDeviceAllocationCount, но отфильтровано для заданного типа объекта.
Аргумент типа должен быть в диапазоне [RenderingDevice.GetTrackedObjectTypeCount`](/ru/docs/api/renderingdevice#member-gettrackedobjecttypecount-6ea83230eb) равен 0, то аргумент типа игнорируется и всегда возвращает 0.
Это используется только Vulkan в отладочных сборках и может возвращать 0, когда эта информация не отслеживается или неизвестна.
| Имя | Тип | По умолчанию |
|---|---|---|
type | uint | — |
ulongGetDeviceMemoryByObjectTypeulong
public ulong GetDeviceMemoryByObjectType(uint type);То же, что и RenderingDevice.GetDeviceTotalMemory, но отфильтровано для заданного типа объекта.
Аргумент типа должен быть в диапазоне [RenderingDevice.GetTrackedObjectTypeCount`](/ru/docs/api/renderingdevice#member-gettrackedobjecttypecount-6ea83230eb) равен 0, то аргумент типа игнорируется и всегда возвращает 0.
Это используется только Vulkan в отладочных сборках и может возвращать 0, когда эта информация не отслеживается или неизвестна.
| Имя | Тип | По умолчанию |
|---|---|---|
type | uint | — |
ulongGetDeviceNamestring
public string GetDeviceName();Возвращает имя видеоадаптера (например, "GeForce GTX 1080/PCIe/SSE2"). Эквивалентно RenderingServer.GetVideoAdapterName. См. также RenderingDevice.GetDeviceVendorName.
stringGetDevicePipelineCacheUuidstring
public string GetDevicePipelineCacheUuid();Возвращает универсальный уникальный идентификатор для кэша конвейера. Он используется для кэширования файлов шейдеров на диске, что позволяет избежать перекомпиляции шейдеров при последующих запусках движка. Этот UUID зависит от модели видеокарты, а также от версии драйвера. Поэтому обновление графических драйверов сделает кэш шейдеров недействительным.
stringGetDeviceTotalMemoryulong
public ulong GetDeviceTotalMemory();Возвращает, сколько байт использует графический процессор. Используется только Vulkan в отладочных сборках и может возвращать 0, если эта информация не отслеживается или неизвестна.
ulongGetDeviceVendorNamestring
public string GetDeviceVendorName();Возвращает поставщика видеоадаптера (например, "Корпорация NVIDIA"). Эквивалентно RenderingServer.GetVideoAdapterVendor. См. также RenderingDevice.GetDeviceName.
stringGetDriverAllocationCountulong
public ulong GetDriverAllocationCount();Возвращает количество выделений, выполненных драйвером GPU для внутренних структур драйвера. Используется Vulkan только в отладочных сборках и может возвращать 0, если эта информация не отслеживается или неизвестна.
ulongGetDriverAllocsByObjectTypeulong
public ulong GetDriverAllocsByObjectType(uint type);То же, что и RenderingDevice.GetDriverAllocationCount, но отфильтровано для заданного типа объекта.
Аргумент типа должен быть в диапазоне [RenderingDevice.GetTrackedObjectTypeCount`](/ru/docs/api/renderingdevice#member-gettrackedobjecttypecount-6ea83230eb) равен 0, то аргумент типа игнорируется и всегда возвращает 0.
Это используется только Vulkan в отладочных сборках и может возвращать 0, когда эта информация не отслеживается или неизвестна.
| Имя | Тип | По умолчанию |
|---|---|---|
type | uint | — |
ulongGetDriverAndDeviceMemoryReportstring
public string GetDriverAndDeviceMemoryReport();Возвращает строковый отчет в формате CSV, используя следующие методы:
RenderingDevice.GetTrackedObjectNameRenderingDevice.GetTrackedObjectTypeCountRenderingDevice.GetDriverTotalMemoryRenderingDevice.GetDriverAllocationCountRenderingDevice.GetDriverMemoryByObjectTypeRenderingDevice.GetDriverAllocsByObjectTypeRenderingDevice.GetDeviceTotalMemoryRenderingDevice.GetDeviceAllocationCountRenderingDevice.GetDeviceMemoryByObjectTypeRenderingDevice.GetDeviceAllocsByObjectTypeЭто используется только Vulkan в отладочных сборках. Reckfell также должен быть запущен с--extra-gpu-memory-trackingКомандный аргумент.
stringGetDriverMemoryByObjectTypeulong
public ulong GetDriverMemoryByObjectType(uint type);То же, что и RenderingDevice.GetDriverTotalMemory, но отфильтровано для заданного типа объекта.
Аргумент типа должен быть в диапазоне [RenderingDevice.GetTrackedObjectTypeCount`](/ru/docs/api/renderingdevice#member-gettrackedobjecttypecount-6ea83230eb) равен 0, то аргумент типа игнорируется и всегда возвращает 0.
Это используется только Vulkan в отладочных сборках и может возвращать 0, когда эта информация не отслеживается или неизвестна.
| Имя | Тип | По умолчанию |
|---|---|---|
type | uint | — |
ulongGetDriverResourceulong
public ulong GetDriverResource(RenderingDevice.DriverResource resource, Rid rid, ulong index);Возвращает уникальный ID идентификатор драйвера resource для указанного rid. Некоторые типы ресурсов драйвера игнорируют указанный rid. index всегда игнорируется, но должен быть указан в любом случае.
| Имя | Тип | По умолчанию |
|---|---|---|
resource | RenderingDevice.DriverResource | — |
rid | Rid | — |
index | ulong | — |
ulongGetDriverTotalMemoryulong
public ulong GetDriverTotalMemory();Возвращает, сколько байтов драйвер GPU использует для внутренних структур драйвера. Используется только Vulkan в отладочных сборках и может возвращать 0, если эта информация не отслеживается или неизвестна.
ulongGetFrameDelayuint
public uint GetFrameDelay();Возвращает количество кадров, хранящееся в графическом API. Более высокие значения приводят к более высокой задержке ввода, но с более стабильной пропускной способностью. Для основного RenderingDevice кадры циклически повторяются (обычно 3 с включенной тройной буферизацией V-Sync). Однако локальные RenderingDevice имеют только 1 кадр.
uintGetMemoryUsageulong
public ulong GetMemoryUsage(RenderingDevice.MemoryType type);Возвращает использование памяти в байтах, соответствующих указанному type. При использовании Vulkan эта статистика рассчитывается с помощью Отправитель памяти Вулкана.
| Имя | Тип | По умолчанию |
|---|---|---|
type | RenderingDevice.MemoryType | — |
ulongGetPerfReportstring
public string GetPerfReport();Возвращает строку с отчетом о производительности из прошлого кадра. Обновляет каждый кадр.
stringGetTrackedObjectNamestring
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аргументом командной строки.
| Имя | Тип | По умолчанию |
|---|---|---|
typeIndex | uint | — |
stringGetTrackedObjectTypeCountulong
public ulong GetTrackedObjectTypeCount();Возвращает количество типов отслеживаемых объектов.
Используется только Vulkan в отладочных сборках. Reckfell также должен быть запущен с --extra-gpu-memory-tracking аргументом командной строки.
ulongHasFeaturebool
public bool HasFeature(RenderingDevice.Features feature);Возвращает true, если feature поддерживается графическим процессором.
| Имя | Тип | По умолчанию |
|---|---|---|
feature | RenderingDevice.Features | — |
boolHitSbtCreateRid
public Rid HitSbtCreate(Rid raytracingPipeline, uint initialHitGroupCapacity);Создаёт новую связную таблицу хит-тенера (SBT). RID ..вернёмся.
Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод.
Это будет автоматически освобождено, когда raytracing_pipeline освободился.
Поражённый SBT переизменяется по мере необходимости. initial_hit_group_capacity используется для передачи первоначальной памяти поддержки.
| Имя | Тип | По умолчанию |
|---|---|---|
raytracingPipeline | Rid | — |
initialHitGroupCapacity | uint | — |
RidHitSbtRangeAlloclong
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.
| Имя | Тип | По умолчанию |
|---|---|---|
hitSbt | Rid | — |
hitGroupCount | uint | — |
longHitSbtRangeFreeError
public Error HitSbtRangeFree(Rid hitSbt, long range);Освобождает диапазон SBT попаданий, ранее выделенный с помощью RenderingDevice.HitSbtRangeAlloc.
После освобождения диапазон не должен использоваться какой-либо структурой ускорения.
| Имя | Тип | По умолчанию |
|---|---|---|
hitSbt | Rid | — |
range | long | — |
ErrorHitSbtRangeUpdate2 перегрузки
public Error HitSbtRangeUpdate(Rid hitSbt, long range, uint offset, int[] hitGroupIndices);Обновляет содержимое диапазона SBT попаданий.
hit_group_indices задаёт индексы в массиве групп попаданий, предоставленном в RenderingDevice.RaytracingPipelineCreate.
Параметр offset определяет, с какого места в выделенном диапазоне начинается запись. Это позволяет выполнять частичные обновления диапазона. Однако полный диапазон должен быть полностью инициализирован перед использованием в диспетчеризации трассировки лучей.
| Имя | Тип | По умолчанию |
|---|---|---|
hitSbt | Rid | — |
range | long | — |
offset | uint | — |
hitGroupIndices | int[] | — |
Errorpublic Error HitSbtRangeUpdate(Rid hitSbt, long range, uint offset, ReadOnlySpan<int> hitGroupIndices);Обновляет содержимое диапазона SBT попаданий.
hit_group_indices задаёт индексы в массиве групп попаданий, предоставленном в RenderingDevice.RaytracingPipelineCreate.
Параметр offset определяет, с какого места в выделенном диапазоне начинается запись. Это позволяет выполнять частичные обновления диапазона. Однако полный диапазон должен быть полностью инициализирован перед использованием в диспетчеризации трассировки лучей.
| Имя | Тип | По умолчанию |
|---|---|---|
hitSbt | Rid | — |
range | long | — |
offset | uint | — |
hitGroupIndices | ReadOnlySpan<int> | — |
ErrorHitSbtSetPipelineError
public Error HitSbtSetPipeline(Rid hitSbt, Rid raytracingPipeline);Устанавливает новый raytracing_pipeline для hit_sbt.
Новый конвейер должен быть надмножеством предыдущего. Существующие группы попаданий должны сохранять тот же порядок, а новые группы попаданий должны добавляться в конец. Это сохраняет существующие записи SBT.
Предыдущий конвейер должен оставаться действительным во время вызова.
| Имя | Тип | По умолчанию |
|---|---|---|
hitSbt | Rid | — |
raytracingPipeline | Rid | — |
ErrorIndexArrayCreateRid
public Rid IndexArrayCreate(Rid indexBuffer, uint indexOffset, uint indexCount);Создать новый индексный массив. Доступ к нему можно получить с помощью RID ..вернёмся.
Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод.
Это будет автоматически освобождено, когда index_buffer освободился.
| Имя | Тип | По умолчанию |
|---|---|---|
indexBuffer | Rid | — |
indexOffset | uint | — |
indexCount | uint | — |
RidIndexBufferCreate4 перегрузки
public Rid IndexBufferCreate(uint sizeIndices, RenderingDevice.IndexBufferFormat format, byte[] data, bool useRestartIndices);Создает новый буфер индекса. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeIndices | uint | — |
format | RenderingDevice.IndexBufferFormat | — |
data | byte[] | — |
useRestartIndices | bool | — |
dataЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().
Ridpublic 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.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeIndices | uint | — |
format | RenderingDevice.IndexBufferFormat | — |
data | byte[] | null |
useRestartIndices | bool | false |
creationBits | RenderingDevice.BufferCreationBits | (RenderingDevice.BufferCreationBits)0 |
dataЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().
Ridpublic Rid IndexBufferCreate(uint sizeIndices, RenderingDevice.IndexBufferFormat format, ReadOnlySpan<byte> data, bool useRestartIndices);Создает новый буфер индекса. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeIndices | uint | — |
format | RenderingDevice.IndexBufferFormat | — |
data | ReadOnlySpan<byte> | — |
useRestartIndices | bool | — |
Ridpublic Rid IndexBufferCreate(uint sizeIndices, RenderingDevice.IndexBufferFormat format, ReadOnlySpan<byte> data, bool useRestartIndices, RenderingDevice.BufferCreationBits creationBits);Создает новый буфер индекса. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeIndices | uint | — |
format | RenderingDevice.IndexBufferFormat | — |
data | ReadOnlySpan<byte> | — |
useRestartIndices | bool | — |
creationBits | RenderingDevice.BufferCreationBits | — |
RidLimitGetulong
public ulong LimitGet(RenderingDevice.Limit limit);Запрашивает аппаратное ограничение активного устройства. Например, MaxTextureSize2D задаёт предел размера 2D-текстуры, но не обещает успешное выделение ресурса этого размера. Значения зависят от устройства и драйвера; не являются текущим остатком памяти или общим пределом всех типов текстур.
| Имя | Тип | По умолчанию |
|---|---|---|
limit | RenderingDevice.Limit | — |
limitКонкретный элемент RenderingDevice.Limit. Для 2D, 3D, кубических текстур, слоёв и других ресурсов выбирайте соответствующее ограничение.
ulongЧисленное значение выбранного ограничения устройства. Единица зависит от элемента enum; для MaxTextureSize2D — максимальный размер стороны в пикселях.
RaytracingListBeginlong
public long RaytracingListBegin();Запускает список команд трассировки лучей. Возвращаемое значение должно передаваться в другие функции raytracing_list_*.
Нельзя создавать несколько списков трассировки одновременно; сначала необходимо завершить предыдущий список с помощью RenderingDevice.RaytracingListEnd.
Простая операция трассировки лучей может выглядеть так (код не является полным примером):
longRaytracingListBindRaytracingPipelinevoid
public void RaytracingListBindRaytracingPipeline(long raytracingList, Rid raytracingPipeline);Привязывает raytracing_pipeline к указанному raytracing_list.
| Имя | Тип | По умолчанию |
|---|---|---|
raytracingList | long | — |
raytracingPipeline | Rid | — |
RaytracingListBindUniformSetvoid
public void RaytracingListBindUniformSet(long raytracingList, Rid uniformSet, uint setIndex);Привязывает uniform_set к этому raytracing_list.
| Имя | Тип | По умолчанию |
|---|---|---|
raytracingList | long | — |
uniformSet | Rid | — |
setIndex | uint | — |
RaytracingListEndvoid
public void RaytracingListEnd();Завершает список команд трассировки, созданный с помощью методов raytracing_*.
RaytracingListSetPushConstant2 перегрузки
public void RaytracingListSetPushConstant(long raytracingList, byte[] buffer, uint sizeBytes);Устанавливает данные константы push в buffer для указанного raytracing_list. Шейдер определяет, как используются эти двоичные данные. Размер буфера в байтах также должен быть указан в size_bytes (его можно получить, вызвав метод PackedByteArray.size для переданного buffer).
| Имя | Тип | По умолчанию |
|---|---|---|
raytracingList | long | — |
buffer | byte[] | — |
sizeBytes | uint | — |
public void RaytracingListSetPushConstant(long raytracingList, ReadOnlySpan<byte> buffer, uint sizeBytes);Устанавливает данные константы push в buffer для указанного raytracing_list. Шейдер определяет, как используются эти двоичные данные. Размер буфера в байтах также должен быть указан в size_bytes (его можно получить, вызвав метод PackedByteArray.size для переданного buffer).
| Имя | Тип | По умолчанию |
|---|---|---|
raytracingList | long | — |
buffer | ReadOnlySpan<byte> | — |
sizeBytes | uint | — |
RaytracingListTraceRaysvoid
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.
| Имя | Тип | По умолчанию |
|---|---|---|
raytracingList | long | — |
raygenShaderIndex | uint | — |
hitSbt | Rid | — |
width | uint | — |
height | uint | — |
depth | uint | — |
RaytracingPipelineCreateRid
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:
raygen_shadersиндексируется вRenderingDevice.RaytracingListTraceRays.miss_shadersиндексируется вtraceRayEXT.hit_groupsиндексируется вRenderingDevice.HitSbtRangeUpdate.
| Имя | Тип | По умолчанию |
|---|---|---|
raygenShaders | Reckfell.Collections.Array<RDPipelineShader> | — |
missShaders | Reckfell.Collections.Array<RDPipelineShader> | — |
hitGroups | Reckfell.Collections.Array<RDHitGroup> | — |
maxTraceRecursionDepth | uint | — |
RidRaytracingPipelineIsValidbool
public bool RaytracingPipelineIsValid(Rid raytracingPipeline);Возвращает true, если конвейер трассировки, указанный в raytracing_pipeline RID, действителен, в противном случае false.
| Имя | Тип | По умолчанию |
|---|---|---|
raytracingPipeline | Rid | — |
boolRenderPipelineCreateRid
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 освободился.
| Имя | Тип | По умолчанию |
|---|---|---|
shader | Rid | — |
framebufferFormat | long | — |
vertexFormat | long | — |
primitive | RenderingDevice.RenderPrimitive | — |
rasterizationState | RDPipelineRasterizationState | — |
multisampleState | RDPipelineMultisampleState | — |
stencilState | RDPipelineDepthStencilState | — |
colorBlendState | RDPipelineColorBlendState | — |
dynamicStateFlags | RenderingDevice.PipelineDynamicStateFlags | (RenderingDevice.PipelineDynamicStateFlags)0 |
forRenderPass | uint | 0 |
specializationConstants | Reckfell.Collections.Array<RDPipelineSpecializationConstant> | null |
RidRenderPipelineIsValidbool
public bool RenderPipelineIsValid(Rid renderPipeline);Возвращает true, если конвейер рендеринга, указанный в render_pipeline RID, действителен, в противном случае false.
| Имя | Тип | По умолчанию |
|---|---|---|
renderPipeline | Rid | — |
boolSamplerCreateRid
public Rid SamplerCreate(RDSamplerState state);Создает новый сэмплер. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
state | RDSamplerState | — |
RidSamplerIsFormatSupportedForFilterbool
public bool SamplerIsFormatSupportedForFilter(RenderingDevice.DataFormat format, RenderingDevice.SamplerFilter samplerFilter);Возвращает true, если реализация поддерживает использование текстуры format с заданным sampler_filter.
| Имя | Тип | По умолчанию |
|---|---|---|
format | RenderingDevice.DataFormat | — |
samplerFilter | RenderingDevice.SamplerFilter | — |
boolScreenGetFramebufferFormat2 перегрузки
public long ScreenGetFramebufferFormat();Возвращает формат буфера кадра заданного экрана.
Примечание: Только основной RenderingDevice, возвращаемый RenderingServer.GetRenderingDevice, имеет формат. При вызове на локальном RenderingDevice этот метод выводит ошибку и возвращает RenderingDevice.InvalidId.
longpublic long ScreenGetFramebufferFormat(int screen = 0);Возвращает формат буфера кадра заданного экрана.
Примечание: Только основной RenderingDevice, возвращаемый RenderingServer.GetRenderingDevice, имеет формат. При вызове на локальном RenderingDevice этот метод выводит ошибку и возвращает RenderingDevice.InvalidId.
| Имя | Тип | По умолчанию |
|---|---|---|
screen | int | 0 |
longScreenGetHeightint
public int ScreenGetHeight(int screen = 0);Возвращает высоту окна, соответствующую графическому API-контексту для заданного идентификатора окна (в пикселях). Несмотря на то, что параметр назван screen, он возвращает размер window. См. также RenderingDevice.ScreenGetWidth.
Примечание: Только основной RenderingDevice, возвращаемый RenderingServer.GetRenderingDevice, имеет высоту. При вызове на локальном RenderingDevice этот метод выводит ошибку и возвращает RenderingDevice.InvalidId.
| Имя | Тип | По умолчанию |
|---|---|---|
screen | int | 0 |
intScreenGetWidthint
public int ScreenGetWidth(int screen = 0);Возвращает ширину окна, соответствующую графическому API-контексту для заданного идентификатора окна (в пикселях). Несмотря на то, что параметр назван screen, он возвращает размер window. См. также RenderingDevice.ScreenGetHeight.
Примечание: Только основной RenderingDevice, возвращаемый RenderingServer.GetRenderingDevice, имеет ширину. При вызове на локальном RenderingDevice этот метод выводит ошибку и возвращает RenderingDevice.InvalidId.
| Имя | Тип | По умолчанию |
|---|---|---|
screen | int | 0 |
intSetResourceNamevoid
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 Вулканское продление на поименованные ресурсы.
| Имя | Тип | По умолчанию |
|---|---|---|
id | Rid | — |
name | string | — |
ShaderCompileBinaryFromSpirVbyte[]
public byte[] ShaderCompileBinaryFromSpirV(RDShaderSpirV spirVData, string name = "");Компилирует двоичный шейдер из spirv_data и возвращает скомпилированные двоичные данные как byte[]. Этот скомпилированный шейдер специфичен для используемой модели GPU и версии драйвера; он не будет работать на других моделях GPU или даже на других версиях драйверов. См. также RenderingDevice.ShaderCompileSpirVFromSource.
name — необязательное понятное человеку имя, которое можно дать скомпилированному шейдеру в организационных целях.
| Имя | Тип | По умолчанию |
|---|---|---|
spirVData | RDShaderSpirV | — |
name | string | "" |
byte[]ShaderCompileSpirVFromSourceRDShaderSpirV
public RDShaderSpirV ShaderCompileSpirVFromSource(RDShaderSource shaderSource, bool allowCache = true);Компилирует непустые этапы RDShaderSource в SPIR-V. Результат содержит ошибки этапов: проверяйте CompileErrorCompute до создания compute-шейдера. Для SourceCompute передавайте исходный GLSL, не маркер импорта #[compute].
| Имя | Тип | По умолчанию |
|---|---|---|
shaderSource | RDShaderSource | — |
allowCache | bool | true |
shaderSourceИсходники этапов с выбранным языком. SourceCompute принимает raw GLSL.
allowCacheРазрешить использование кэша компиляции. Ошибки результата всё равно нужно проверить.
RDShaderSpirVОбъект байткода с отдельными данными и ошибками этапов.
ShaderCreateFromBytecode4 перегрузки
public Rid ShaderCreateFromBytecode(byte[] binaryData);Создает новый экземпляр шейдера из скомпилированного двоичного шейдера. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice. См. также RenderingDevice.ShaderCompileBinaryFromSpirV и RenderingDevice.ShaderCreateFromSpirV.
| Имя | Тип | По умолчанию |
|---|---|---|
binaryData | byte[] | — |
Ridpublic Rid ShaderCreateFromBytecode(byte[] binaryData, Rid placeholderRid = default);Создает новый экземпляр шейдера из скомпилированного двоичного шейдера. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice. См. также RenderingDevice.ShaderCompileBinaryFromSpirV и RenderingDevice.ShaderCreateFromSpirV.
| Имя | Тип | По умолчанию |
|---|---|---|
binaryData | byte[] | — |
placeholderRid | Rid | default |
Ridpublic Rid ShaderCreateFromBytecode(ReadOnlySpan<byte> binaryData);Создает новый экземпляр шейдера из скомпилированного двоичного шейдера. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice. См. также RenderingDevice.ShaderCompileBinaryFromSpirV и RenderingDevice.ShaderCreateFromSpirV.
| Имя | Тип | По умолчанию |
|---|---|---|
binaryData | ReadOnlySpan<byte> | — |
Ridpublic Rid ShaderCreateFromBytecode(ReadOnlySpan<byte> binaryData, Rid placeholderRid);Создает новый экземпляр шейдера из скомпилированного двоичного шейдера. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice. См. также RenderingDevice.ShaderCompileBinaryFromSpirV и RenderingDevice.ShaderCreateFromSpirV.
| Имя | Тип | По умолчанию |
|---|---|---|
binaryData | ReadOnlySpan<byte> | — |
placeholderRid | Rid | — |
RidShaderCreateFromSpirVRid
public Rid ShaderCreateFromSpirV(RDShaderSpirV spirVData, string name = "");Создаёт RID шейдера этого устройства из SPIR-V без ошибок компиляции. Наличие объекта RDShaderSpirV само по себе не доказывает успех; проверяйте ошибки этапов и возвращённый RID.
| Имя | Тип | По умолчанию |
|---|---|---|
spirVData | RDShaderSpirV | — |
name | string | "" |
spirVDataБайткод этапов без ошибок компиляции.
nameНеобязательное диагностическое имя шейдера.
RidRID созданного ресурса этого устройства; проверяйте валидность.
ShaderCreatePlaceholderRid
public Rid ShaderCreatePlaceholder();Создайте RID-заполнитель, выделив RID без его инициализации для использования в RenderingDevice.ShaderCreateFromBytecode. Это позволяет вам создать RID для шейдера и передать его, но отложить компиляцию шейдера на более позднее время.
RidShaderGetVertexInputAttributeMaskulong
public ulong ShaderGetVertexInputAttributeMask(Rid shader);Возвращает внутреннюю входную маску вершин. Внутри входная маска вершин представляет собой беззнаковое целое число, состоящее из местоположений (указанных в GLSL через layout(location = ...)) входных переменных (указанных в GLSL ключевым словом in).
| Имя | Тип | По умолчанию |
|---|---|---|
shader | Rid | — |
ulongStorageBufferCreate4 перегрузки
public Rid StorageBufferCreate(uint sizeBytes, byte[] data, RenderingDevice.StorageBufferUsage usage);Создает буфер хранения с указанными data и usage. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeBytes | uint | — |
data | byte[] | — |
usage | RenderingDevice.StorageBufferUsage | — |
dataЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().
Ridpublic Rid StorageBufferCreate(uint sizeBytes, byte[] data = null, RenderingDevice.StorageBufferUsage usage = (RenderingDevice.StorageBufferUsage)0, RenderingDevice.BufferCreationBits creationBits = (RenderingDevice.BufferCreationBits)0);Создаёт storage buffer этого устройства. Непустые начальные данные должны иметь ровно sizeBytes байтов. Проверяйте возвращённый RID и освобождайте его через это же устройство после завершения использования.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeBytes | uint | — |
data | byte[] | null |
usage | RenderingDevice.StorageBufferUsage | (RenderingDevice.StorageBufferUsage)0 |
creationBits | RenderingDevice.BufferCreationBits | (RenderingDevice.BufferCreationBits)0 |
sizeBytesПолный размер буфера в байтах; непустые data должны совпадать по длине.
dataИсходные байты, не массив элементов произвольной ширины.
usageФлаги использования storage buffer; для обычного примера 0.
creationBitsДополнительные флаги создания буфера; для обычного примера 0.
RidRID созданного ресурса этого устройства; проверяйте валидность.
public Rid StorageBufferCreate(uint sizeBytes, ReadOnlySpan<byte> data, RenderingDevice.StorageBufferUsage usage);Создает буфер хранения с указанными data и usage. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeBytes | uint | — |
data | ReadOnlySpan<byte> | — |
usage | RenderingDevice.StorageBufferUsage | — |
Ridpublic Rid StorageBufferCreate(uint sizeBytes, ReadOnlySpan<byte> data, RenderingDevice.StorageBufferUsage usage, RenderingDevice.BufferCreationBits creationBits);Создает буфер хранения с указанными data и usage. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeBytes | uint | — |
data | ReadOnlySpan<byte> | — |
usage | RenderingDevice.StorageBufferUsage | — |
creationBits | RenderingDevice.BufferCreationBits | — |
RidSubmitvoid
public void Submit();Отправляет работу локального RenderingDevice на GPU. Не применяется к глобальному устройству движка; перед следующей отправкой этого локального устройства требуется Sync.
Syncvoid
public void Sync();Ожидает предыдущую отправку Submit локального устройства и завершает её цикл обработки. Блокирует вызывающий поток; не вызывайте до Submit или на глобальном устройстве движка.
TextureBufferCreate2 перегрузки
public Rid TextureBufferCreate(uint sizeBytes, RenderingDevice.DataFormat format, byte[] data = null);Создает новый буфер текстуры. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeBytes | uint | — |
format | RenderingDevice.DataFormat | — |
data | byte[] | null |
dataЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().
Ridpublic Rid TextureBufferCreate(uint sizeBytes, RenderingDevice.DataFormat format, ReadOnlySpan<byte> data);Создает новый буфер текстуры. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeBytes | uint | — |
format | RenderingDevice.DataFormat | — |
data | ReadOnlySpan<byte> | — |
RidTextureClear2 перегрузки
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), чтобы очистить эту текстуру.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Rid | — |
color | Color | — |
baseMipmap | uint | — |
mipmapCount | uint | — |
baseLayer | uint | — |
layerCount | uint | — |
Errorpublic 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), чтобы очистить эту текстуру.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Rid | — |
color | Color | — |
baseMipmap | uint | — |
mipmapCount | uint | — |
baseLayer | uint | — |
layerCount | uint | — |
postBarrier | RenderingDevice.BarrierMask | — |
ErrorTextureCopy2 перегрузки
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 должен быть одного и того же типа (цвет или глубина).
| Имя | Тип | По умолчанию |
|---|---|---|
fromTexture | Rid | — |
toTexture | Rid | — |
fromPos | Vector3 | — |
toPos | Vector3 | — |
size | Vector3 | — |
srcMipmap | uint | — |
dstMipmap | uint | — |
srcLayer | uint | — |
dstLayer | uint | — |
Errorpublic 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 должен быть одного и того же типа (цвет или глубина).
| Имя | Тип | По умолчанию |
|---|---|---|
fromTexture | Rid | — |
toTexture | Rid | — |
fromPos | Vector3 | — |
toPos | Vector3 | — |
size | Vector3 | — |
srcMipmap | uint | — |
dstMipmap | uint | — |
srcLayer | uint | — |
dstLayer | uint | — |
postBarrier | RenderingDevice.BarrierMask | — |
ErrorTextureCreateRid
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.
| Имя | Тип | По умолчанию |
|---|---|---|
format | RDTextureFormat | — |
view | RDTextureView | — |
data | Reckfell.Collections.Array<byte[]> | null |
RidTextureCreateFromExtension2 перегрузки
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 выполнять рендеринг на сторонних изображениях.
| Имя | Тип | По умолчанию |
|---|---|---|
type | RenderingDevice.TextureType | — |
format | RenderingDevice.DataFormat | — |
samples | RenderingDevice.TextureSamples | — |
usageFlags | RenderingDevice.TextureUsageBits | — |
image | ulong | — |
width | ulong | — |
height | ulong | — |
depth | ulong | — |
layers | ulong | — |
Ridpublic 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 выполнять рендеринг на сторонних изображениях.
| Имя | Тип | По умолчанию |
|---|---|---|
type | RenderingDevice.TextureType | — |
format | RenderingDevice.DataFormat | — |
samples | RenderingDevice.TextureSamples | — |
usageFlags | RenderingDevice.TextureUsageBits | — |
image | ulong | — |
width | ulong | — |
height | ulong | — |
depth | ulong | — |
layers | ulong | — |
mipmaps | ulong | 1 |
RidTextureCreateSharedRid
public Rid TextureCreateShared(RDTextureView view, Rid withTexture);Создаёт общую текстуру, используя указанный параметр view и информацию о текстуре из параметра with_texture.
Этот параметр будет автоматически освобождён при освобождении параметра with_texture.
| Имя | Тип | По умолчанию |
|---|---|---|
view | RDTextureView | — |
withTexture | Rid | — |
RidTextureCreateSharedFromSlice2 перегрузки
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 освободился.
| Имя | Тип | По умолчанию |
|---|---|---|
view | RDTextureView | — |
withTexture | Rid | — |
layer | uint | — |
mipmap | uint | — |
mipmaps | uint | — |
sliceType | RenderingDevice.TextureSliceType | — |
RidTextureGetDatabyte[]
public byte[] TextureGetData(Rid texture, uint layer);Возвращает данные texture для указанного layer в виде необработанных двоичных данных. Для 2D-текстур (с одним слоем) layer должен быть равен 0.
Примечание: texture невозможно получить, пока создаётся список отрисовки, использующий его как часть буфера кадра. Убедитесь, что список отрисовки завершен (и что используемая им текстура цвета/глубины не установлена в RenderingDevice.FinalAction.Continue), чтобы получить эту текстуру. В противном случае выводится ошибка и возвращается пустой byte[].
Примечание: texture требует получения RenderingDevice.TextureUsageBits.CanCopyFromBit. В противном случае выводится ошибка и возвращается пустой byte[].
Примечание: Этот метод блокирует работу графического процессора до тех пор, пока данные не будут получены. Альтернативный метод, возвращающий данные более производительным способом, описан в RenderingDevice.TextureGetDataAsync.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Rid | — |
layer | uint | — |
byte[]TextureGetDataAsyncError
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, чтобы улучшить скорость передачи за счет дополнительной памяти.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Rid | — |
layer | uint | — |
callback | Callable | — |
ErrorTextureGetFormatRDTextureFormat
public RDTextureFormat TextureGetFormat(Rid texture);Возвращает формат данных, использованный для создания этой текстуры.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Rid | — |
RDTextureFormatTextureGetNativeHandleulong · Устарело
public ulong TextureGetNativeHandle(Rid texture);Возвращает внутренний графический дескриптор для этого объекта текстуры. Для использования при взаимодействии со сторонними API, в основном с ReckfellExtension.
Примечание: Эта функция возвращает uint64_t, который внутренне сопоставляется с GLuint (OpenGL) или VkImage (Вулкан).
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Rid | — |
ulongTextureIsDiscardablebool
public bool TextureIsDiscardable(Rid texture);Возвращает true, если texture можно отбросить, false в противном случае. См. RDTextureFormat или RenderingDevice.TextureSetDiscardable.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Rid | — |
boolTextureIsFormatSupportedForUsagebool
public bool TextureIsFormatSupportedForUsage(RenderingDevice.DataFormat format, RenderingDevice.TextureUsageBits usageFlags);Возвращает true, если указанный format поддерживается для заданных usage_flags, в противном случае false.
| Имя | Тип | По умолчанию |
|---|---|---|
format | RenderingDevice.DataFormat | — |
usageFlags | RenderingDevice.TextureUsageBits | — |
boolTextureIsSharedbool
public bool TextureIsShared(Rid texture);Возвращает true, если texture является общей, false в противном случае. См. RDTextureView.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Rid | — |
boolTextureIsValidbool
public bool TextureIsValid(Rid texture);Возвращает true, если texture действителен, в противном случае false.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Rid | — |
boolTextureResolveMultisample2 перегрузки
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/кубической текстуры).
| Имя | Тип | По умолчанию |
|---|---|---|
fromTexture | Rid | — |
toTexture | Rid | — |
Errorpublic 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/кубической текстуры).
| Имя | Тип | По умолчанию |
|---|---|---|
fromTexture | Rid | — |
toTexture | Rid | — |
postBarrier | RenderingDevice.BarrierMask | — |
ErrorTextureSetDiscardablevoid
public void TextureSetDiscardable(Rid texture, bool discardable);Обновляет свойство discardable texture.
Если текстура является discardable, ее содержимое не нужно сохранять между кадрами. Этот флаг имеет значение только тогда, когда текстура используется в качестве цели в списке отрисовки.
Эта информация используется RenderingDevice для определения того, можно ли отбросить содержимое текстуры, что исключает ненужные записи в память и повышает производительность.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Rid | — |
discardable | bool | — |
TextureUpdate4 перегрузки
public Error TextureUpdate(Rid texture, uint layer, byte[] data);Обновляет данные текстуры новыми данными, заменяя предыдущие данные на месте. Обновленные данные текстуры должны иметь те же размеры и формат. Для 2D-текстур (которые имеют только один слой) layer должен быть 0. Возвращает Error.Ok, если обновление прошло успешно, Error.InvalidParameter в противном случае.
Примечание: Обновление текстур запрещено во время создания списка отрисовки или вычисления.
Примечание: Существующая texture не может быть обновлена, пока создается список отрисовки, который использует ее как часть буфера кадра. Убедитесь, что список отрисовки финализирован (и что текстура цвета/глубины, использующая его, не установлена на RenderingDevice.FinalAction.Continue), чтобы обновить эту текстуру.
Примечание: Для существующей texture требуется, чтобы RenderingDevice.TextureUsageBits.CanUpdateBit была обновляемой.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Rid | — |
layer | uint | — |
data | byte[] | — |
Errorpublic 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 была обновляемой.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Rid | — |
layer | uint | — |
data | byte[] | — |
postBarrier | RenderingDevice.BarrierMask | — |
Errorpublic Error TextureUpdate(Rid texture, uint layer, ReadOnlySpan<byte> data);Обновляет данные текстуры новыми данными, заменяя предыдущие данные на месте. Обновленные данные текстуры должны иметь те же размеры и формат. Для 2D-текстур (которые имеют только один слой) layer должен быть 0. Возвращает Error.Ok, если обновление прошло успешно, Error.InvalidParameter в противном случае.
Примечание: Обновление текстур запрещено во время создания списка отрисовки или вычисления.
Примечание: Существующая texture не может быть обновлена, пока создается список отрисовки, который использует ее как часть буфера кадра. Убедитесь, что список отрисовки финализирован (и что текстура цвета/глубины, использующая его, не установлена на RenderingDevice.FinalAction.Continue), чтобы обновить эту текстуру.
Примечание: Для существующей texture требуется, чтобы RenderingDevice.TextureUsageBits.CanUpdateBit была обновляемой.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Rid | — |
layer | uint | — |
data | ReadOnlySpan<byte> | — |
Errorpublic 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 была обновляемой.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Rid | — |
layer | uint | — |
data | ReadOnlySpan<byte> | — |
postBarrier | RenderingDevice.BarrierMask | — |
ErrorTlasBuildError
public Error TlasBuild(Rid tlas, Reckfell.Collections.Array<RDAccelerationStructureInstance> instances);Строит tlas. Содержимое предыдущих построений отбрасывается.
Любая BLAS, предоставленная через член RDAccelerationStructureInstance.Blas, должна быть уже построена с помощью метода RenderingDevice.BlasBuild.
Количество экземпляров может быть равно или меньше максимального количества экземпляров, указанного в методе RenderingDevice.TlasCreate.
Примечание: Освобождение или перестроение любой из предоставленных BLAS после этого метода делает TLAS недействительным и требует его перестроения.
| Имя | Тип | По умолчанию |
|---|---|---|
tlas | Rid | — |
instances | Reckfell.Collections.Array<RDAccelerationStructureInstance> | — |
ErrorTlasCreateRid
public Rid TlasCreate(uint maxInstanceCount, RenderingDevice.AccelerationStructureFlagBits flags);Создаёт новую структуру ускорения верхнего уровня (TLAS). RID ..вернёмся.
Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод.
| Имя | Тип | По умолчанию |
|---|---|---|
maxInstanceCount | uint | — |
flags | RenderingDevice.AccelerationStructureFlagBits | — |
RidUniformBufferCreate4 перегрузки
public Rid UniformBufferCreate(uint sizeBytes, byte[] data);Создает новый унифицированный буфер. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeBytes | uint | — |
data | byte[] | — |
dataЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().
Ridpublic Rid UniformBufferCreate(uint sizeBytes, byte[] data = null, RenderingDevice.BufferCreationBits creationBits = (RenderingDevice.BufferCreationBits)0);Создает новый унифицированный буфер. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeBytes | uint | — |
data | byte[] | null |
creationBits | RenderingDevice.BufferCreationBits | (RenderingDevice.BufferCreationBits)0 |
dataЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().
Ridpublic Rid UniformBufferCreate(uint sizeBytes, ReadOnlySpan<byte> data);Создает новый унифицированный буфер. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeBytes | uint | — |
data | ReadOnlySpan<byte> | — |
Ridpublic Rid UniformBufferCreate(uint sizeBytes, ReadOnlySpan<byte> data, RenderingDevice.BufferCreationBits creationBits);Создает новый унифицированный буфер. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeBytes | uint | — |
data | ReadOnlySpan<byte> | — |
creationBits | RenderingDevice.BufferCreationBits | — |
RidUniformSetCreateRid
public Rid UniformSetCreate(Reckfell.Collections.Array<RDUniform> uniforms, Rid shader, uint shaderSet);Создаёт набор ресурсов для указанного set шейдера. RDUniform.Binding, вид ресурса и все необходимые привязки должны соответствовать layout шейдера; RID ресурсов принадлежат тому же устройству.
| Имя | Тип | По умолчанию |
|---|---|---|
uniforms | Reckfell.Collections.Array<RDUniform> | — |
shader | Rid | — |
shaderSet | uint | — |
uniformsОписания всех необходимых привязок выбранного set.
shaderRID шейдера того же устройства с соответствующим layout.
shaderSetНомер GLSL set, объявленного шейдером; не номер binding.
RidRID созданного ресурса этого устройства; проверяйте валидность.
UniformSetIsValidbool
public bool UniformSetIsValid(Rid uniformSet);Проверяет, является ли uniform_set допустимым, т.е. принадлежит ли он кому-либо.
| Имя | Тип | По умолчанию |
|---|---|---|
uniformSet | Rid | — |
boolVertexArrayCreate2 перегрузки
public Rid VertexArrayCreate(uint vertexCount, long vertexFormat, Reckfell.Collections.Array<Rid> srcBuffers, long[] offsets = null);Создаёт массив вершины на основе определенных буферов. offsets Для каждого буфера может быть определено (в байтах).
Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод.
Это будет автоматически освобождено, когда любой из src_buffers освободился.
| Имя | Тип | По умолчанию |
|---|---|---|
vertexCount | uint | — |
vertexFormat | long | — |
srcBuffers | Reckfell.Collections.Array<Rid> | — |
offsets | long[] | null |
offsetsЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<long>().
Ridpublic Rid VertexArrayCreate(uint vertexCount, long vertexFormat, Reckfell.Collections.Array<Rid> srcBuffers, ReadOnlySpan<long> offsets);Создаёт массив вершины на основе определенных буферов. offsets Для каждого буфера может быть определено (в байтах).
Как только закончите с вашим RIDВы захотите освободить RID с использованием RenderingDevice's RenderingDevice.FreeRid Метод.
Это будет автоматически освобождено, когда любой из src_buffers освободился.
| Имя | Тип | По умолчанию |
|---|---|---|
vertexCount | uint | — |
vertexFormat | long | — |
srcBuffers | Reckfell.Collections.Array<Rid> | — |
offsets | ReadOnlySpan<long> | — |
RidVertexBufferCreate4 перегрузки
public Rid VertexBufferCreate(uint sizeBytes, byte[] data = null, RenderingDevice.BufferCreationBits creationBits = (RenderingDevice.BufferCreationBits)0);Создает новый буфер вершин. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeBytes | uint | — |
data | byte[] | null |
creationBits | RenderingDevice.BufferCreationBits | (RenderingDevice.BufferCreationBits)0 |
dataЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().
Ridpublic Rid VertexBufferCreate(uint sizeBytes, byte[] data, bool useAsStorage);Создает новый буфер вершин. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeBytes | uint | — |
data | byte[] | — |
useAsStorage | bool | — |
dataЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().
Ridpublic Rid VertexBufferCreate(uint sizeBytes, ReadOnlySpan<byte> data, RenderingDevice.BufferCreationBits creationBits);Создает новый буфер вершин. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeBytes | uint | — |
data | ReadOnlySpan<byte> | — |
creationBits | RenderingDevice.BufferCreationBits | — |
Ridpublic Rid VertexBufferCreate(uint sizeBytes, ReadOnlySpan<byte> data, bool useAsStorage);Создает новый буфер вершин. К нему можно получить доступ с помощью возвращаемого RID.
После завершения работы с RID вам нужно будет освободить RID с помощью метода RenderingDevice.FreeRid RenderingDevice.
| Имя | Тип | По умолчанию |
|---|---|---|
sizeBytes | uint | — |
data | ReadOnlySpan<byte> | — |
useAsStorage | bool | — |
RidVertexFormatCreatelong
public long VertexFormatCreate(Reckfell.Collections.Array<RDVertexAttribute> vertexDescriptions);Создает новый формат вершины с указанным vertex_descriptions. Возвращает уникальный идентификатор формата вершины, соответствующий вновь созданному формату вершины.
| Имя | Тип | По умолчанию |
|---|---|---|
vertexDescriptions | Reckfell.Collections.Array<RDVertexAttribute> | — |
longПоля и константы2
InvalidFormatIdПоле
public const long InvalidFormatId = -1;Возвращается функциями, которые возвращают идентификатор формата, если значение недопустимо.
Нет
InvalidIdПоле
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 | Маска растрового барьера (вершина и фрагмент). Эквивалентно БАРРИЕР БАРРИЕРЫ |
Transfer = 4 | Перенос барьерной маски. |
Vertex = 1 | Барьерная маска вершинного шейдера. |
RenderingDevice.BlendFactor
| Значение | Описание |
|---|---|
ConstantAlpha = 12 | Color и коэффициент альфа-смеси |
ConstantColor = 10 | Color коэффициент смешанности: |
DstAlpha = 8 | Color и коэффициент альфа-смеси |
DstColor = 4 | Color коэффициент смешанности: |
Max = 19 | Представляет размер перечисления |
One = 1 | Постоянный коэффициент смешивания |
OneMinusConstantAlpha = 13 | Color и коэффициент альфа-смеси |
OneMinusConstantColor = 11 | Color коэффициент смешанности: |
OneMinusDstAlpha = 9 | Color и коэффициент альфа-смеси |
OneMinusDstColor = 5 | Color коэффициент смешанности: |
OneMinusSrc1Alpha = 18 | Color и коэффициент альфа-смеси |
OneMinusSrc1Color = 16 | Color коэффициент смешанности: |
OneMinusSrcAlpha = 7 | Color и коэффициент альфа-смеси |
OneMinusSrcColor = 3 | Color коэффициент смешанности: |
Src1Alpha = 17 | Color и коэффициент альфа-смеси |
Src1Color = 15 | Color коэффициент смешанности: |
SrcAlpha = 6 | Color и коэффициент альфа-смеси |
SrcAlphaSaturate = 14 | Color коэффициент смешанности: |
SrcColor = 2 | Color коэффициент смешанности: |
Zero = 0 | Константа |
RenderingDevice.BlendOperation
| Значение | Описание |
|---|---|
Add = 0 | Операция аддитивного смешивания ( |
Max = 5 | Представляет размер перечисления |
Maximum = 4 | Максимальное смешивание (сохранить наибольшее значение из двух). |
Minimum = 3 | Минимальная операция смешивания (сохранить наименьшее значение из двух). |
ReverseSubtract = 2 | Операция обратного вычитающего смешивания( |
Subtract = 1 | Операция субтрактивного смешивания ( |
RenderingDevice.BreadcrumbMarker
| Значение | Описание |
|---|---|
AlphaPass = 458752 | Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать |
BlitPass = 655360 | Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать |
DebugPass = 786432 | Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать |
LightmapperPass = 196608 | Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать |
None = 0 | Маркер хлебной крошки (breadcrumb) не будет добавлен. |
OpaquePass = 393216 | Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать |
PostProcessingPass = 589824 | Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать |
ReflectionProbes = 65536 | Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать |
ShadowPassCube = 327680 | Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать |
ShadowPassDirectional = 262144 | Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать |
SkyPass = 131072 | Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать |
TransparentPass = 524288 | Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать |
UiPass = 720896 | Во время сбоя GPU в dev или режиме отладки, сообщение об ошибке Reckfell будет включать |
RenderingDevice.BufferCreationBits
| Значение | Описание |
|---|---|
AccelerationStructureBuildInputReadOnlyBit = 8 | Позволяет использовать этот буфер в качестве входных данных для операции построения структуры ускорения. Перед использованием необходимо убедиться, что графический процессор поддерживает эту функцию: |
AsStorageBit = 2 | Установите этот флаг, чтобы он был создан как хранилище. Это полезно, если Вычислить хитрость требуется доступ (для чтения или записи) к буферу, например, скелетные анимации обрабатываются в Вычислить хитрость, которым требуется доступ к вершинным буферам, чтобы впоследствии использоваться вершинными шейдерами как часть обычного конвейера растеризации. |
DeviceAddressBit = 1 | При желании установите этот флаг, если хотите использовать функционал |
RenderingDevice.CompareOperator
| Значение | Описание |
|---|---|
Always = 7 | Сравнение «Всегда» (противоположно |
Equal = 2 | "Равноценное" сравнение. |
Greater = 4 | Сравнение "больше, чем". |
GreaterOrEqual = 6 | Сравнение «больше или равно». |
Less = 1 | Сравнение "меньше, чем". |
LessOrEqual = 3 | Сравнение "меньше или равно". |
Max = 8 | Представляет размер перечисления |
Never = 0 | Сравнение «Никогда» (противоположно |
NotEqual = 5 | Сравнение "Не равно". |
RenderingDevice.DataFormat
| Значение | Описание |
|---|---|
A1R5G5B5UnormPack16 = 7 | Формат данных канала альфа/красный/зеленый/синий с 1 битом альфа, 5 битами красного, 6 битами зеленого и 5 битами синего, упакованными в 16 бит. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8_UNORM |
A2B10G10R10SintPack32 = 68 | Формат данных канала альфа/синий/зеленый/красный со знаком в виде целого числа с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит синего, 10 бит зеленого и 10 бит красного. Значения находятся в диапазоне |
A2B10G10R10SnormPack32 = 64 | Формат данных альфа/синего/зеленого/красного канала со знаком и плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит синего, 10 бит зеленого и 10 бит красного. Значения находятся в диапазоне
|
A2B10G10R10SscaledPack32 = 66 | Формат данных канала альфа/синий/зеленый/красный со знаком и плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит синего, 10 бит зеленого и 10 бит красного. Значения находятся в диапазоне *ДАННЫЕ_ФОРМАТ_A2B10G10R10_UINT_PACK32 |
A2B10G10R10UintPack32 = 67 | Формат данных канала альфа/синий/зеленый/красный без знака с нормализованным значением, упакованный в 32 бита. Формат содержит 2 бита альфа, 10 бит синего, 10 бит зеленого и 10 бит красного. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_A2B10G10R10_SINT_PACK32 |
A2B10G10R10UnormPack32 = 63 | Формат данных канала альфа/синий/зеленый/красный без знака с плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит синего, 10 бит зеленого и 10 бит красного. Значения находятся в диапазоне |
A2B10G10R10UscaledPack32 = 65 | Формат данных канала альфа/синий/зеленый/красный без знака с плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит синего, 10 бит зеленого и 10 бит красного. Значения находятся в диапазоне |
A2R10G10B10SintPack32 = 62 | Формат данных канала альфа/красный/зеленый/синий со знаком в виде целого числа с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит красного, 10 бит зеленого и 10 бит синего. Значения находятся в диапазоне
|
A2R10G10B10SnormPack32 = 58 | Формат данных канала альфа/красный/зеленый/синий со знаком и плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит красного, 10 бит зеленого и 10 бит синего. Значения находятся в диапазоне *ДАННЫЕ_ФОРМАТ_A2R10G10B10_USCALED_PACK32 |
A2R10G10B10SscaledPack32 = 60 | Формат данных канала альфа/красный/зеленый/синий со знаком и плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит красного, 10 бит зеленого и 10 бит синего. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_A2R10G10B10_UINT_PACK32 |
A2R10G10B10UintPack32 = 61 | Формат данных канала альфа/красный/зеленый/синий без знака с нормализованным значением, упакованный в 32 бита. Формат содержит 2 бита альфа, 10 бит красного, 10 бит зеленого и 10 бит синего. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_A2R10G10B10_SINT_PACK32 |
A2R10G10B10UnormPack32 = 57 | Формат данных канала альфа/красный/зеленый/синий без знака с плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит красного, 10 бит зеленого и 10 бит синего. Значения находятся в диапазоне |
A2R10G10B10UscaledPack32 = 59 | Формат данных канала альфа/красный/зеленый/синий без знака с плавающей точкой с нормализованным значением, упакованным в 32 бита. Формат содержит 2 бита альфа, 10 бит красного, 10 бит зеленого и 10 бит синего. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_A2R10G10B10_ШКАЛИРОВАННЫЙ_PACK32 |
A8B8G8R8SintPack32 = 55 | Формат данных 8-битного на канал знакового целого числа альфа/красного/зеленого/синего каналов, упакованный в 32 бита. Значения находятся в диапазоне
|
A8B8G8R8SnormPack32 = 51 | Формат данных альфа/красного/зеленого/синего каналов с плавающей точкой и 8 битами на канал с нормализованным значением, упакованным в 32 бита. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_A8B8G8R8_USCALED_PACK32 |
A8B8G8R8SrgbPack32 = 56 | 8-битный формат данных для каждого канала в формате беззнаковых чисел с плавающей запятой (альфа/красный/зеленый/синий), с нормализованным значением и нелинейным кодированием sRGB, упакованный в 32 бита. Значения находятся в диапазоне
|
A8B8G8R8SscaledPack32 = 53 | 8-бит-канал, подписанный в плавающей точке альфа/красный/зеленый/синий канал с масштабируемым значением (значение преобразуется из целого в floatЗначения в 32 битах. ДАННЫЕ_ФОРМАТ_A8B8G8R8_UINT_PACK32 |
A8B8G8R8UintPack32 = 54 | Формат данных канала альфа/красный/зеленый/синий без знака, 8 бит на канал, упакованный в 32 бита. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_A8B8G8R8_SINT_PACK32 |
A8B8G8R8UnormPack32 = 50 | Формат данных альфа/красного/зеленого/синего каналов с плавающей точкой и беззнаковым 8-битным каналом с нормализованным значением, упакованным в 32 бита. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_A8B8G8R8_SNORM_PACK32 |
A8B8G8R8UscaledPack32 = 52 | Неподписанный формат данных по альфа/красным/зеленым/голубым каналам с масштабируемой величиной (значение преобразуется из целого в floatЗначения в 32 битах. ДАННЫЕ_ФОРМАТ_A8B8G8R8_ШКАЛИРОВАННЫЙ_PACK32 |
Astc10X10SfloatBlock = 229 | |
Astc10X10SrgbBlock = 179 | Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 10×10. Значения находятся в диапазоне |
Astc10X10UnormBlock = 178 | Сжатый VRAM беззнаковый формат данных с плавающей точкой с нормализованным значением, упакованный в блоки 10×10. Значения находятся в диапазоне |
Astc10X5SfloatBlock = 226 | |
Astc10X5SrgbBlock = 173 | Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 10×5. Значения находятся в диапазоне |
Astc10X5UnormBlock = 172 | Формат данных с плавающей точкой без знака, сжатый VRAM, с нормализованным значением, упакованный в блоки 10×5. Значения находятся в диапазоне |
Astc10X6SfloatBlock = 227 | |
Astc10X6SrgbBlock = 175 | Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 10×6. Значения находятся в диапазоне |
Astc10X6UnormBlock = 174 | Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в блоки 10×6. Значения находятся в диапазоне |
Astc10X8SfloatBlock = 228 | |
Astc10X8SrgbBlock = 177 | Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 10×8. Значения находятся в диапазоне |
Astc10X8UnormBlock = 176 | Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в блоки 10×8. Значения находятся в диапазоне |
Astc12X10SfloatBlock = 230 | |
Astc12X10SrgbBlock = 181 | Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 12×10. Значения находятся в диапазоне |
Astc12X10UnormBlock = 180 | Формат данных с плавающей точкой без знака, сжатый VRAM, с нормализованным значением, упакованный в блоки 12×10. Значения находятся в диапазоне |
Astc12X12SfloatBlock = 231 | |
Astc12X12SrgbBlock = 183 | Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в 12 блоков (наименьшее качество). Значения находятся в диапазоне |
Astc12X12UnormBlock = 182 | Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в 12 блоков (самое низкое качество). Значения находятся в диапазоне |
Astc4X4SfloatBlock = 218 | |
Astc4X4SrgbBlock = 157 | Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 4×4 (наивысшее качество). Значения находятся в диапазоне |
Astc4X4UnormBlock = 156 | Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в блоки 4×4 (наивысшее качество). Значения находятся в диапазоне |
Astc5X4SfloatBlock = 219 | |
Astc5X4SrgbBlock = 159 | Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 5×4. Значения находятся в диапазоне |
Astc5X4UnormBlock = 158 | Формат данных с плавающей точкой без знака, сжатый VRAM, с нормализованным значением, упакованный в блоки 5×4. Значения находятся в диапазоне |
Astc5X5SfloatBlock = 220 | |
Astc5X5SrgbBlock = 161 | Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 5×5. Значения находятся в диапазоне |
Astc5X5UnormBlock = 160 | Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в блоки 5×5. Значения находятся в диапазоне |
Astc6X5SfloatBlock = 221 | |
Astc6X5SrgbBlock = 163 | Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 6×5. Значения находятся в диапазоне |
Astc6X5UnormBlock = 162 | Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в блоки 6×5. Значения находятся в диапазоне |
Astc6X6SfloatBlock = 222 | |
Astc6X6SrgbBlock = 165 | Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 6×6. Значения находятся в диапазоне |
Astc6X6UnormBlock = 164 | Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в блоки 6×6. Значения находятся в диапазоне |
Astc8X5SfloatBlock = 223 | |
Astc8X5SrgbBlock = 167 | Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 8×5. Значения находятся в диапазоне |
Astc8X5UnormBlock = 166 | Формат данных без знака с плавающей точкой, сжатый VRAM, с нормализованным значением, упакованный в блоки 8×5. Значения находятся в диапазоне |
Astc8X6SfloatBlock = 224 | |
Astc8X6SrgbBlock = 169 | Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 8×6. Значения находятся в диапазоне |
Astc8X6UnormBlock = 168 | Формат данных с плавающей точкой без знака, сжатый VRAM, с нормализованным значением, упакованный в блоки 8×6. Значения находятся в диапазоне |
Astc8X8SfloatBlock = 225 | |
Astc8X8SrgbBlock = 171 | Сжатые в видеопамяти данные в формате беззнаковых чисел с плавающей запятой, нормализованные значения и нелинейное кодирование sRGB, упакованные в блоки 8×8. Значения находятся в диапазоне |
Astc8X8UnormBlock = 170 | Формат данных с плавающей точкой без знака, сжатый VRAM, с нормализованным значением, упакованный в блоки 8×8. Значения находятся в диапазоне |
B10G11R11UfloatPack32 = 121 | Формат данных без знака с плавающей точкой blue/green/red, значение которого хранится как есть, упаковано в 32 бита. Точность формата составляет 10 бит синего канала, 11 бит зеленого канала и 11 бит красного канала. |
B10X6G10X6R10X6G10X6422Unorm4Pack16 = 195 | 10-битные на канал беззнаковые данные с плавающей точкой синего/зеленого/красного/зеленого каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованные в 4×16 бит. Значения находятся в диапазоне |
B12X4G12X4R12X4G12X4422Unorm4Pack16 = 205 | 12-битные на канал беззнаковые данные с плавающей точкой синего/зеленого/красного/зеленого каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованные в 4×16 бит. Значения находятся в диапазоне |
B16G16R16G16422Unorm = 212 | Формат данных синего/зеленого/красного каналов без знака с плавающей точкой 16 бит на канал с нормализованным значением. Значения находятся в диапазоне |
B4G4R4A4UnormPack16 = 2 | Формат данных 4-битного канала синего/зеленого/красного/альфа-канала, упакованный в 16 бит. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R5G6B5_UNORM_PACK16 |
B5G5R5A1UnormPack16 = 6 | Формат данных канала синий/зеленый/красный/альфа с 5 битами синего, 6 битами зеленого, 5 битами красного и 1 битом альфа, упакованными в 16 бит. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_A1R5G5B5_UNORM_PACK16 |
B5G6R5UnormPack16 = 4 | Формат данных канала синий/зеленый/красный с 5 битами синего, 6 битами зеленого и 5 битами красного, упакованными в 16 бит. Значения находятся в диапазоне |
B8G8R8A8Sint = 48 | Формат данных 8-битного на канал знакового целого числа синего/зеленого/красного/альфа-канала. Значения находятся в диапазоне ДАНЫ_ФОРМАТ_B8G8R8A8_SRGB |
B8G8R8A8Snorm = 44 | Формат данных канала синего/зеленого/красного/альфа со знаком 8 бит на канал и плавающей точкой с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_B8G8R8A8_USCALED |
B8G8R8A8Srgb = 49 | 8-битный формат данных с плавающей запятой без знака для каждого канала: синий/зеленый/красный/альфа-канал, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне
|
B8G8R8A8Sscaled = 46 | Формат данных с голубой/зеленой/красной/альфа-канала с масштабной величиной (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_B8G8R8A8_UINT |
B8G8R8A8Uint = 47 | Формат данных 8-битного на канал беззнакового целого числа синего/зеленого/красного/альфа-канала. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_B8G8R8A8_SINT |
B8G8R8A8Unorm = 43 | Формат данных 8-битного канала без знака с плавающей точкой синего/зеленого/красного/альфа с нормализованным значением. Значения находятся в диапазоне |
B8G8R8A8Uscaled = 45 | Формат данных канала 8-битная на канал неподписываемая синяя/зеленая/красная/альфа с масштабируемым значением (значение преобразуется с целого в float) Значения: |
B8G8R8G8422Unorm = 185 | Формат данных синего/зеленого/красного канала без знака с плавающей точкой 8 бит на канал с нормализованным значением. Значения находятся в диапазоне |
B8G8R8Sint = 34 | Формат данных 8-битного на канал знакового целого числа синего/зеленого/красного канала. Значения находятся в диапазоне |
B8G8R8Snorm = 30 | Формат данных синего/зеленого/красного канала с плавающей точкой, 8 бит на канал, со знаком, с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_B8G8R8_USCALed |
B8G8R8Srgb = 35 | 8-битный формат данных синего/зеленого/красного цвета с плавающей запятой без знака на канал, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8G8B8A8_UNORM |
B8G8R8Sscaled = 32 | 8-битный/канал, подписанный в голубой/зеленый/красный формат данных с масштабной величиной (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_B8G8R8_UINT |
B8G8R8Uint = 33 | Формат данных 8-битного на канал беззнакового целого числа синего/зеленого/красного канала. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_B8G8R8_SINT |
B8G8R8Unorm = 29 | Формат данных синего/зеленого/красного канала с плавающей точкой и беззнаковым 8-битным каналом с нормализованным значением. Значения находятся в диапазоне |
B8G8R8Uscaled = 31 | Формат данных синего/зеленого/красного канала с масштабируемой величиной 8 бит на канал (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_B8G8R8_ШКАЛА |
Bc1RgbSrgbBlock = 131 | Формат данных красного/зеленого/синего каналов, сжатый в видеопамяти, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне |
Bc1RgbUnormBlock = 130 | Сжатый VRAM беззнаковый формат данных красного/зеленого/синего канала с нормализованным значением. Значения находятся в диапазоне |
Bc1RgbaSrgbBlock = 133 | Формат данных красного/зеленого/синего/альфа-канала, сжатый в видеопамяти, с нормализованными значениями и нелинейным кодированием sRGB. Значения находятся в диапазоне |
Bc1RgbaUnormBlock = 132 | Сжатый VRAM беззнаковый формат данных красного/зеленого/синего/альфа-канала с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_BC1_RGBA_SRGB_BLOK |
Bc2SrgbBlock = 135 | Сжатый в видеопамяти формат данных беззнаковых каналов красного/зеленого/синего/альфа-канала с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне |
Bc2UnormBlock = 134 | Сжатый VRAM беззнаковый формат данных красного/зеленого/синего/альфа-канала с нормализованным значением. Значения находятся в диапазоне |
Bc3SrgbBlock = 137 | Формат данных красного/зеленого/синего/альфа-канала, сжатый в видеопамяти, с нормализованными значениями и нелинейным кодированием sRGB. Значения находятся в диапазоне |
Bc3UnormBlock = 136 | Сжатый VRAM беззнаковый формат данных красного/зеленого/синего/альфа-канала с нормализованным значением. Значения находятся в диапазоне |
Bc4SnormBlock = 139 | Формат данных красного канала со знаком, сжатый VRAM, с нормализованным значением. Значения находятся в диапазоне |
Bc4UnormBlock = 138 | Сжатый VRAM беззнаковый формат данных красного канала с нормализованным значением. Значения находятся в диапазоне |
Bc5SnormBlock = 141 | Формат данных канала красного/зеленого со знаком, сжатый VRAM, с нормализованным значением. Значения находятся в диапазоне |
Bc5UnormBlock = 140 | Сжатый VRAM беззнаковый формат данных красного/зеленого канала с нормализованным значением. Значения находятся в диапазоне |
Bc6HSfloatBlock = 143 | Формат данных канала красного/зеленого/синего со знаком, сжатый VRAM, с плавающей точкой, сохраненной как есть. Точность формата составляет от 10 до 13 бит для каналов красного/зеленого/синего. Используется сжатие текстур BC6H (также известное как БПТС " Доклад о развитии человеческого потенциала "). ДАННЫЕ_ФОРМАТ_BC7_UNORM_BLOK |
Bc6HUfloatBlock = 142 | Формат данных каналов красного/зеленого/синего цвета без знака, сжатый VRAM, с плавающей точкой, сохраненной как есть. Точность формата составляет от 10 до 13 бит для каналов красного/зеленого/синего цвета. Используется сжатие текстур BC6H (также известное как БПТС " Доклад о развитии человеческого потенциала "). |
Bc7SrgbBlock = 145 | Формат данных красного/зеленого/синего/альфа-канала, сжатый в видеопамяти, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне |
Bc7UnormBlock = 144 | Сжатый VRAM беззнаковый формат данных красного/зеленого/синего/альфа-канала с нормализованным значением. Значения находятся в диапазоне |
D16Unorm = 123 | 16-битный беззнаковый формат данных с плавающей точкой глубины с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_X8_D24_UNORM_PACK32 |
D16UnormS8Uint = 127 | 16-битный беззнаковый формат данных с плавающей точкой глубины с нормализованным значением, плюс 8 бит трафарета в беззнаковом целочисленном формате. Значения для глубины находятся в диапазоне |
D24UnormS8Uint = 128 | 24-битный беззнаковый формат данных с плавающей точкой глубины с нормализованным значением, плюс 8 бит трафарета в беззнаковом целочисленном формате. Значения для глубины находятся в диапазоне |
D32Sfloat = 125 | 32-битный знаковый формат данных глубины с плавающей точкой, значение которого сохраняется «как есть». ДАННЫЕ_ФОРМАТА_S8_UINT |
D32SfloatS8Uint = 129 | 32-битный знаковый формат данных глубины с плавающей точкой, значение которого хранится как есть, плюс 8 бит трафарета в формате беззнакового целого числа. Значения для трафарета находятся в диапазоне |
E5B9G9R9UfloatPack32 = 122 | Формат данных экспозиции/синего/зеленого/красного без знака с плавающей точкой, значение хранится как есть, упаковано в 32 бита. Точность формата составляет 5 бит экспозиции, 9 бит синего канала, 9 бит зеленого канала и 9 бит красного канала. ДАТА_ФОРМАТ_D16_UNORM |
EacR11G11SnormBlock = 155 | 11-битный сжатый VRAM-компрессированный формат данных красного/зеленого канала с нормализованным значением. Значения находятся в диапазоне |
EacR11G11UnormBlock = 154 | 11-битный сжатый VRAM беззнаковый формат данных красного/зеленого канала с нормализованным значением. Значения находятся в диапазоне |
EacR11SnormBlock = 153 | 11-битный сжатый VRAM-компрессированный формат данных красного канала со знаком и нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_EAC_R11G11_UNORM_BLOCK |
EacR11UnormBlock = 152 | 11-битный сжатый VRAM беззнаковый формат данных красного канала с нормализованным значением. Значения находятся в диапазоне |
Etc2R8G8B8A1SrgbBlock = 149 | Сжатые в видеопамяти данные беззнаковых каналов красного/зеленого/синего/альфа-канала с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_ETC2_R8G8B8A8_UNORM_BLOCK |
Etc2R8G8B8A1UnormBlock = 148 | Сжатый VRAM беззнаковый формат данных красного/зеленого/синего/альфа-канала с нормализованным значением. Значения находятся в диапазоне |
Etc2R8G8B8A8SrgbBlock = 151 | Сжатые в видеопамяти данные беззнаковых каналов красного/зеленого/синего/альфа-канала с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_EAC_R11_UNORM_BLOCK |
Etc2R8G8B8A8UnormBlock = 150 | Сжатый VRAM беззнаковый формат данных красного/зеленого/синего/альфа-канала с нормализованным значением. Значения находятся в диапазоне |
Etc2R8G8B8SrgbBlock = 147 | Сжатые в видеопамяти данные каналов красного/зеленого/синего цвета без знака, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне |
Etc2R8G8B8UnormBlock = 146 | Сжатый VRAM беззнаковый формат данных каналов красного/зеленого/синего с нормализованным значением. Значения находятся в диапазоне |
G10X6B10X6G10X6R10X6422Unorm4Pack16 = 194 | 10-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/зеленого/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованные в 4×16 бит. Значения находятся в диапазоне |
G10X6B10X6R10X62Plane420Unorm3Pack16 = 197 | 10-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 2 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне |
G10X6B10X6R10X62Plane422Unorm3Pack16 = 199 | 10-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 3 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне |
G10X6B10X6R10X63Plane420Unorm3Pack16 = 196 | 10-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 2 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне |
G10X6B10X6R10X63Plane422Unorm3Pack16 = 198 | 10-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 3 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне |
G10X6B10X6R10X63Plane444Unorm3Pack16 = 200 | 10-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 3 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R12X4_UNORM_PACK16 |
G12X4B12X4G12X4R12X4422Unorm4Pack16 = 204 | 12-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/зеленого/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованные в 4×16 бит. Значения находятся в диапазоне |
G12X4B12X4R12X42Plane420Unorm3Pack16 = 207 | 12-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 2 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне |
G12X4B12X4R12X42Plane422Unorm3Pack16 = 209 | 12-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 3 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне |
G12X4B12X4R12X43Plane420Unorm3Pack16 = 206 | 12-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 2 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне |
G12X4B12X4R12X43Plane422Unorm3Pack16 = 208 | 12-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 3 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне |
G12X4B12X4R12X43Plane444Unorm3Pack16 = 210 | 12-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Упакованы в 3×16 бит и хранятся в 3 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне |
G16B16G16R16422Unorm = 211 | Формат данных зеленого/синего/красного каналов без знака с плавающей точкой 16 бит на канал с нормализованным значением. Значения находятся в диапазоне |
G16B16R162Plane420Unorm = 214 | 16-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Хранятся в 2 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне |
G16B16R162Plane422Unorm = 216 | 16-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Хранятся в 3 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне |
G16B16R163Plane420Unorm = 213 | 16-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Хранятся в 2 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне |
G16B16R163Plane422Unorm = 215 | 16-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Хранятся в 3 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне |
G16B16R163Plane444Unorm = 217 | 16-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала. Хранятся в 3 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне |
G8B8G8R8422Unorm = 184 | Формат данных зеленого/синего/красного каналов без знака с плавающей точкой, 8 бит на канал, с нормализованным значением. Значения находятся в диапазоне |
G8B8R82Plane420Unorm = 187 | 8-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, хранящиеся в 2 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне |
G8B8R82Plane422Unorm = 189 | 8-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, хранящиеся в 2 отдельных плоскостях (зеленый + синий/красный). Значения находятся в диапазоне |
G8B8R83Plane420Unorm = 186 | 8-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, хранящиеся в 3 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне |
G8B8R83Plane422Unorm = 188 | 8-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, хранящиеся в 2 отдельных плоскостях (зеленый + синий + красный). Значения находятся в диапазоне |
G8B8R83Plane444Unorm = 190 | 8-битные на канал беззнаковые данные с плавающей точкой зеленого/синего/красного каналов с нормализованным значением, хранящиеся в 3 отдельных плоскостях. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R10X6_UNORM_PACK16 |
Max = 232 | Представляет размер перечисления |
R10X6G10X6B10X6A10X6Unorm4Pack16 = 193 | 10-бит на канал беззнаковых данных с плавающей точкой красного/зеленого/синего/альфа-канала с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованных в 4×16 бит. Значения находятся в диапазоне |
R10X6G10X6Unorm2Pack16 = 192 | 10-бит на канал беззнаковых данных с плавающей точкой красного/зеленого каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованных в 2×16 бит. Значения находятся в диапазоне |
R10X6UnormPack16 = 191 | 10-бит на канал беззнаковых данных с плавающей точкой красного канала с нормализованным значением, плюс 6 неиспользуемых бит, упакованных в 16 бит. Значения находятся в диапазоне |
R12X4G12X4B12X4A12X4Unorm4Pack16 = 203 | 12-битные на канал беззнаковые данные с плавающей точкой красного/зеленого/синего/альфа-канала с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованные в 4×16 бит. Значения находятся в диапазоне |
R12X4G12X4Unorm2Pack16 = 202 | 12-бит на канал беззнаковых данных с плавающей точкой красного/зеленого каналов с нормализованным значением, плюс 6 неиспользуемых бит после каждого канала, упакованных в 2×16 бит. Значения находятся в диапазоне |
R12X4UnormPack16 = 201 | 12-бит на канал беззнаковых данных с плавающей точкой красного канала с нормализованным значением, плюс 6 неиспользуемых бит, упакованных в 16 бит. Значения находятся в диапазоне |
R16G16B16A16Sfloat = 96 | Формат данных красного, зеленого, синего и альфа-канала с плавающей точкой и 16-битным знаком, значение сохраняется «как есть». ДАННЫЕ_ФОРМАТ_R32_UINT |
R16G16B16A16Sint = 95 | Формат данных канала красного/зеленого/синего/альфа со знаком 16 бит на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R16G16B16A16_SFLOAT |
R16G16B16A16Snorm = 91 | Формат данных канала красного/зеленого/синего/альфа со знаком и плавающей точкой, 16 бит на канал, с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R16G16B16A16_USCALed |
R16G16B16A16Sscaled = 93 | Формат данных о плавучих каналах красного/зеленого/голубого/алфского канала с масштабной величиной (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_R16G16B16A16_UINT |
R16G16B16A16Uint = 94 | Формат данных канала красного/зеленого/синего/альфа с 16-битным беззнаковым целым числом. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R16G16B16A16_SINT |
R16G16B16A16Unorm = 90 | Формат данных канала красного/зеленого/синего/альфа с 16 битами на канал без знака и плавающей точкой с нормализованным значением. Значения находятся в диапазоне ДАНЫ_ФОРМАТ_R16G16B16A16_SNORM |
R16G16B16A16Uscaled = 92 | Формат данных по плавучему каналу в красной/зеленой/синей/альфа-канала с масштабируемой величиной (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_R16G16B16A16_ШКАЛА |
R16G16B16Sfloat = 89 | Формат данных красного/зеленого/синего каналов с плавающей точкой и 16 битами на канал, со значением, сохраняемым «как есть». ДАННЫЕ_ФОРМАТ_R16G16B16A16_UNORM |
R16G16B16Sint = 88 | Формат данных канала красного/зеленого/синего цвета со знаком 16 бит на канал. Значения находятся в диапазоне ДАНЫ_ФОРМАТ_R16G16B16_SFLOAT |
R16G16B16Snorm = 84 | Формат данных канала красного/зеленого/синего цвета с плавающей точкой и 16 битами на канал, со знаком, с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R16G16B16_USCALed |
R16G16B16Sscaled = 86 | Формат данных по плавучим точкам красного/зеленого/голубого канала с масштабной величиной (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_R16G16B16_UINT |
R16G16B16Uint = 87 | Формат данных канала красного/зеленого/синего цвета без знака, 16 бит на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R16G16B16_SINT |
R16G16B16Unorm = 83 | 16-битный на канал беззнаковый формат данных с плавающей точкой красного/зеленого/синего канала с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R16G16B16_SNORM |
R16G16B16Uscaled = 85 | Формат данных по красному/зеленому/голубому каналу с масштабируемой величиной (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_R16G16B16_ШКАЛЕННЫЙ |
R16G16Sfloat = 82 | Формат данных красного/зеленого каналов с плавающей точкой и 16-битным знаком на канал, значение сохраняется «как есть». ДАННЫЕ_ФОРМАТ_R16G16B16_UNORM |
R16G16Sint = 81 | Формат данных красного/зеленого канала со знаком 16 бит на канал. Значения находятся в диапазоне |
R16G16Snorm = 77 | Формат данных красного/зеленого канала с плавающей точкой и 16 битами на канал, со знаком, с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R16G16_USCALed |
R16G16Sscaled = 79 | 16-бит-канал, подписанный в красном/зеленом канале с масштабной величиной (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_R16G16_UINT |
R16G16Uint = 80 | Формат данных красного/зеленого канала без знака 16 бит на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R16G16_SINT |
R16G16Unorm = 76 | 16-битный на канал беззнаковый формат данных с плавающей точкой красного/зеленого канала с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R16G16_SNORM |
R16G16Uscaled = 78 | Формат данных по красному/зеленому каналу с увеличенной величиной 16 бит на один канал (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_R16G16_ШКАЛЕННЫЙ |
R16Sfloat = 75 | Формат данных красного канала с плавающей точкой и знаком, 16 бит на канал, значение сохраняется «как есть». ДАННЫЕ_ФОРМАТ_R16G16_UNORM |
R16Sint = 74 | Формат данных красного канала со знаком 16 бит на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R16_SFLOAT |
R16Snorm = 70 | Формат данных красного канала с плавающей точкой и 16 битами на канал со знаком и нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТА_R16_УСТАНОВАННЫЕ |
R16Sscaled = 72 | Формат данных по плавучему каналу с увеличенной величиной 16 бит на одну трубку (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_R16_UINT |
R16Uint = 73 | Формат данных красного канала без знака 16 бит на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R16_SINT |
R16Unorm = 69 | 16-битный на канал беззнаковый формат данных с плавающей точкой красного канала с нормализованным значением. Значения находятся в диапазоне |
R16Uscaled = 71 | Формат данных по плавучим каналам с масштабной величиной 16 бит на канал неподписываемого красного канала (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТА_R16_ШКАЛЕННЫЙ |
R32G32B32A32Sfloat = 108 | Формат данных красного, зеленого, синего и альфа-канала с плавающей точкой и 32-битным знаком, значение сохраняется «как есть». ДАННЫЕ_ФОРМАТ_R64_UINT |
R32G32B32A32Sint = 107 | Формат данных 32-битного на канал знакового целого числа красного/зеленого/синего/альфа-канала. Значения находятся в диапазоне ДАНЫ_ФОРМАТ_R32G32B32A32_SFLOAT |
R32G32B32A32Uint = 106 | Формат данных канала красного/зеленого/синего/альфа с 32-битным беззнаковым целым числом. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R32G32B32A32_SINT |
R32G32B32Sfloat = 105 | Формат данных красного/зеленого/синего каналов с плавающей точкой и 32-битным знаком, значение сохраняется «как есть». ДАННЫЕ_ФОРМАТ_R32G32B32A32_UINT |
R32G32B32Sint = 104 | Формат данных 32-битного на канал знакового целого числа красного/зеленого/синего канала. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R32G32B32_SFLOAT |
R32G32B32Uint = 103 | Формат данных канала красного/зеленого/синего цвета без знака, 32 бита на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R32G32B32_SINT |
R32G32Sfloat = 102 | Формат данных красного/зеленого каналов с плавающей точкой и 32-битным знаком на канал, значение сохраняется «как есть». ДАННЫЕ_ФОРМАТ_R32G32B32_UINT |
R32G32Sint = 101 | Формат данных красного/зеленого канала со знаком 32 бита на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R32G32_SFLOAT |
R32G32Uint = 100 | Формат данных канала красного/зеленого цвета без знака, 32 бита на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R32G32_SINT |
R32Sfloat = 99 | Формат данных красного канала с плавающей точкой и 32-битным знаком на канал, значение сохраняется «как есть». ДАННЫЕ_ФОРМАТА_R32G32_UINT |
R32Sint = 98 | Формат данных красного канала со знаком 32 бита на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R32_SFLOAT |
R32Uint = 97 | Формат данных красного канала без знака, 32 бита на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R32_SINT |
R4G4B4A4UnormPack16 = 1 | Формат данных канала красного/зеленого/синего/альфа по 4 бита на канал, упакованный в 16 бит. Значения находятся в диапазоне |
R4G4UnormPack8 = 0 | Формат данных красного/зеленого каналов 4 бита на канал, упакованный в 8 бит. Значения находятся в диапазоне |
R5G5B5A1UnormPack16 = 5 | Формат данных канала красный/зеленый/синий/альфа с 5 битами красного, 6 битами зеленого, 5 битами синего и 1 битом альфа, упакованными в 16 бит. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_B5G5R5A1_UNORM_PACK16 |
R5G6B5UnormPack16 = 3 | Формат данных канала красный/зеленый/синий с 5 битами красного, 6 битами зеленого и 5 битами синего, упакованными в 16 бит. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_B5G6R5_UNORM_PACK16 |
R64G64B64A64Sfloat = 120 | Формат данных красного, зеленого, синего и альфа-каналов с плавающей точкой и 64-битным знаком, значение сохраняется «как есть». ДАННЫЕ_ФОРМАТ_B10G11R11_UFLOAT_PACK32 |
R64G64B64A64Sint = 119 | Формат данных 64-битного на канал знакового целого числа красного/зеленого/синего/альфа-канала. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R64G64B64A64_SFLOAT |
R64G64B64A64Uint = 118 | Формат данных канала красного/зеленого/синего/альфа с 64-битным беззнаковым целым числом. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R64G64B64A64_SINT |
R64G64B64Sfloat = 117 | Формат данных красного/зеленого/синего каналов с плавающей точкой и 64-битным знаком, значение сохраняется «как есть». ДАНЫ_ФОРМАТ_R64G64B64A64_UINT |
R64G64B64Sint = 116 | Формат данных 64-битного на канал знакового целого числа красного/зеленого/синего канала. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R64G64B64_SFLOAT |
R64G64B64Uint = 115 | Формат данных канала красного/зеленого/синего цвета без знака 64 бита на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R64G64B64_SINT |
R64G64Sfloat = 114 | Формат данных красного/зеленого каналов с плавающей точкой и 64-битным знаком, значение сохраняется «как есть». ДАННЫЕ_ФОРМАТА_R64G64B64_UINT |
R64G64Sint = 113 | Формат данных красного/зеленого канала со знаком 64 бита на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R64G64_SFLOAT |
R64G64Uint = 112 | Формат данных 64-битного на канал беззнакового целого числа красного/зеленого канала. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R64G64_SINT |
R64Sfloat = 111 | Формат данных красного канала с плавающей точкой и знаком, 64 бита на канал, значение сохраняется «как есть». ДАННЫЕ_ФОРМАТ_R64G64_UINT |
R64Sint = 110 | Формат данных красного канала со знаком 64 бита на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R64_SFLOAT |
R64Uint = 109 | Формат данных красного канала без знака 64-бит на канал. Значения находятся в диапазоне ДАНЫ_ФОРМАТ_R64_SINT |
R8G8B8A8Sint = 41 | Формат данных канала красного/зеленого/синего/альфа со знаком 8 бит на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8G8B8A8_SRGB |
R8G8B8A8Snorm = 37 | Формат данных канала красного/зеленого/синего/альфа со знаком 8 бит на канал и плавающей точкой с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8G8B8A8_USCALED |
R8G8B8A8Srgb = 42 | 8-битный формат данных с плавающей запятой без знака для каждого канала: красный/зеленый/синий/альфа-канал, нормализованное значение и нелинейное кодирование sRGB. Значения находятся в диапазоне |
R8G8B8A8Sscaled = 39 | 8-битный/канал, подписанный в красной/зеленой/синей/альфа-каналах с масштабируемым значением (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_R8G8B8A8_UINT |
R8G8B8A8Uint = 40 | Формат данных канала красного/зеленого/синего/альфа с 8-битным беззнаковым целым числом. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8G8B8A8_SINT |
R8G8B8A8Unorm = 36 | Формат данных канала красного/зеленого/синего/альфа с 8 битами на канал без знака и плавающей точкой с нормализованным значением. Значения находятся в диапазоне |
R8G8B8A8Uscaled = 38 | Формат данных канала 8-бит на канал неподписываемой плавающей точки красный/зеленый/синий/альфа с масштабируемым значением (значение преобразуется с целого в float) Значения: ДАННЫЕ_ФОРМАТ_R8G8B8A8_ШКАЛА |
R8G8B8Sint = 27 | Формат данных канала красного/зеленого/синего цвета со знаком 8 бит на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТА_R8G8B8_SRGB |
R8G8B8Snorm = 23 | Формат данных канала красного/зеленого/синего цвета с плавающей точкой и 8 битами на канал с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8G8B8_USCALed |
R8G8B8Srgb = 28 | 8-битный формат данных каналов красного/зеленого/синего цвета с плавающей запятой без знака на канал, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_B8G8R8_UNORM |
R8G8B8Sscaled = 25 | 8-бит-канал, подписанный в красном/зеленом/голубом канале с масштабируемой величиной (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_R8G8B8_UINT |
R8G8B8Uint = 26 | Формат данных канала красного/зеленого/синего цвета без знака 8 бит на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8G8B8_SINT |
R8G8B8Unorm = 22 | Формат данных канала красного/зеленого/синего цвета с плавающей точкой и беззнаковым 8-битным каналом с нормализованным значением. Значения находятся в диапазоне |
R8G8B8Uscaled = 24 | Формат данных по красному/зеленому/голубому каналу с масштабируемым значением (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТА_R8G8B8_ШКАЛЕННЫЙ |
R8G8Sint = 20 | Формат данных красного/зеленого канала со знаком 8 бит на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8G8_SRGB |
R8G8Snorm = 16 | Формат данных красного/зеленого канала с плавающей точкой и знаком 8 бит на канал с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8G8_USCALED |
R8G8Srgb = 21 | 8-битный формат данных красного/зеленого канала с плавающей запятой без знака на канал, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8G8B8_UNORM |
R8G8Sscaled = 18 | 8-битный/канал, подписанный красным/зеленым каналом с масштабной величиной (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_R8G8_UINT |
R8G8Uint = 19 | Формат данных красного/зеленого канала без знака 8-бит на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8G8_SINT |
R8G8Unorm = 15 | Формат данных красного/зеленого канала без знака с плавающей точкой, 8 бит на канал, с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8G8_SNORM |
R8G8Uscaled = 17 | 8-битная на канал неподписанная красная/зеленая трубка с масштабируемым значением (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_R8G8_ШКАЛЕННЫЙ |
R8Sint = 13 | Формат данных красного канала со знаком 8 бит на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТА_R8_SRGB |
R8Snorm = 9 | Формат данных красного канала с плавающей точкой и знаком 8 бит на канал с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТА_R8_УСТАНОВКИ |
R8Srgb = 14 | 8-битный формат данных красного канала с плавающей запятой без знака на канал, с нормализованным значением и нелинейным кодированием sRGB. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8G8_UNORM |
R8Sscaled = 11 | Формат данных по плавучему каналу с масштабной величиной 8 бит на одну трубу (значение переводится из целого в float) Значения: ДАННЫЕ_ФОРМАТ_R8_UINT |
R8Uint = 12 | Формат данных красного канала без знака 8-бит на канал. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8_SINT |
R8Unorm = 8 | Формат данных красного канала без знака с плавающей точкой, 8 бит на канал, с нормализованным значением. Значения находятся в диапазоне ДАННЫЕ_ФОРМАТ_R8_SNORM |
R8Uscaled = 10 | Формат данных по плавучему каналу с увеличенной величиной 8 бит на канал неподписываемого красного канала (значение преобразуется из целого в float) Значения: ДАННЫЕ_ФОРМАТ_R8_ШКАЛИРОВАННЫЕ |
S8Uint = 126 | Формат данных трафарета 8-битного беззнакового целого числа. ДАННЫЕ_ФОРМАТ_D16_UNORM_S8_UINT |
X8D24UnormPack32 = 124 | 24-битный беззнаковый формат данных глубины с плавающей точкой с нормализованным значением, плюс 8 неиспользуемых бит, упакованных в 32 бита. Значения глубины находятся в диапазоне ДАТА_ФОРМАТ_D32_SFLOAT |
RenderingDevice.DeviceType
| Значение | Описание |
|---|---|
Cpu = 4 | Устройство рендеринга обеспечивается программной эмуляцией (например, Lavapipe или SwiftShader(https://github.com/google/swiftshader)). Это самый медленный тип доступного устройства рендеринга; обычно он намного медленнее, чем |
DiscreteGpu = 2 | Устройство рендеринга — это выделенный графический процессор, который обычно (но не всегда) быстрее интегрированных графических процессоров ( |
IntegratedGpu = 1 | Устройство рендеринга — это интегрированный графический процессор, который обычно (но не всегда) медленнее, чем выделенные графические процессоры ( |
Max = 5 | Представляет размер перечисления |
Other = 0 | Тип устройства рендеринга не соответствует ни одному из других значений перечисления или неизвестен. |
VirtualGpu = 3 | Устройство рендеринга — это эмулированный GPU в виртуальной среде. Обычно он намного медленнее, чем хост-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 | Буфер любого типа (хранилище, вершинный и т. д.).
|
CommandQueue = 3 | Основная очередь команд для графических вычислений (параметр
|
ComputePipeline = 11 |
|
LogicalDevice = 0 | Объект конкретного устройства, основанный на физическом устройстве (параметр
|
PhysicalDevice = 1 | Физическое устройство, на котором основано конкретное логическое устройство (параметр
|
QueueFamily = 4 | Конкретное семейство, к которому принадлежит основная очередь (параметр
ВОДИТЬ ИСТОЧНИК_ТЕКСТ |
RenderPipeline = 12 |
ВОДИТЬ ИСТОЧНИКИ ВУЛКАН |
Sampler = 8 |
|
Texture = 5 |
|
TextureDataFormat = 7 | Собственный идентификатор формата данных текстуры.
|
TextureView = 6 | Вид собственной или общей текстуры.
|
TopmostObject = 2 | Самый верхний объект записи графического API (параметр
|
UniformSet = 9 |
|
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 | Представляет размер перечисления ЗАКЛЮЧИТЕЛЬНОЕ ЗАКЛЮЧЕНИЕ |
Read = 0 | |
Store = 0 | Сохраните результат списка отрисовки в буфере кадра. Это то, что вы обычно хотите сделать. ЗАКЛЮЧИТЕЛЬНОЕ ЗАКЛЮЧЕНИЕ |
RenderingDevice.IndexBufferFormat
| Значение | Описание |
|---|---|
Uint16 = 0 | Буфер индекса в формате 16-битного целого числа без знака. Это ограничивает максимальный индекс, который может быть указан, до |
Uint32 = 1 | Буфер индекса в формате 32-битного целого числа без знака. Это ограничивает максимальный индекс, который может быть указан, до |
RenderingDevice.InitialAction
| Значение | Описание |
|---|---|
Clear = 1 | Очистить весь буфер кадра или его указанную область. |
ClearRegion = 1 | |
ClearRegionContinue = 1 | |
Continue = 0 | |
Discard = 2 | Игнорировать предыдущее содержимое буфера кадра. Это самый быстрый вариант, если вы перезапишете все пиксели и вам не нужно их считывать. |
Drop = 2 | |
Keep = 0 | |
Load = 0 | Загрузите предыдущее содержимое буфера кадра. |
Max = 3 | Представляет размер перечисления |
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 | Возвращает наибольшее значение для |
MetalfxTemporalScalerMinScale = 46 | Возвращает наименьшее значение для |
MinUniformBufferOffsetAlignment = 26 | Минимальное равномерное выравнивание смещения буфера. |
RenderingDevice.LogicOperation
| Значение | Описание |
|---|---|
And = 1 | Логическая операция И. |
AndInverted = 4 | Логическая операция И с инвертируемым операндом source. См. также |
AndReverse = 2 | Логическая операция И с инвертируемым операндом destination (назначение). См. также |
Clear = 0 | Очистить логическую операцию (результат всегда |
Copy = 3 | Операция копирования логики (сохраняет значение source (источник) как есть). См. также |
CopyInverted = 12 | Логическая операция НЕ (инвертирует значение). См. также |
Equivalent = 9 | Логическая операция «не-исключающее ИЛИ» (XNOR). |
Invert = 10 | Инвертировать логическую операцию. |
Max = 16 | Представляет размер перечисления |
Nand = 14 | Логическая операция НЕ-И (NAND). |
NoOp = 5 | Логическая операция без операции (сохраняет значение destination как есть). См. также |
Nor = 8 | Логическая операция «НЕ-ИЛИ» (NOR). |
Or = 7 | Логическая операция ИЛИ. |
OrInverted = 13 | Логическая операция ИЛИ с инвертируемым операндом source. См. также |
OrReverse = 11 | Логическая операция ИЛИ с инвертируемым операндом destination. См. также |
Set = 15 | Логическая операция SET (результат всегда |
Xor = 6 | Логическая операция «исключающее ИЛИ» (XOR). |
RenderingDevice.MemoryType
| Значение | Описание |
|---|---|
Buffers = 1 | Память, занятая буферами. |
Textures = 0 | Память занята текстурами. |
Total = 2 | Общая занятая память. Это больше, чем сумма |
RenderingDevice.PipelineDynamicStateFlags
| Значение | Описание |
|---|---|
BlendConstants = 4 | |
DepthBias = 2 | Позволяет динамически изменять смещение глубины. |
DepthBounds = 8 | |
LineWidth = 1 | Позволяет динамически изменять ширину линий рендеринга. |
StencilCompareMask = 16 | |
StencilReference = 64 | |
StencilWriteMask = 32 |
RenderingDevice.PipelineSpecializationConstantType
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 | Представляет размер перечисления |
Points = 0 | Примитив рендеринга точки (с постоянным размером, независимо от расстояния до камеры). |
TesselationPatch = 10 | Примитив рендеринга патчей тесселяции. Полезно только с шейдерами тесселяции, которые можно использовать для деформации этих патчей. |
TriangleStrips = 7 | Примитив рендеринга полосы треугольника. Нарисованные треугольники соединяются с предыдущим треугольником. |
TriangleStripsWithAjacency = 8 | Примитив рендеринга полоски треугольника с соседством. Примечание: Смежность полезна только с геометрическими шейдерами, которые Reckfell не раскрывает. |
TriangleStripsWithRestartIndex = 9 | Примитив рендеринга полосы треугольников с включенным перезапуском примитива. Нарисованные треугольники связаны с предыдущим треугольником, но индекс перезапуска примитива может быть указан перед рисованием, чтобы создать вторую полосу треугольников после указанного индекса. Примечание: Совместимо только с индексированными рисунками. |
Triangles = 5 | Примитив рендеринга списка треугольников. Треугольники рисуются отдельно друг от друга. |
TrianglesWithAdjacency = 6 | Примитив рендеринга списка треугольников с соседством. Примечание: Смежность полезна только с геометрическими шейдерами, которые Reckfell не раскрывает. |
RenderingDevice.SamplerBorderColor
| Значение | Описание |
|---|---|
FloatOpaqueBlack = 2 | Возвращает непрозрачный черный цвет с плавающей точкой при выборке за пределами диапазона |
FloatOpaqueWhite = 4 | Возвращает непрозрачный белый цвет с плавающей точкой при выборке за пределами диапазона |
FloatTransparentBlack = 0 | Возвращает прозрачный черный цвет с плавающей точкой при выборке за пределами диапазона |
IntOpaqueBlack = 3 | Возвращает целочисленный непрозрачный чёрный цвет при выборке за пределами диапазона |
IntOpaqueWhite = 5 | Возвращает целочисленный непрозрачный белый цвет при выборке за пределами диапазона |
IntTransparentBlack = 1 | Возвращает целочисленный прозрачный чёрный цвет при сэмплировании вне диапазона |
Max = 6 | Представляет размер перечисления |
RenderingDevice.SamplerFilter
| Значение | Описание |
|---|---|
Linear = 1 | Фильтрация билинейного сэмплера. Выборка с более высоким разрешением, чем у источника, приведет к размытому виду. |
Nearest = 0 | Фильтрация сэмплера ближайшего соседа. Выборка с более высоким разрешением, чем у источника, приведет к пикселизированному виду. |
RenderingDevice.SamplerRepeatMode
| Значение | Описание |
|---|---|
ClampToBorder = 3 | Образец с отключенным повторением. При выборке за пределами диапазона |
ClampToEdge = 2 | Образец с отключенным повторением. При выборке за пределами диапазона |
Max = 5 | Представляет размер перечисления |
MirrorClampToEdge = 4 | Выборка с включенным зеркальным повторением, но только один раз. При выборке в диапазоне |
MirroredRepeat = 1 | Сэмпл с включенным зеркальным повторением. При сэмплировании за пределами диапазона |
Repeat = 0 | Образец с включенным повторением. |
RenderingDevice.ShaderLanguage
RenderingDevice.ShaderStage
| Значение | Описание |
|---|---|
AnyHit = 6 | Любой этап шейдера попадания. Вызывается, когда точки пересечения лучей не являются непрозрачными. Это можно использовать для указания того, что происходит, когда луч попадает в любую из геометрических фигур в сцене. |
AnyHitBit = 64 | Любой бит этапа шейдера попадания (см. также |
ClosestHit = 7 | Этап шейдера "Ближайшее попадание". Он позволяет задать, что происходит, когда луч попадает в ближайшую геометрическую фигуру в сцене. |
ClosestHitBit = 128 | Бит этапа шейдера ближайшего попадания (см. также |
Compute = 4 | Этап вычислительного шейдера. Это может быть использовано для запуска произвольных вычислительных задач в шейдере, выполняя их на GPU вместо CPU. |
ComputeBit = 16 | Вычислить бит этапа шейдера (см. также |
Fragment = 1 | Этап фрагментного шейдера (называемый «пиксельным шейдером» в Direct3D). Его можно использовать для манипулирования пикселями из шейдера. |
FragmentBit = 2 | Бит этапа фрагментного шейдера (см. также |
Intersection = 9 | Этап шейдера пересечения. Шейдер пересечения для треугольников встроен. Его можно использовать для вычисления пересечений лучей с примитивами, которые не являются треугольниками. |
IntersectionBit = 512 | Бит этапа шейдера пересечения (см. также |
Max = 10 | Представляет размер перечисления |
Miss = 8 | Этап промаха шейдера. Это позволяет указать, что произойдет, если луч не попадет ни во что в сцене. |
MissBit = 256 | Пропущенный бит этапа шейдера (см. также |
Raygen = 5 | Этап генерации лучей в шейдере. Его можно использовать для генерации первичных лучей. |
RaygenBit = 32 | Бит этапа генерации шейдера лучей (см. также |
TesselationControl = 2 | Этап шейдера управления тесселяцией. Это можно использовать для создания дополнительной геометрии из шейдера. |
TesselationControlBit = 4 | Бит этапа шейдера управления тесселяцией (см. также |
TesselationEvaluation = 3 | Этап шейдера оценки тесселяции. Это можно использовать для создания дополнительной геометрии из шейдера. |
TesselationEvaluationBit = 8 | Бит этапа шейдера оценки тесселяции (см. также |
Vertex = 0 | Стадия вершинного шейдера. Это можно использовать для манипулирования вершинами из шейдера (но не для создания новых вершин). |
VertexBit = 1 | Бит этапа вершинного шейдера (см. также |
RenderingDevice.StencilOperation
| Значение | Описание |
|---|---|
DecrementAndClamp = 4 | Уменьшить существующее значение трафарета и зафиксировать его на минимальном значении, если оно достигнуто. Биты трафарета рассматриваются как беззнаковое целое число. |
DecrementAndWrap = 7 | Уменьшить значение трафарета и вернуться к максимально представимому беззнаковому значению, если достигнуто минимум. Биты трафарета рассматриваются как беззнаковое целое число. |
IncrementAndClamp = 3 | Увеличить существующее значение трафарета и зафиксировать его на максимально представимом беззнаковом значении, если оно достигнуто. Биты трафарета рассматриваются как беззнаковое целое число. |
IncrementAndWrap = 6 | Увеличить значение трафарета и перейти к |
Invert = 5 | Побитовое инвертирование существующего значения трафарета. |
Keep = 0 | Сохранить текущее значение трафарета. |
Max = 8 | Представляет размер перечисления |
Replace = 2 | Замените существующее значение трафарета новым. |
Zero = 1 | Установите значение трафарета на |
RenderingDevice.StorageBufferUsage
| Значение | Описание |
|---|---|
Indirect = 1 |
RenderingDevice.TextureSamples
| Значение | Описание |
|---|---|
Max = 7 | Представляет размер перечисления |
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 | Представляет размер перечисления |
One = 2 | Всегда возвращайте |
R = 3 | Возьмите образец красного цветового канала. |
Zero = 1 | Всегда возвращайте |
RenderingDevice.TextureType
| Значение | Описание |
|---|---|
Cube = 3 | Текстура |
CubeArray = 6 | Array Количество |
Max = 7 | Представляет размер перечисления |
Type1D = 0 | Одномерная текстура. |
Type1DArray = 4 | Array 1-мерные текстуры. |
Type2D = 1 | 2-мерная текстура. |
Type2DArray = 5 | Array двухмерные текстуры. |
Type3D = 2 | 3-мерная текстура. |
RenderingDevice.TextureUsageBits
| Значение | Описание |
|---|---|
CanCopyFromBit = 128 | Texture может быть источником |
CanCopyToBit = 256 | Texture может быть пунктом назначения для |
CanUpdateBit = 64 | Texture можно обновить с помощью |
ColorAttachmentBit = 2 | Texture может использоваться как цветное соединение в кадрах. |
CpuReadBit = 32 | Texture может быть считываем на процессор с помощью |
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 | Представляет размер перечисления |
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 Базовая форма.
|
UniformBuffer = 7 | Унифицированная буферная униформа. |
UniformBufferDynamic = 10 | То же, что и UNIFORM_TYPE_UNIFORM_BUFFER, но для буферов, созданных с помощью BUFFER_KREAT_DYNAMIC_PERSISTENT_BIT. Примечание: Этот флаг не доступен пользователям ReckfellApi из-за того, что он слишком опасен (т.е. неправильное использование может привести к визуальным сбоям). На случай, если пользователи ReckfellApi получат буфер, созданный с таким флагом от Reckfell. |
RenderingDevice.VertexFrequency
| Значение | Описание |
|---|---|
Instance = 1 | Адресация атрибутов вершин является функцией индекса экземпляра. Это используется для указания скорости, с которой атрибуты вершин извлекаются из буферов. |
Vertex = 0 | Адресация атрибутов вершин является функцией вершины. Это используется для указания скорости, с которой атрибуты вершин извлекаются из буферов. |