Graphics Vulkan,针对不同输入的多个指数

Graphics Vulkan,针对不同输入的多个指数,graphics,3d,vulkan,Graphics,3d,Vulkan,我目前正在努力学习Vulkan,所以如果这个问题很愚蠢/明显,请随时因为我缺乏知识而给我打电话 我在网上搜索(使用谷歌)试图获取我需要的信息,但没有成功,这就是我来这里的原因 我的问题: 假设我有一个具有以下输入的顶点着色器: layout(location = 0) in vec3 inPosition; layout(location = 1) in vec3 inNormal; layout(location = 2) in vec2 inUV; 我已经将管道和缓冲区配置为向顶点着色器发

我目前正在努力学习Vulkan,所以如果这个问题很愚蠢/明显,请随时因为我缺乏知识而给我打电话

我在网上搜索(使用谷歌)试图获取我需要的信息,但没有成功,这就是我来这里的原因

我的问题: 假设我有一个具有以下输入的顶点着色器:

layout(location = 0) in vec3 inPosition;
layout(location = 1) in vec3 inNormal;
layout(location = 2) in vec2 inUV;
我已经将管道和缓冲区配置为向顶点着色器发送信息。我的问题来自于试图用指数画图。多个相同的顶点可以有不同的法线,所以我想指定从哪个索引读取3个不同输入的数据

环顾四周,看看API,我找不到一种方法来为每个顶点的不同输入设置不同的索引

我想要这样的东西:

indices = {0, 0, 0, // Vertice, Normal, UV
  0, 1, 0, // Vertice, Normal, UV
  3, 8, 3};  // Vertice, Normal, UV
因此,总共有3个顶点,但每个不同的输入都有索引。 这在vulkan中可能吗?如果不可能,我如何解决这个问题?

这是不可能的

您需要复制数据,以便每个唯一顶点都有自己的数据。这与opengl中的交易完全相同


可以选择使用存储缓冲区根据作为顶点数据传递的索引以编程方式提取数据,但这可能会导致性能下降。

你说得对,抱歉,搜索时一定错过了它