Лучший способ диагностировать проблему такого рода - это использовать PIX (в DirectX SDK).
Фиолетовый цвет указывает, что содержимое цели рендеринга было очищено каркасом. В этом блоге объясняется, почему , и предлагаются некоторые решения.
Проще говоря, вы не можете рисовать вещи в обратном буфере, переключаться на цель рендеринга, а затем снова переключаться на обратный буфер и ожидать, что нарисованное все еще будет там. По крайней мере, не на XBox 360 - и версия XNA для ПК имитирует это поведение.
Если вы хотите иметь возможность переключиться обратно на буфер заднего хода и оставить его невредимым, вы можете изменить настройку RenderTargetUsage
для заднего буфера (или цели рендеринга, в зависимости от способа рендеринга). на PreserveContents
, как объясняется в этом сообщении в блоге. Имейте в виду, что на Xbox 360 это огромный удар по производительности.
Возможно, лучшим и более совместимым методом было бы настроить порядок вашего чертежа, чтобы вам никогда не приходилось "возвращаться" к поверхности.
( Ссылка на похожий недавний вопрос / ответ .)