Byron Nelson:Shawn's article has it spelled out pretty good, so I'll go the opposite direction and try to nutshell it.
The spritebatch changes "renderstates," or the way that the gpu renders things. In a nutshell, it changes them in ways that often make your 3d models render incorrectly. Before you call the draw functions on your 3d object, set (what are probably) the relevant renderstates back to what they should be to get the 3d model to render the way you expect.
GraphicsDevice.RenderState.DepthBufferEnable = true;
GraphicsDevice.RenderState.AlphaBlendEnable = false;
GraphicsDevice.RenderState.AlphaTestEnable = false;
Best,
Byron
I don't think that is the problem. If you draw the background first then draw the planet while leaving those RenderStates unchanged, then the planet will draw infront of the background since the depth test will always pass (it'll probably look pretty crazy, but it should still appear in front).
stupid question, but mikehall, can you get the background to draw when not drawing the sphere?
Edit: Or perhaps it's the blend modes. If AlphaBlendEnable is false, but your blend modes are set to SourceAlpha and InverseSourceAlpha, does anybody know what happens?