Кто-нибудь сталкивался с непоследовательным поведением при рендеринге игры xna wp 7.1 на устройстве wp 7.1 по сравнению с эмулятором wp 7.1? Игра правильно отображается на устройстве, но на эмуляторе результат имеет фиолетовый оттенок. Кроме того, создание скриншота игры на устройстве с помощью RenderTarget2D.SaveAsJpeg
дает тот же неверный результат, что и в эмуляторе.
Код длинный и запутанный, но в основном я пытаюсь визуализировать мультитекстурированный 2d ландшафт с помощью простых SpriteBatch.Draw
и некоторых Texture2D
и RenderTarget2D
, как показано ниже:
foreach TerrainLayer layer
{
GraphicsDevice.SetRenderTarget(layer.RenderTarget2D) (SurfaceFormat.Color)
GraphicsDevice.Clear(Color.Black)
spriteBatch.Begin(args1)
spriteBatch.Draw(layer.Texture2D) (dxt1)
spriteBatch.End()
spriteBatch.Begin(args2)
spriteBatch.Draw(layer.alphamap) (SurfaceFormat.Color)
spriteBatch.End()
}
GraphicsDevice.SetRenderTarget(renderedTerrain) (SurfaceFormat.Bgr565)
spriteBatch.Begin(alphablend)
foreach TerrainLayer layer
{
spriteBatch.Draw(layer.RenderTarget2D)
}
spriteBatch.End()
GraphicsDevice.SetRenderTarget(null);
GraphicsDevice.Clear(Color.Black);
//then draw to the final scene with
//graphics.PreferredBackBufferFormat = SurfaceFormat.Bgr565;
sb.Begin()
draw renderedTerrain, alphablend
sb.End();
Обновление: Чтобы прояснить проблему, вот что видно на устройстве: Правильный результат< /а>
вот что отображается в эмуляторе и результат SaveAsJpeg
на устройстве: Неверно результат