Ho lavorato su un sistema di decalcomanie differito. Finora ho finito la parte di proiezione, il che significa che posso fare clic su qualcosa nella scena e proietterà correttamente una decalcomania sulla superficie dell'oggetto.
Ci sono un paio di altre cose che vorrei aggiungere a questo sistema: ritaglio normale e decalcomanie mappate normali. Il ritaglio normale avviene quando scarto frammenti che vengono allungati con un angolo acuto. Visto qui . Un modo per risolverlo è scartare frammenti che hanno una grande differenza tra il normale nel G-Buffer e il normale della decalcomania. Ciò richiederebbe la lettura della trama normale del G-buffer.
Per eseguire la mappatura normale della decalcomania, devo fondere la normale della decalcomania (da una mappa normale) con la normale del buffer G. È necessario scrivere sulla trama normale del buffer G.
Spero sia chiaro che per supportare queste due funzionalità, ho bisogno di leggere e scrivere sulla trama normale nello stesso passaggio shader. Purtroppo, si tratta di un comportamento indefinito, quindi mi chiedo se ci sia un altro modo per implementare queste funzionalità.