Recentemente ho riscritto il motore di illuminazione in un progetto a cui ho lavorato e ho notato che sto ottenendo un bendaggio sulle trame, e solo in una direzione per faccia.
Il motore di illuminazione ora è il rendering differito, quindi è composto da 3 trame elaborate come dati di scena. Potrebbe essere questa la causa del bendaggio della trama?
Ecco uno screenshot:
Sembra accadere solo dove l'illuminazione è vicina.
Se aiuta, le mie 3 trame sono nei seguenti formati:
World fragment position: GL_RGBA16F - GL_FLOAT
World normal direction: GL_RGBA16F - GL_FLOAT
Fragment diffuse texture: GL_RGBA - GL_UNSIGNED_INT
risposte:
1 per risposta № 1Grazie a maniaco del cricchetto e Andon M. Coleman.
Il mostro di Ratchet ha sottolineato che probabilmente si trattava di un errore di arrotondamento nell'angolo in cui la luce colpisce la superficie (portando a un punto basso tra normale e direzione).
La causa era che il formato interno dila trama in direzione normale è stata impostata su GL_RGBA16F - float a 16 bit che hanno causato l'arrotondamento. L'impostazione del formato su GL_RGBA32F ha corretto l'arrotondamento tenendo i float a 32 bit.
Andon M. Coleman ha sottolineato che dovrei smettere di usare GL_RGBA come formato interno perché è ambiguo e che GL_RGBA8 era appropriato