For Windows, DirectX is definitely better. For Linux (which doesn't support DirectX) your only choice is OpenGL. Microsoft's been throwing a lota money into DirectX while OpenGL hasn't really changed much in the last few years. DirectX has more features, support's a lot of the latest stuff, etc.