Perché le mesh levigate in 3D Studio finiscono con lo stesso numero di vertici / triangoli? Come possono quindi essere levigati con la stessa geometria?


11

Sto cercando di capire perché le mesh levigate in 3D Studio (Modificatori / Smoother) finiscono per avere la stessa quantità di vertici / facce prima o dopo quel processo, così come la stessa identica geometria.

Nell'esempio seguente, entrambe le mesh hanno 32 vertici e 60 facce.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Anche se ho esperienza di lavoro con la programmazione (c ++ e c #), sono piuttosto un principiante con la computer grafica. Quindi la mia aspettativa era che l'aspetto levigato di una mesh levigata avrebbe richiesto vertici aggiuntivi, ovvero suddivisione di triangoli, per finire con una mesh finale più dettagliata. Tuttavia, ciò non sembra essere il caso.

Pertanto chiedo:

1) come è possibile il livellamento senza aumentare i dettagli della geometria della mesh?

2) il livellamento aumenta almeno la memoria allocata / utilizzata per la memorizzazione della nuova mesh rispetto a quella originale?

Le spiegazioni sono estremamente gradite, ma sono apprezzati anche i riferimenti (accademici o meno).


Anche qui non è molto esperto, ma suppongo che potresti usare uno shader diverso in uno. Quello di Lambert sarebbe simile a quello sulla destra. Ma i buongustai li avrebbero mediati e lo avrebbero fatto apparire più liscio. prosjekt.ffi.no/unik-4660/lectures04/chapters/jpgfiles/…
Andrew Wilson,

1
Grazie per il tuo commento! Francamente, l'unica cosa che ho fatto è stato applicare il modificatore Smoother. Non è stato aggiunto shader prima e non ho aggiunto alcun shader dopo.
Louis15,

I termini storici sono "questa è la differenza tra l'ombreggiatura piatta e quella di gouraud". In pratica ciò si riferisce a normali come spiegato da joojaa
v.oddou

Quale software hai usato nello screenshot? THX :)
xyz

Risposte:


14

La levigatura in questo caso rende le normali della superficie ai vertici puntate allo stesso modo, quando interpolate appare liscia. Meshsmooth aggiungerebbe vertici.

1) come è possibile il livellamento senza aumentare i dettagli della geometria della mesh?

Gli occhi umani non possono effettivamente vedere la curvatura se non sui bordi degli oggetti. Tutto ciò che possono fare è approssimare la scorrevolezza ed elaborare la pendenza del gradiente. Quindi avere un campo continuo dà un'aria di morbidezza. L'occhio è tuttavia estremamente sensibile ai bruschi cambiamenti di colore e lo interpreta come una piega dura.

Interpolando le normali dei vertici, la superficie apparirà fluida. Poiché questo normale viene utilizzato per calcolare il colore riflesso finale, si ottiene un campo di colore uniforme.

Ombreggiatura piatta vs ombreggiatura uniforme

Immagine 1 : una normale ombra piatta rispetto alle normali di un'interpolazione uniforme. La normale nera si trova su un vertice. Quelli colorati sono interpolati.

Non c'è nulla che dica che dobbiamo fare un'interpolazione lineare. In effetti perturbando le normali possiamo far cambiare aspetto alla superficie piatta. Ecco come funzionano il bump mapping e il mapping normale. L'effetto può essere convincente a meno che il bordo della superficie non svolga un ruolo troppo importante nel punto in cui l'illusione si spezza.

inserisci qui la descrizione dell'immagine

Immagine 2 : una superficie piatta ombreggiata (retro), Ombreggiata liscia (centrale) e una normale liscia mappata. L'illusione di una superficie ondulata si spezza perché il bordo gioca una parte così importante nell'immagine, che potresti invece aumentare le normali

2) il livellamento aumenta almeno la memoria allocata

Difficile dire cose definitive sul motore grafico sottostante. Le normali devono essere comunque emesse sulla scheda grafica, molto probabilmente questi dati vengono memorizzati nella cache, ma potrebbero essere calcolati al volo (in entrambi i casi).

Poiché Max utilizza gruppi di smoothing, mi sembra che l'utilizzo della memoria sia costante a prescindere. Difficile da dire, anche se non è memorizzato nella cache, non farebbe una grande differenza. Rende lo shader piccolo un po 'più complicato, ma solo molto probabilmente questa complessità è presente usarlo o no.


Bella risposta! Questo è esattamente quello che stavo cercando: una spiegazione concettuale che non ha lasciato fuori dettagli cruciali ma era ancora chiara e diretta al punto.
Mille

2
"L'occhio è tuttavia estremamente sensibile ai bruschi cambiamenti di colore e lo interpreta come una piega dura". In realtà il sistema visivo umano è molto bravo a rilevare i cambiamenti nella derivata dell'ombreggiatura. L'ombreggiatura può essere continua ma se ci sono discontinuità nella velocità di cambiamento come in questa immagine queste possono essere sorprendentemente evidenti. Cerca l'effetto della banda Mach.
Simon F,

1
@SimonF ecco perché vedono una piega, perché ne derivano il rilevamento dei bordi e tutto il resto. Ma il cervello umano non eleva davvero il flusso gradiente 2 levigature sono quasi uguali alla maggior parte degli umani (ad esempio non esiste un secondo rilevamento derviato). Quindi avere una sfera liscia è liscia, anche se le normali non si comportano completamente in modo sferico fintanto che sono lisce. Ecco perché andiamo via con il trucco. Pochissime superfici si comportano in questo modo.
joojaa,

"(non esiste un secondo rilevamento del derviato ad esempio)" Ho appena controllato i "Principi di sintesi delle immagini digitali" di Glassner (Volume 1 pagina 29) ... e ora sono più confuso che mai.
Simon F,

@SimonF Potresti essere confuso riguardo ai riflessi che sono naturalmente un derivato inferiore a quello che è la superficie. Pertanto, in determinate condizioni, un essere umano può percepire il secondo derivato. Ma il punto è piuttosto che gli umani possono vedere le pieghe, ma non fanno una differenza significativa tra tutti i diversi cambiamenti, il fatto che un riflesso sia leggermente spento o nella direzione sbagliata non è automaticamente evidente per un essere umano. Senza analisi più approfondite. Finché non ci sono cambiamenti improvvisi è per la maggior parte abbastanza buono in molte circostanze. Dovremmo continuare questo nella chat room
joojaa
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.