Ci sono alcune risposte davvero buone qui, quindi solo per completarle.
Una delle principali forze trainanti dietro il rendering del software è la capacità. Questo è stato toccato in una delle risposte, ma ho intenzione di fare un punto opposto: il rendering del software può effettivamente essere più capace del rendering hardware, non di meno.
Con l'hardware sei generalmente limitato alle capacità dell'hardware stesso, anche se OpenGL per uno è in grado di emulare software di molte cose che potrebbero non esistere nell'hardware. Ciò significa che se si tenta di utilizzare la funzione X ma l'hardware non lo supporta, si verificherà una delle due cose: o si tornerà all'emulazione del software (il tipico scenario OpenGL) o non si arriva a usalo affatto (il tipico scenario D3D).
Con il rendering del software puoi scrivere tu stesso il codice. Puoi manipolare le cose e avere il pieno controllo su ciò che accade fino al livello dei pixel. Per dare un esempio di un tuffo nel passato, Quake aveva implementato i pixel shader nel software nel 1996, in un momento in cui le schede 3D (allora non erano chiamate "GPU") potevano a malapena rasterizzare alcune dozzine di triangoli strutturati.
Questo è più vero anche con le GPU attuali, ma ci sono ancora parti significative della pipeline grafica che sono esposte come funzionalità fisse (o addirittura non esposte affatto).
Il rendering del software può ridimensionarsi meglio. È solo relativamente recente che abbiamo visto che le configurazioni multi-GPU diventano realmente praticabili, ma il software può scalare su molti core della CPU in molti server. È possibile disporre di intere server farm dedicate a questo e le farm di rendering professionali continueranno a utilizzare il rendering software.
Il software può esporre diversi paradigmi di rendering. L'hardware attuale è molto focalizzato attorno al paradigma triangolo / vertice / frammento / rasterizzazione; si tratta di scegliere una cosa e ottimizzarla fino a quando non grida pietà. Le GPU sono ancora una cattiva scelta, ad esempio per il ray tracing, che è più comunemente implementato nel software.
Ovviamente, quando si tratta di un confronto diretto da mele a mele, una GPU batterà il software in qualsiasi giorno della settimana, a condizione che stiamo confrontando aree in cui le GPU sono più forti. Ma questo non vuol dire che sono più forti in ogni area. Nonostante ciò, e ai fini di questo sito SE, l'utilizzo dell'hardware è generalmente la strada da percorrere, ma basta essere consapevoli del fatto che ci sono casi d'uso in cui è anche possibile utilizzare il software.