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 attributo ).

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?

È stato utile?

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:

http://iflash3d.com/

È molto accessibile e ben informato di Agal.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top