erstmal ein paar ding vorne weg: sowohl bei directx als auch bei opengl, rendert am ende die gleiche grafikkarte mit den gleichen funktionen. wenn du da unterschieden sehen kannst, so liegt es nicht an der schnittstelle selber, sondern daran, dass dinge wie antiallising evtl nicht eingeschaltet sind. so etwas vermute ich, ist dein problem mit beryl.
directx wird nicht wegen der lizenz unter etwas anderen systemen als windows nicht genutzt, sondern weil sie grundsätzlich nur auf der treiberarchitektur von windows läuft. cadega/wine klonen die api und setzen sie auf entsprechende treiberarchitektur von x11.
zu dem spiel, das du erwähntest, das verwendet unter allen platformen, auf denen es läuft, ausschließlich opengl+sdl. die beiden sind die erste wahl, wenn man platformunabhängig spiele o.ä. erstellen will.
damit bin ich auch endlich beim eigentlichen thema: direct x ist nicht nur die grafikschnittstelle, sondern ein generelles interface zur hardwarenahen programmierung. direct 3d und direct show kümmern sich um die grafik. directinput um den input. usw.
unter unixoiden gibt es kein system, das all diese anforderungen erschlägt. opengl ist ein reines grafiksystem, kümmert sich also im gegensatz zu direct 3d nicht um die datenformaten, sondern will bspw bei texturen direkt mit den pixeln gefüttert werden bzw. verfügt über kein speicherbares objektmodell. allerdings gibt es unzählige libs für opengl, die genau das nachrüsten.
von den technichen möglichkeiten besteht wenig unterschied zwischen directx und opengl. der hauptunterschied ist wohl, dass opengl verteilte systeme im standard vorsieht.
ansonsten ist opengl generell flexibler, wird aber seltener erweitert. das führt dann dazu, dass du bswp. mit opengl 1.2 shader programmieren kannst, also einer technik die bei erscheinen des standards noch in den sternen stand, dieses allerdings äußerst unelegant gelöst ist.
die meisten anderen teile von directx kann man mit sdl erschlagen. ich schreibe extra, die meisten, weil es auch teile wie die videoverabeitung gibt, für die man dann wieder eine extra lib wie etwa xine oder quicktime braucht.
andere wichtige libs sind allegro, das ist eine universal-lib und openal, das ist eine opengl angelehnte audio-lib. auch interessant ist libkdegames. insbesondere in der kommenden fassung.