2017-04-13 9 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頂点が、それぞれ異なる入力のための指標であります

は、私はこのような何かをしたいです。 これは不可能なのでしょうか?どうすればいいですか?

+0

あなたは正しいです、検索中に申し訳ありませんでした。 – Begah

答えて

0

これはできません。

一意の頂点ごとに独自のデータがあるようにデータを複製する必要があります。これはopenglの場合と全く同じです。

頂点データとして渡すインデックスに基づいてデータをプログラムでプルするためにストレージバッファを使用するオプションがありますが、パフォーマンスが低下する可能性があります。

関連する問題