В Вулкане нет таких служебных функций. Если вам нужно нарисовать определенный примитив, вам нужно предоставить вершины (и индексы) самостоятельно. Поэтому, если вы, например, хотите нарисовать круг, вам нужно вычислить вершины, используя стандартные тригонометрические функции, и предоставить их для вызовов рисования, используя буфер.
Это означает создание буфера с помощью vkCreateBuffer
, выделение памяти, необходимой для хранения ваших данных в этом буфере с помощью vkAllocateMemory
, и после отображения этого буфера в память хоста вы можете скопировать вершины вашего примитива (и / или индексы) к такому буферу.
Если вы используете неунифицированную архитектуру памяти (то есть настольные графические процессоры), вы также хотите загрузить эти данные с хоста на устройство для лучшей производительности.
Как только вы получитенастройку буфера, опираясь на память и ваши значения, хранящиеся в этом буфере, вы можете нарисовать свой примитив, используя vkCmdDraw*
команды.