我试图编译一些像素着色器示例。但他们都给出了相同的错误信息。
“不能将着色器模型 3.0 与早期的着色器模型混合。如果顶点着色器或像素着色器编译为 3.0,则它们都必须是。”
问题似乎是像素着色器使用 ps_3_0 并且精灵批处理具有早期版本。
technique MyTechnique
{
pass
{
PixelShader = compile ps_3_0 Mandelbrot_PixelShader();
}
}
您必须使用 3.0 版本重新编译顶点着色器。您可以从http://create.msdn.com/en-US/education/catalog/sample/stock_effects获取 XNA 的默认着色器从那里复制代码,但将顶点着色器的版本设置为 vs_3_0。
大多数 GPU 会默默地转换版本,所以你有点不走运。:)