Я попытался скомпилировать несколько примеров пиксельных шейдеров. Но все они выдают одно и то же сообщение об ошибке.
"Невозможно смешать шейдерную модель 3.0 с более ранними моделями шейдеров. Если либо вершинный шейдер, либо пиксельный шейдер скомпилированы как 3.0, они оба должны быть."
Кажется, проблема в том, что пиксельный шейдер использует ps_3_0, а пакет спрайтов имеет более раннюю версию.
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
Вы должны перекомпилировать вершинный шейдер с версией 3.0. Вы можете получить шейдеры XNA по умолчанию из http://create.msdn.com/en-US/education/catalog/sample/stock_effects Скопировать код оттуда, но установить версию вершинного шейдера vs_3_0.
Большинство графических процессоров конвертируют версии молча, так что вам немного не повезло. :)