Pergunta

Eu tentei compilar alguns exemplos de shader de pixels. Mas todos eles dão a mesma mensagem de erro.

"Não é possível misturar o Shader Model 3.0 com os modelos de shader anteriores. Se o shader shader ou o shader de pixels for compilado como 3.0, eles devem ser".

O problema parece ser que o shader Pixel usa PS_3_0 e Sprite Batch possui versão anterior.

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-haders-in-xna-game-studio-4-0.aspx

Foi útil?

Solução

Você deve recompilar o shader de vértice com a versão 3.0. Você pode obter sombreadores padrão de XNA de http://create.msdn.com/en-us/education/catalog/sample/stock_effects Copie o código daí, mas defina a versão do vértice shader como vs_3_0.

A maioria das GPUs converte versões silenciosamente, então você é um pouco azarado. :)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top