2017-04-13 85 views
0

我目前正在努力學習Vulkan,所以如果這個問題很愚蠢/顯而易見,可以隨時給我打電話,因爲我缺乏相關知識。Vulkan,不同輸入的多個指數

我搜索了網頁(使用Google)試圖獲取我需要的信息,但沒有成功,這就是爲什麼我在這裏。

我的問題: 比方說,我有以下輸入頂點着色器:

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,如果不是如何解決這個問題?

+0

你是對的,對不起,一定是錯過了它,而搜索 – Begah

回答

0

這是不可能的。

您將需要複製數據,以便每個唯一的頂點具有自己的數據。這在opengl中是完全相同的。

可以選擇使用存儲緩衝區來根據您作爲頂點數據傳遞的索引以編程方式提取數據,但這可能會導致性能較差。