In questo articolo spiegherò il concetto di bump mapping, con entrambe una spiegazione pratica e tecnica. Parlerò anche questa tecnica con le mappe di spostamento e le mappe normali.
La Bump mapping è una tecnica utilizzata in computer grafica per generare l'aspetto di dossi e altre trame simili su un oggetto. In realtà è un effetto falso perché la tecnica non cambia il modello attuale, ma solo il modo in cui la luce viene calcolata per riflettere l'oggetto. Ad esempio, puoi avere una mappa di rilievo che contiene del testo e questo farà apparire il modello come se ci fosse del testo stampato su di esso.
Uno dei limiti più grandi quando si utilizza questa tecnica è che l'ombra dell'oggetto non cambierà, poiché la geometria effettiva rimane la stessa. Ciò significa che una mappa di bump è più adatta per aggiungerne altri dettaglio a un modello. UN mappa di spostamento, d'altra parte, può usare la stessa trama per cambiare la geometria attuale.
Ecco un esempio delle due tecniche:
Una mappa di rilievo è rappresentata da una trama in scala di grigi o a mappa di altezza come viene chiamato, che può essere incluso in un materiale (proprio come altri tipi di mappe: mappa diffusa, mappa normale, mappa speculare e così via).
Una mappa di rilievo può essere creata utilizzando qualsiasi software di fotoritocco desiderato (io uso Photoshop) che abbia un pennello o che sia in grado di generare mappe di rumore. Ad esempio, se stai usando Photoshop puoi creare un nuovo file e disegnarlo con un pennello in scala di grigi: più scuro dipingi, più effetti avrà sulla tua texture e poi salvalo come JPEG.
Ecco due esempi di texture della mappa del bump:
Potresti chiederti qual è la differenza tra questo e Mappatura normale. Le due tecniche sono simili; la mappatura normale è in realtà derivata dalla mappatura del bump ma utilizza un altro algoritmo per calcolare l'illuminazione del modello. Oggi la mappatura normale è il metodo più comune utilizzato, specialmente nei giochi, ma è un po 'più difficile realizzare questo tipo di mappa.
Il modo in cui questa mappa influenza il calcolo dell'illuminazione è piuttosto semplice. Ogni vertice di un modello ha il suo vettore normale (essenzialmente una linea che punta direttamente verso l'esterno dal vertice), quindi quando hai creato qualcosa e lo rendi senza mappe, queste sono le normali usate per calcolare le ombre sul tuo oggetto.
Quando aggiungi una mappa di rilievo, il renderer che stai utilizzando calcolerà la normale dei vertici modificati dai vertici della mappa di rilievo e proietterà i raggi di luce (quando la luce viene emessa, proietta più raggi). Ci saranno ombre diverse perché le normali sono cambiate.
Quindi ecco un'immagine per spiegare questo calcolo:
La prima immagine mostra due vertici (angoli), ciascuno con un normale (le linee rosse). Le linee nere rappresentano la mesh dell'oggetto. Quando il raggio di luce (la linea gialla) colpisce la maglia, rimbalzerà in un certo angolo calcolato con la normale.
Se aggiungo la mappa di rilievo con la mesh che ho creato al modello (come nell'immagine in basso), la luce che rimbalza sarà cambiata in base alla combinazione delle due mappe normali, quindi il rendering apparirebbe più dettagliato.
Spero che ora tu abbia una migliore comprensione della mappatura dell'urto! Se avete domande, per favore pubblicatele nella sezione commenti e proverò a rispondere.