2013-05-03 5 views
0

Я работаю над проектом. Все 2D с помощью spriteBatch.RenderTarget2D не сохраняет прозрачный фон

У меня такие вещи, как взрывы, используют специальные эффекты, которые не относятся к остальной части изображения. Так вот мой поток до сих пор:

1) Очистить фон

2) Нарисуйте все спрайты взрыва

3) Захват этого образа и реализовать свои эффекты в отдельный RenderTarget2D

4) Нарисуйте мой фон

5) Нарисуйте RenderTarget2D, созданный на шаге 3

6) нарисовать все остальное

Проблема, с которой я сталкиваюсь, заключается в том, что созданный RenderTarget2D не прозрачен в областях, на которых не нарисовано. В результате фон, взятый на этапе 4, не показан.

Я пробовал GraphicsDevice.Clear (Color.Transparent) после любых вызовов SetRenderTarget (null). Тем не менее, я все еще получаю этот фиолетовый фон.

Любые идеи?

Я бы опубликовал код, но есть слишком много для вас всех, чтобы разобраться.

ответ

0

Если вы следуете этому потоку, он должен работать;

GraphicsDevice.SetRenderTarget(renderTarget); 
    GraphicsDevice.Clear(Color.Transparent); 
    // Draw stuff to texture 
    GraphicsDevice.SetRenderTarget(null); 

    GraphicsDevice.Clear(BackgroundColor); // Important to clear here 
    // Draw background 
    // Draw texture 
    // Draw stuff