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.




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