Они очень разные графические API. Но справедливо сказать, что они в основном выполняют одно и то же. DirectX, вероятно, является предпочтительным API, если вы разрабатываете игру под Windows (или игру для XBOX), а OpenGL - это выбор, если вы хотите кросс-платформенную поддержку. Mac OS использует GL, как, например, iPhone, и многие игры для Windows также поддерживают OpenGL.
Поскольку OpenGL разрабатывался в течение долгого времени и «комитетом», он поставляется с большим количеством багажа - у API есть несколько старых вариантов, которые на самом деле не актуальны сегодня. Это одна из причин OpenGL ES; он убирает весь мусор и делает платформу более легкой.
С другой стороны, DirectX контролируется Microsoft, и поэтому он выглядит более «современно» (он основан на COM-компонентах, поэтому является высоко объектно-ориентированным). MS часто обновляет API, чтобы соответствовать новому оборудованию.
Иногда у вас нет такой роскоши (например, iphone не поддерживает DX). Но часто все сводится к личным предпочтениям / опыту. Если вы давний графический программист, вы, как правило, хорошо знакомы с обоими ...