2010-10-25 26 views
2

我試圖編譯一些像素着色器的例子。 但他們都給出了相同的錯誤信息。 「SpriteBatch的PixelShader和VertexShader的不同版本

」不能將着色器模型3.0與較早的着色器模型混合使用,如果頂點着色器或像素着色器編譯爲3.0,則它們都必須是「。

問題似乎是像素着色引擎使用了ps_3_0,並且sprite批處理版本的版本較早。

technique MyTechnique 
{ 
    pass 
    { 
     PixelShader = compile ps_3_0 Mandelbrot_PixelShader(); 
    } 
} 

http://blogs.msdn.com/b/shawnhar/archive/2006/12/11/sixty-fractals-per-second.aspx http://blogs.msdn.com/b/shawnhar/archive/2010/04/05/spritebatch-and-custom-shaders-in-xna-game-studio-4-0.aspx

回答

2

必須重新編譯頂點着色器與3.0版本。您可以從http://create.msdn.com/en-US/education/catalog/sample/stock_effects中獲取XNA的默認着色器,但將頂點着色器的版本設置爲vs_3_0。

大多數GPU都會默認轉換版本,所以你有點不吉利。 :)

+0

謝謝,我會試一試。你是對的GPU。我知道這個問題是特定於ATI的。 – 2010-10-27 08:26:28