You will need to explicitly set the necessary render states to whatever is appropriate for your models. It is uncommon for rendering code (in XNA or otherwise) to "clean up after itself" in the way which you expect; that would be an additional expense that is often unnecessary. Rather, it's usually assumed that if you need the device to be set a certain way before rendering, that'll you do so yourself at the time, and if you don't explicitly set something then you're fine with it being any arbitrary value.
It's hard to know exactly what's wrong when you say that your models "render improperly," but I would recommend that you investigate the following properties on GraphicsDevice
:
The MSDN documentation specifies their default values, so you might try explicitly resetting them. It is unlikely that you need to reset all of them; my guess based on what you've written is that SamplerStates
is likely the culprit. Learn what each one does and try to understand how it might be influencing what you see.
Definitely don't call GraphicsDevice.Reset().
That's way overkill, and not intended for this purpose.