Zuerst einmal: Ich versuche auch diesen Low-Level-Weg zu gehen... Du brauchst ne Menge Zeit, Konzentration, Motivation und Frustrationstoleranz. Mehr, als du das von anderen Programmierern vielleicht gewohnt bist. Du wirst fiesere und schlechter auffindbare Fehler bekommen, als ein "normaler" Anwendungsprogrammierer oder einer der eine fertige Engine hat. Denn Hardware (der du sehr viel näher kommen wirst) ist was ganz anderes als Software. Ich will dich damit nicht von deiner Idee abbringen (wird wahrscheinlich eh nich klappen), aber vielleicht eine ungefähre Höhenangabe zu dem Berg geben, vor dem du stehst.
Besorg dir doch ein Buch, wo eine Engine auf DX Basis entwickelt wird. Wenn du kein hochaktuelles brauchst, dann kauf dir
David's DirectX Buch. Da wird ziemlich gut erklärt, wie die Mathematik (davon wirst du sehr viel brauchen) für 2D/3D Grafik funktioniert und wie so eine Engine aufgebaut sein könnte. Aktueller ist's vielleicht
hier.
Ich würde dir DirectX empfehlen, denn das ist noch näher an der Hardware und der Mathematik orientiert als OpenGL. So zumindest mein Eindruck! Fang mit DX11 an und mach mit DX12 weiter - dann hast du eine der (oder DIE) krassesten Low-Level-Tiefen, die du dir vorstellen kannst. Ob du das natürlich durchziehen kannst und willst, das kann ich dir bei dieser Empfehlung nicht versprechen!
Was du für Low-Level-Engineprogrammierung mit DX brauchen wirst ist C++ und HLSL (High-Level-Shading-Language). Ersteres ist für die Sprache für die CPU und letzteres die für die GPU. Aus deinem Post wird nicht so klar, ob du C++ kannst... Wenn das nicht der Fall sein sollte, empfehle ich dir dringend, erstmal C++ zu
lernen, sonst verstehst du von den DirectX11 Aufrufen nichts bzw. musst alles nochmal aufarbeiten, wenn du C++ einigermaßen beherrschst.
Ich hoffe ich konnte dir ein paar Denkanstöße und Empfehlungen geben, die dich weiterbringen! Bei weiteren: Schreib sie hier in den Thread, ist ein sehr interessantes Thema!
EDIT: Wenn das möglich ist, dann würde ich den Threadtitel zu "Low-Level Engine selber programmieren - wie fange ich an?" oder so ändern. Der Bezug zu OpenGL "schreckt" alle DX Programmierer ab, doch die werden bei der Fragestellung eher benötigt, wie ich finde.