Sono consapevole che la maggior parte delle GPU moderne, sebbene progettate per il virgola mobile, sono più o meno equivalenti in termini di prestazioni intere in questi giorni, con alcuni avvertimenti come la mancanza di una fusione multipla aggiunta. Non sono sicuro di come questo si applichi alle operazioni a turni. Sto facendo Marching Cubes su GPU, inizialmente scrivendo una posizione compressa a 32 bit per ciascun cubo di superficie, quindi scompattando questi in un passaggio successivo ai vertici effettivi in quel cubo, in questo modo:
ivec3 unpackedPos = ivec3( packedPos >> 20 & 0x3FF,
packedPos >> 10 & 0x3FF,
packedPos & 0x3FF);
Mi è appena venuto in mente di chiedermi se le unità shader hanno dei barili in questi giorni? Sto facendo 2 turni qui o 30?
EDIT >> Sono un idiota ... Grazie per le risposte ragazzi, utile sapere, ma ho sbagliato tutto. Dovrei semplicemente usare il formato di trama RGB10_A2UI, quindi impacchettare / decomprimere con una singola immagine carica / memorizza istruzioni invece di fare casini con bit-shift.
RE_EDIT >> O no ... Questo metodo sembra funzionare su scatole rosse ma non su quelle verdi, quindi è tornato ai bit-shift.