我目前正在努力学习Vulkan,所以如果这个问题很愚蠢/显而易见,请随时通过我缺乏知识来打电话给我。
我在网上搜索(使用Google)尝试获取我需要的信息,但没有成功,这就是我在这里的原因。
我的问题: 让我们说我有一个带有以下输入的顶点着色器:
layout(location = 0) in vec3 inPosition;
layout(location = 1) in vec3 inNormal;
layout(location = 2) in vec2 inUV;
我已经配置了管道和缓冲区以将信息发送到顶点着色器。我的问题来自于试图用指数绘制。多个相同的顶点可以有不同的法线,所以我想指定从3个不同的输入读取数据的索引。
环顾四周,我找不到为每个顶点的不同输入设置不同索引的方法。
我想要这样的事情:
indices = {0, 0, 0, // Vertice, Normal, UV
0, 1, 0, // Vertice, Normal, UV
3, 8, 3}; // Vertice, Normal, UV
总的来说,有3个顶点,但每个不同的输入都有索引。 这是不是有可能在vulkan,如果不是我如何解决这个问题?
答案 0 :(得分:0)
那是不可能的。
您需要复制数据,以便每个唯一的顶点都有自己的数据。这与opengl完全相同。
可以选择使用存储缓冲区以您作为顶点数据传递的索引以编程方式提取数据,但这可能会导致性能下降。