Le matrici possono esistere sui registri Vertex diversi dalle costanti Vertex in Agal?
-
12-11-2019 - |
Domanda
Ho visto per lo più esempi in cui un oggetto Matrix3D viene passato come registro costante vertice in AS3 all'oggetto Context3D .Ma mai visto una matrice in nessun altro tipo di registri ( temporaneo o
Ci sarebbe alcun modo per copiare una costante di vertice a matrice in un registro temporaneo, quindi manipolare singoli campi del registro temporaneo della matrice (EX: per la rotazione), con altri valori forniti (attributi vertice o altre costanti)? .
Potrebbe un semplice funzionamento mov dest, source
fai il trucco?
Soluzione
Sì, funziona (prendilo dalla talpa :)).Assicurati solo di copiare abbastanza registri (3 o 4).Anche un buon modo per pensare alle operazioni Matrix è che sono solo una scorciatoia per le istruzioni di 3 o 4 punti DOT.Non c'è davvero nulla digitato ad Agal, una matrice è solo alcuni registri consecutivi.Le funzioni di caricamento della matrice sono solo la convenienza per il caricamento di 4 registri in una chiamata.E nello shader
m44 dest, src, srcmatrix
è esattamente come:
dp4 dest.x srx, srcmatrix
dp4 dest.y srx, srcmatrix+1
dp4 dest.z srx, srcmatrix+2
dp4 dest.w srx, srcmatrix+3
.
il +1 ecc qui significa numero di registro +1 ecc.
Altri suggerimenti
Sono quasi determinati registri temporanei contengono anche matrici e che la tua richiesta è possibile, ma è possibile ottenere la soluzione migliore da qualcuno come Marco Scabia:
È molto accessibile e ben informato di Agal.