Qual è la differenza tra mappatura di spostamento e mappatura dell'altezza?


15

Qual è la differenza tra mappatura di spostamento e mappatura dell'altezza e qual è la connessione alla tassellatura adattativa?


Quindi, diciamo quando voglio usare la mappatura dell'altezza su un piccolo oggetto, cioè una sfera, quali tecniche uso per eliminare le crepe? Smoothing? È più performante dello spostamento e della tassellatura adattiva?
Jinxi

Risposte:


10

Mappatura di spostamento e mappatura dell'altezza sono due nomi per "quasi" la stessa tecnica, mirano a fare lo stesso effetto ma vengono utilizzati in contesti diversi.

Per spiegare di più:

Mappatura di spostamento: è una tecnica che mira a rendere i dossi come vera geometria, in una mesh molto fine. Diversamente dalla mappatura di rilievo, parallasse e mappatura di rilievo che tenta di "simulare" i rilievi usando mappe normali, la mappatura di spostamento sposta effettivamente la superficie, creando triangoli tra i texel. .

Mappatura altezza: è la stessa cosa, ma di solito viene utilizzata nel contesto in cui una mappa di spostamento (chiamata anche mappa di altezza) viene applicata su un terreno in cui il valore viene utilizzato solo per modificare l'altezza del vertice.

Può essere implementato sulla CPU o sulla GPU.

Un approccio CPU comune è quello di leggere i valori di altezza o spostamento da una mappa altezza / spostamento (trama) in cui ogni texel mappa direttamente su un vertice. Dove ogni texel codifica un valore di altezza / spostamento. Questo viene quindi applicato direttamente alla geometria spostando ciascun vertice usando il valore cercato in una direzione univoca.

La scelta della direzione può essere nella direzione Su (di solito in caso di terreni), il che comporta la modifica del valore Y del vertice, oppure potrebbe essere nella direzione della faccia normale normalmente utilizzata su oggetti diversi dai terreni.

Un'alternativa alla GPU è utilizzare la funzione di recupero della trama del vertice (introdotta in Shader Model 3.0) per modificare la mesh del terreno accedendo a una mappa di spostamento / altezza L'altezza recuperata dalla trama viene utilizzata dal programma di ombreggiatura del vertice per modificare la posizione del vertice .

Altri usi dell'utilizzo di una trama consentono una manipolazione più rapida dei dati per le simulazioni delle onde e altre animazioni da applicare alla mesh.

Per quanto riguarda la tassellatura adattiva:

Uno svantaggio della mappatura di spostamento è che per terreni di grandi dimensioni sono necessari molti poligoni e vertici per modellare un terreno dettagliato che rende in qualche modo inefficace la mappatura di spostamento per terreni di grandi dimensioni.

È qui che entrano in gioco la tassellatura adattiva e il livello di tecniche di dettaglio per rendere più fattibile la mappatura degli spostamenti, in particolare con l'avanzamento delle GPU e l'introduzione di shader geometrici, l'esecuzione della tassellatura al volo con questo avanzamento è diventata la tecnica dominante. È semplice da programmare e su GPU più recenti e presenta alcuni inconvenienti.

Altre tecniche come il rilievo e il bump mapping offrono un realismo aggiuntivo a un costo generalmente ragionevole, ma il fatto che la superficie di base non sia disturbata rende il rilevamento delle collisioni, e quindi l'interazione degli oggetti, più impegnativa.

In conclusione, la mappatura dello spostamento e la tassellatura adattiva offrono dettagli e qualità superiori con minori inconvenienti a un costo di prestazione fattibile.


Non dimenticare l'ultima parte della domanda "e qual è la connessione alla tassellatura adattativa?"
MichaelHouse

@ Byte56 grazie per avermi avvisato che ho aggiornato la risposta.
concept3d

12

La mappatura di spostamento può significare (ma non sempre significa) uno spostamento vettoriale in ciascun punto della superficie. La mappatura dell'altezza implica solo un valore di spostamento scalare , ovvero ogni punto viene spinto lungo il suo normale. Il termine "mappatura di spostamento" può anche essere usato per spostamenti scalari, quindi, quando si parla di spostamenti di vettori, le persone spesso dicono esplicitamente "mappatura di spostamento di vettori".

La tassellatura può essere utilizzata per applicare una mappa di spostamento, suddividendo una superficie in piccoli poligoni e applicando uno spostamento (guardando in alto dalla mappa) a ciascun vertice della superficie suddivisa. Il livello di suddivisione di cui hai bisogno dipende in parte dal livello di rumorosità / dettaglio della mappa di spostamento, quindi la tassellatura adattiva può essere utilizzata per suddividere più finemente nelle aree che hanno più dettagli, ma meno nelle aree più piatte, migliorando le prestazioni.


Questa è la risposta obiettivamente corretta. La sottile differenza diventerà molto più importante poiché i principianti trovano più codice di tassellatura per copiare incolla. (Lo spostamento vettoriale procedurale è già stato mostrato da nVidia)
MickLH

3

Fondamentalmente, sono la stessa cosa.

La mappatura di spostamento è una tecnica per aggiungere dettagli di superficie, come la mappatura di rilievo . A differenza della mappatura di rilievo, tuttavia, la mappatura di spostamento consiste nel deformare effettivamente la geometria in base a una mappa dell'altezza di input (essenzialmente una griglia di valori di elevazione).

"Mappatura di spostamento" è fondamentalmente un altro termine, più tecnicamente accurato, per ciò che è colloquialmente noto come "mappatura dell'altezza" (in senso stretto, "mappatura dell'altezza" probabilmente dovrebbe riferirsi al processo di generazione della griglia di dati di elevazione da alcuni materiali di origine, come come scanner 3D, che verrà utilizzato in un'implementazione della mappatura di spostamento - ma in pratica la maggior parte delle persone usa i termini in modo intercambiabile, se addirittura dice "mappatura di spostamento".

La tecnica non è direttamente legata alla tassellatura adattativa, che a sua volta riguarda il controllo della scomposizione di una descrizione matematica di una mesh (come una sfera) nella raccolta concreta di triangoli che verranno utilizzati per renderla. Il bit "adattivo" significa che il dettaglio della tassellatura cambierà in base ad alcuni criteri di input, come la distanza di vista.

Nel caso della sfera, ad esempio, puoi tessellare quella sfera in modo molto rozzo (efficacemente come un cubo) quando quella sfera è molto lontana, ma puoi usare più dettagli quando la sfera è vicina.

Spesso vedrai tecniche come la mappatura di spostamento discussa insieme alla tassellatura perché la tassellatura influenzerà il modo in cui vuoi mappare la mappa di elevazione alla geometria per eseguire lo spostamento (o quale risoluzione della mappa di elevazione vuoi selezionare, eccetera).


2

Sono lo stesso concetto.

EDIT: lo spostamento può essere composto da altezze in più di una dimensione!

Non iniziare guerre semantiche su questo, ma realisticamente, la mappatura dell'altezza di solito si riferisce a tecniche basate su larga scala / tassellatura, dove la mappatura dello spostamento di solito si riferisce a tecniche su piccola scala / raytracing.

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.