Verschiedene Version von Pixelshader und Vertexshader für Spritebatch
Frage
Ich habe versucht, einige Pixel-Shader-Beispiele zu kompilieren. Aber alle von ihnen geben die gleiche Fehlermeldung.
„Kann nicht Shader-Modell-Mix 3.0 mit früheren Shader-Modelle. Wenn entweder der Vertex-Shader oder Pixelshader als 3.0 kompiliert wird, müssen sie beide sein.“
Das Problem scheint zu sein, dass die Pixel-Shader-Anwendungen ps_3_0 und Sprite Batch hat frühere Version.
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
Lösung
Sie müssen Vertex-Shader mit der Version 3.0 neu kompilieren. Sie können die Standard-Shadern von XNA von http://create.msdn.com bekommen / en-US / Bildung / Katalog / sample / stock_effects Code kopiert von dort, sondern Satzversion von Vertex-Shader zu vs_3_0.
Die meisten GPUs konvertieren Versionen leise, so dass Sie ein bisschen Pech haben. :)