title: XNA vs SlimDX for offscreen renderer
body: <p>I realise there are numerous questions on here asking about choosing between XNA and SlimDX, but these all relate to game programming.</p>
  
  <p>A little background: I have an application that renders scenes from XML descriptions. Currently I am using WPF 3D and this mostly works, except that WPF has no way to render scenes offscreen (i.e. on a server, without displaying them in a window), and also rendering to a bitmap causes WPF to fallback to software rendering.</p>
  
  <p>So I'm faced with having to write my own renderer. Here are the requirements:</p>
  
  <ul>
  <li>Mix of 3D and 2D elements.</li>
  <li>Relatively few elements per scene (tens of meshes, tens of 2D elements).</li>
  <li>Large scenes (up to 3000px square for print).</li>
  <li>Only a single frame will be rendered (i.e. FPS is not an issue).</li>
  <li>Opacity masks.</li>
  <li>Pixel shaders.</li>
  <li>Software fallback (servers may or may not have a decent gfx card).</li>
  <li>Possibility of being rendered offscreen.</li>
  </ul>
  
  <p>As you can see it's pretty simple stuff and WPF can manage it quite nicely except for the not-being-able-to-export-the-scene problem.</p>
  
  <p>In particular I don't need many of the things usually needed in game development. So bearing that in mind, would you choose XNA or SlimDX? The non-rendering portion of the code is already written in C#, so want to stick with that.</p>