Come posso creare uno shader di contorno come "Life is Strange"?


13

Voglio rendere strano lo shader come la vita.

lo shader ha due parti:

Linea tratteggiata 1.animated

Contorno 2.noisy

Mi piace sapere come posso creare contorni rumorosi?

vedere il contorno degli oggetti

record_2019_01_21_09_43_07_10

record_2019_01_21_09_51_00_896

record_2019_01_21_09_45_53_942

record_2019_01_21_11_37_27_699

Per prima cosa ho cercato di creare un contorno copiando i dati del vertice in arrivo e ridimensionato secondo la direzione normale, quindi Cull Back. Ma penso che sia qualcosa di simile all'effetto Immagine perché il contorno a volte si sposta all'interno dell'oggetto. comunque apprezzerò se qualcuno mi aiuti a implementare questo shader :)

Quello che ho provato

Ho usato il rilevamento dei bordi e lo animavo con lo shader di vertici, ma questo non è buono come sopra le gif.

record_2019_01_21_18_16_43_440

record_2019_01_21_18_27_28_597

Risposte:


1

Ho fatto qualcosa di simile in Unreal Engine 4, quindi spiegherò solo i concetti. Ci sono 2 modi in cui puoi farlo, e sono diversi gradienti di compromessi tra prestazioni e facilità di implementazione.

  1. Innanzitutto, aggiungi una nuova mesh sopra la mesh principale, solo un po 'più grande (proprio come una mesh di collider fisica). Quindi crea uno shader di materiale trasparente per esso e abilita lo shader / mostra la mesh mentre il frustum di vista del giocatore si trova a una distanza di x unità dall'entità. Le prestazioni sono elevate a causa dello shader di trasparenza, ma poiché a un certo punto hai solo una piccola serie di oggetti evidenziati, è facile da implementare e fattibile.

  2. Crea una trama di base con le linee di hash e sposta le coordinate della trama in base a un set predeterminato di matrici. Questo crea l'illusione di "trame animate"; nel settore, è anche chiamato materiale dinamico (c'è di più, ma puoi leggere se vuoi). Per quanto riguarda la struttura, puoi trovare molti tutorial sul web. Questa tecnica richiede molto più tempo per l'implementazione, dal momento che devi armeggiare con le matrici di spostamento e il tempo di aggiornamento del materiale per ottenere un risultato simile agli screenshot di cui sopra, per non parlare del fatto che devi allineare le linee di hash ai cambi di angolo nella mesh di base.

Se le prestazioni non sono un problema, procedi con 1. Se ogni FPS conta, usa 2, ma aspettati molti problemi che richiedono tempo per essere risolti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.