Shader警告X3578

Shader警告X3578:


warning X3578: Output value 'VS' is not completely initialized。 


這個警告是因爲Vertex Shader,這裏的名字是“VS”,有一個output的變量(頂點着色器的輸出結構,自定義)被賦值了,但是沒有所有的部分被賦值。


舉例:


struct OUTPUT

{

    float4 depth;

};


PixelInput VS(VertexInput input)

{

    ....

    OUTPUT out;

    out.rgb = 0;

}


因爲shader可以支持我們上面的寫法,只給某個float4(其實會對應到一個GPU寄存器)的前三位賦值,但是定義的量是float4,相對來說也就是有4個部分,所以還餘下一個float部分沒有初始化,所以shader編譯的時候編譯器會出警告。


解法:


output = 0;


對整個float4賦值就解決該問題。


實驗平臺:

Shade Model 4.0, visual studio 2008.




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章