Version différente de PixelShader et VertexShader pour SpriteBatch
Question
J'ai essayé de compiler quelques exemples de pixel shaders. Mais tous donnent le même message d'erreur.
« ne peut pas mélanger Shader 3.0 avec des modèles plus tôt shaders. Si soit le vertex shader ou pixel shader est compilé comme 3.0, ils doivent tous deux être. »
Le problème semble être que les utilisations de pixel shaders et ps_3_0 lot Sprite version antérieure.
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
La solution
Vous devez recompiler vertex shader avec la version 3.0. Vous pouvez obtenir des shaders par défaut de XNA de http://create.msdn.com / fr-fr / éducation / catalogue / sample / stock_effects Copiez le code à partir de là, mais la version jeu de vertex shader à vs_3_0.
La plupart des processeurs graphiques convertissent les versions en silence, de sorte que vous êtes un peu de chance de. :)