В Vulkan доступ к ресурсу памяти осуществляется через метаданные типа указателя, содержащиеся в «представлении», которое описывает, как должен интерпретироваться ресурс памяти. Дескриптор - это данные, которые указывают шейдеру «где» будет расположена эта память.
В DirectX 12 для ресурса не хватает «ресурса памяти» (см .: https://www.3dgep.com/learning-directx12-1/). Представление ресурса - это оборачивание вокруг ресурса, которое допускает конкретное использование. Например, «представление ресурса шейдера» (SRV) ) обеспечивает доступ к ресурсу с помощью шейдера, в то время как «представление неупорядоченного доступа» аналогично SRV, за исключением того, что оно обеспечивает доступ к данным в любом порядке.
«Постоянный просмотр буфера» (CBV) позволяет шейдерам получать доступ к данным, которые будут более постоянными / постоянными, чем обычно. Документы DirectX 12, похоже, не различают CBV и постоянный буфер. Например, статья под названием «Представление константного буфера» гласит:
Буферы констант содержат данные о константах шейдеров. Их ценность в том, что данные сохраняются и могут быть доступны любому шейдеру GPU, пока не потребуется изменить данные.
Слово "представление" нигде не упоминается, почти как если бы не было разницы между ресурсом и представлением ресурса. Другое место, где это происходит в документации, - статья о привязках ресурсов :
Наиболее распространенные ресурсы:
- Постоянные представления буфера (CBV)
- Виды неупорядоченного доступа (БПЛА)
- Представления ресурсов шейдеров (SRV)
- Пробоотборники
При перечислении общих ресурсов в статье упоминаются виды ресурсов, опять же, как если бы они были одним и тем же.
В чем разница между ресурсом и представлением ресурса в DirectX 12?