@CreepyPvP Leider ist das alles gar nicht so einfach, wie du dir das vorstellst. Da haben sich schon seeehr viele Leute (z.B. die "Erschaffer von OpenGL" - die
Khronos Group oder Nvidia) sehr viele Gedanken gemacht, wie man das effizient hinbekommt.
Der entscheidende Punkt ist aber der:
Eine moderne CPU hat im Durchschnitt vllt. 8 Kerne (Cores). Eine moderne Grafikkarte (GPU) wie die Nvidia GTX 1080 hat 3584 Cores, also 448x mal so viele Cores, wie eine CPU! Dazu kommt, dass die GPU speziell auf die mathematischen Berechnungen optimiert wurde und somit viel effizienter mit Matrizen, Vektoren usw. umgehen kann, als die CPU.
Bei jedem Frame (60 FPS = 60 Frames per Second) wird jeder Pixelpunkt einzeln berechnet. Gehen wir mal von einem Bild mit 800x600 Pixeln aus, das sind dann insgesamt 480.000 Pixel. Wenn du jetzt eine CPU mit 8 Cores nimmst, brauchst du
60.000 CPU Cycles, um einen einzigen Frame zu berechnen! Da wird es wahrscheinlich schon schwer 1 - 5 FPS mit der CPU zu bekommen, weil sie so viel Last erhält.
Wenn du dagegen die GPU mit 3584 Cores nimmst, sind das lediglich 134 GPU Cycles. Merkst du den Unterschied?
134 vs. 60.000 Cycles sind einfach ein sehr drastischer Unterschied, den du bei der Performance sehr deutlich zu spüren bekommst. Deshalb ist es einfach nahezu unmöglich eine 3D Engine zu schreiben, welche nur die CPU nutzt. Und ehrlich gesagt halte ich das auch für Quatsch.
Bei Bedarf kann ich dir dazu unsere Vorlesungsmaterialien zukommen lassen, schicke mir dazu einfach eine PN mit deiner Mailadresse.
EDIT:
Ich habe das Beispiel stark vereinfacht, bei 800x600 Pixeln könnte eine Nvidia GPU z.B. gar nicht alle Kerne voll ausschöpfen, weil z.B. bei Nvidia jede GPU Unit aus 32x32 Pixeln besteht (the "power of 2") und 600 nicht ganzzahlig durch 32 teilbar ist. Allerdings ist der Unterschied so klein, dass er hier vernachlässigt werden kann. Das nur so als Anmerkung, bevor hier jemand das Beispiel in Frage stellt.