我正在将 XNA 3.0 云效果转换为 XNA 4.0,但出现错误
"The render target must not be set on the device when it is used as a texture."
它发生在这一行的第二个循环中:
mover.Parameters["PressureMap"].SetValue(PressureOffsets);
代码:
for (int i = 0; i < 10; i++)
{
graf.SetRenderTarget(rt5);
mover.Parameters["PressureMap"].SetValue(PressureOffsets);
mover.Parameters["DivergenceMap"].SetValue(Divergence);
mover.CurrentTechnique = mover.Techniques["Jacobi"];
mover.CurrentTechnique.Passes[0].Apply();
sp.Begin(SpriteSortMode.Deferred, BlendState.Opaque, SamplerState.PointWrap, DepthStencilState.DepthRead, RasterizerState.CullNone);
sp.Draw(Velocity, new Vector2(0, 0), Color.White);
sp.End();
graf.SetRenderTarget(null);
PressureOffsets = rt5;
}
如果它已经设置为渲染目标,我似乎无法在 XNA 4.0 中将纹理设置为效果参数。但我不知道如何将其转换为在 XNA 4.0 中工作:(