2010-12-22 169 views
0

確定SM 4.0頂點着色器的輸入順序是否重要?頂點着色器輸入順序

例如是

struct App2VS 
{ 
    float3 position : POSITION; 
    float4 color : COLOR0; 
    float3 normal : NORMAL; 
     ... 
}; 

相當於

struct App2VS 
{ 
    float4 color : COLOR0; 
    float3 position : POSITION; 
    float3 normal : NORMAL; 
     ... 
}; 

回答

2

不,它不應該的問題。映射信息由輸入佈局執行。

實質上,輸入佈局將給定的struct元素映射到特定的輸入「register」。這些輸入寄存器然後用於加載HLSL使用的結構。 HLSL結構不是真實的內存映射,因爲那些輸入寄存器(即POSITION或COLOR0)不是實際的內存位置。

+0

這樣想的。你知道在什麼情況下,不同的排序可能導致不同的行爲?它適用於HLSL中的{position,color,},但如果將其更改爲{color,position,},則HLSL顏色值將用作位置。 (在C + +輸入佈局/頂點聲明沒有變化) – jameszhao00 2010-12-22 20:49:10