Die Transformationen und Projektionen sind doch gar nicht das besondere beim Software Renderer. Das braucht man bei DirectX oder OpenGL auch teilweise. Interessant wird es dann bei Rasterizer.
in der gpu finden die gleichen berechnungen statt die du auch mit deiner cpu ausrechnen kannst. nur das es spezielle schaltkreise sind die fließkommaoperaterationen(besonders multiplikationen und divisionen) wesentlich schneller ausführen können.
die matrize für das umrechnen einer 3d szene auf eine 2d oberfläche soll zwar recht kompliziert sein, trotzdem ist es natürlich möglich das auch auf der cpu zu berechnen.
Schneller sind die Operationen auf der Grafikkarte nicht unbedingt. Die Parallelität macht den unterschied. Grafikkarten haben haufenweise Recheneinheiten die gleichzeitig arbeiten. Wenn es z.B. um die Transformation eines Models geht das mehrere tausend Vertizes hat, dann kann jede Einheit ein Vertex übernehmen. Der Rasterizer Vorgang ist ebenfalls gut parallelisierbar.
Sehr interessant ist zurzeit auch die Idee einen Software Renderer zu schreiben, den man dann über Cuda etc. wieder auf der Grafikkarte auszuführen. Da kann man dann mal sehen wie groß der Unterschied zu der normalen Grafikberechnung der Karten ist.