¿Por qué es tan difícil aprender DirectX?

Si no te gusta DirectX, prueba OpenGL 4.5. O ver si la nueva API de Vulkan es interesante.

La API se crea primero para el rendimiento, no para la facilidad de uso, y con el tiempo creció para cubrir importantes temas específicos del rendimiento. Utilicé DirectX hasta la versión 9. Incluso entonces había temas bastante complicados, como sombreadores que tenían su propio idioma, todos los diferentes formatos de textura, pequeños trucos donde reordenar los vértices de la malla podía hacer que se renderizara más rápido. A lo largo del tiempo evolucionó. Desde comandos de tipo asm que los shaders se transformaron en códigos de alto nivel tipo C, los FVF fueron reemplazados por los descriptores de formato Vertex, algunas cosas desaparecieron (como las clases DXUT), eventualmente hubo instancias, renderización diferida y muchas más tecnologías que podrían implementarse , más de lo que usted podría seguir de forma realista.

Es un api de gráficos en 3D, y se supone que es capaz de manejar todas las situaciones posibles que puedan surgir en los gráficos en 3D. Algo como esto no será sencillo.

En cuanto a recordarlo, lo recordarás a través del uso.

Además, ten en cuenta que si tu objetivo es hacer juegos, entonces en lugar de aprender DirectX, aprende el motor del juego. Unity3D y Unreal 4 están actualmente disponibles de forma gratuita * (se aplican algunas condiciones).

No es tan dificil. Además, no tiene que recordar nada: siempre puede buscar en Internet o consultar la documentación si la olvida (es cierto para cualquier API).

Si eres nuevo en DirectX, te sugiero comenzar con DirectX11. DirectX12 es más difícil ya que es de nivel inferior.

Encuentre un tutorial en Internet o comience con los tutoriales que vienen con el SDK (el SDK de junio de 2010 es el último SDK que contenía los tutoriales de DX11 fáciles de seguir).

También depende de por qué quieres aprender DirectX. Si no va a hacer renderización 3D y solo está buscando alguna API 2D simple para cargar imágenes, dibujar círculos, líneas o texto, es probable que Direct3D no sea la opción ideal.