1.firstIndex:
VkDrawIndexedIndirectCommand cmd = {
.indexCount = 36,
.firstIndex = 1000
};
- 控制从索引缓冲区的哪个位置开始读取索引数据
- 影响 gl_VertexIndex 的值
- 用于在一个大的索引缓冲区中定位不同模型的索引数据
- 所有实例共用这些索引数据
2.firstInstance
VkDrawIndexedIndirectCommand cmd = {
.instanceCount = 2000,
.firstInstance = 1000
};
- 控制实例ID的起始值
- 影响 gl_InstanceIndex 的值
- 用于在实例数据缓冲区中定位不同批次的实例数据
- 每个实例使用不同的实例数据
#version 450
layout(location = 0) in vec3 inPosition;
struct InstanceData {
vec4 position;
vec4 color;
};
layout(set = 0, binding = 0) buffer InstanceBuffer {
InstanceData instances