Ho fatto il coraggioso tentativo di eliminare il codice sorgente di Doom 3. Una delle cose che ho trovato è la classe matrice utilizzata nel resto della soluzione. È un codice abbastanza semplice da seguire, ma è stata presa una decisione che non sono stato in grado di comprendere. Hanno deciso di combinare colonne e major major per diverse dimensioni.Perché Doom3 ha cambiato le matrici principali di righe e colonne?
- Matrix 3x3 è la colonna principale
- Ogni altra matrice è importante fila (penso - non li hanno verificato)
Qualcuno sa il motivo per cui potrebbe essere stato preso questa decisione? Dal momento che OpenGL è la colonna principale, penserei che avrebbe senso usare solo la colonna principale?
Non sono un programmatore grafico, ma penso che la riga principale sia più tipica del codice che ho visto che manipola gli array 2d. Quindi forse è puramente per mantenibilità. –
Come è collegato [tag: C]? – bitmask
Riga-maggiore/colonna-principale hanno effetti molto diversi sul comportamento della cache, a seconda dei tipi di operazioni che vengono eseguite sulle matrici. –