PDA

Visualizza Versione Completa : UV maps stirate



davhub
08-09-06, 11:02
Ciao a tutti.. vi pongo un problema riguardante le mappe UV.

giorni fa mi sono addentrato in un progetto dal budget limitatissimo contando sull'utilizzo delle UV..

Il progetto sarebbe quello di visualizzare un edificio e ho pensato di utilizzare i disegni DWG, per ottenere mappe multicanale, mapparle via UV su un poligono, e da qui metterlo in prospettiva con la camera.

dopo aver preparato tutte le mappe, apro il layout e incomincio a caricare mappe, maschere, ecc. fino a completare sommariamente la prima bozza del materiale.
con esse ho preparato anche una mappa di displacement da aplicare al poligono multi suddiviso..

ecco il problema: se il poligono risulta in sub patch, noto che la divisione non è topologicamente omogenea, ma tende ad infittirsi agli estremi con l'ovvio risultato che i particolari del disegno risultano stirati.

adesso, quindi la domanda:

è un problema risolvibile? dipende, forse dall'aver assegnato ai 4 vertici del
poligono un valore di subpatchweight map pari a 100%?

ovviamente, senza displace, e quindi senza alcun bisogno di subpatch... la cosa rende come deve..

grazie in anticipo.

Davhub

brunotag
08-09-06, 13:03
be è un vecchissimo problema, normale che passando dal poligonale alle subpatch la mappa si deformi , problema risolto dalla versione 8.2 che come metodo di interpolazione adotta anche il subpatch basta selezionarlo al momeno di creare la uv , occhio supporta solo le subpatch non le CC.

davhub
08-09-06, 13:58
ecco dove si nascondeva.. sotto il menu a tendina.. ;) Grazie Brunotag.. adesso, forse riesco a vdere se riesco a domare il displacement.. :) :D

Davhub

davhub
08-09-06, 15:01
Altro problema.. come si fa a stabilire, in una displacement, QUANTO deve spostare i punti di una mesh a cui è applicata?

credevo fosse enable bump sotto il tab deform dell'object properties dove è l'unico valore numerico ma variando quello la mesh risulta sempre quella...
(e poi soprattutto una cosa che NON HO MAI capito...
che differenza c'è tra textured displacement e displacement map? non fanno la stessa cosa? perchè ridondanti?

grazie in anticipo!

Davhub

brunotag
08-09-06, 19:44
non sono molto pratico ma credo che con il nuovo node editor la cosa sia più semplice se vai sul sito newtek ci sono dei video dimostrativi.

nirvana
08-09-06, 23:36
Altro problema.. come si fa a stabilire, in una displacement, QUANTO deve spostare i punti di una mesh a cui è applicata?

credevo fosse enable bump sotto il tab deform dell'object properties dove è l'unico valore numerico ma variando quello la mesh risulta sempre quella...
(e poi soprattutto una cosa che NON HO MAI capito...
che differenza c'è tra textured displacement e displacement map? non fanno la stessa cosa? perchè ridondanti?

grazie in anticipo!

Davhub

Se ho capito bene quello di cui parli il valore da modificare per vedere spostati i punti della mesch , va applicato richiamando dal menu a tendina Add displacement. situato sotto la voce enable bump nel tab deform il menu normal displacement e una volta entrato nelle proprieta di questo dalla prima voce del menu che appare puoi modificare i valore di displacement addirittura nello stesso menu ti da la possibilita di aggiungere una texture che puo essere una mappa uv poi credo che dovrai aumentare il valore del display sub patch level e rendere sub patch level nel tab geometri . in effetti e lo stesso procedimento che ho dovuto utilizzare per importare le mappe da z-brush .

prova a dare una occhiata a questo
http://www.lwita.com/vb/showthread.php?t=2029

spero di essere stato utile.

davhub
11-09-06, 08:32
Chiarissimo, Nirvana. ed in effetti è quello che ho fatto, almeno credo.

Ho un singolo poligono in subpatch, con display e render subpatch settati a 500.
Fatto questo (così sia che renderizzi ccon LWSTD che con fprime nulla cambia).
nel pannello Object properties, nel tab deform,
trovo, una scritta displacement map con una T di fianco. la clicco, inserisco la mia bella mappa UV (modalità di interpolazione subpatch per evitare le stirature), carico l'immagine in scala di grigi che riporta i piani di displacement
(è un edificio, quindi sono campiture senza sfumatura), e la gfeometria si deforma.
la deformazione prende come zero (non mosso) il nero e come totalmente mosso il bianco. OK?
a questo punto... tra nero e bianco zero ed uno, che distanza esiste? posso controllarla? credevo fosse il tasto enable bump posoto subito sotto... nulla cambia.. in effetti, il tuo, suggerimento, Nirvana, di utilizzar il normal displacement funziona più correttamente. qui c'è già nel pannello il valore da controllare. l'unica cosa che mi gira poco, però, è che ci mette del tempo, e quanto! se il subpatch level è alto.. ma poco ,conta visto che la cosa funziona! ;)

Grazie e @Brunotag, no, non ho ancora la 9.. quindi mi limito al texture editor della 8.x..

ciao!!
davhub

desinc
11-09-06, 09:12
Davhub,
ho seguito la discussione,
ma sono curioso di osservare la resa di ciò che hai ottenuto...
...posteresti qualche immagine? :D

ciao
:D
desinc

davhub
11-09-06, 09:27
Ciao Desinc.. lo farò molto volentieri.. e lo farò, vbisto che è interessante, insieme ad un paio di consigli che mi hanno aiutato a risolvere un pò la situazione. Il risultato pare carino, ma non è eccellente (vedrò se ho tempo di rivedere il primo render fatto senza normal displacement).

comunque ti posso assicurare che, per capire velocemente volumetrie senza dover modellare, è una cosa notevole. certo il fotorealismo sta altrove, eh? beninteso. :D

Davhub

nirvana
11-09-06, 20:15
mi fa infinitamente piacere esserti stato di aiuto e spero di vedere presto il tuo esempio.
ciauz.:g1:

davhub
12-10-06, 13:00
OK.. riprendo piede nella discussione.. vi lascio un "paio" di consigli e vi posto una immagine di riferimento... i risultati come vedete, tra il render e il finale sono MOLTO differenti. Santo Photoshop :D

Ecco i risultati.. soddisfatti? molti di voi storceranno il naso.
cosa c'è che non va? ecco le gioie ed i dolori di questa tecnica.

Procedimento step by step.
aprite il vostro disegno in Photoshop o simili.
Se, come in questo caso è presente un DWG...
è sufficiente che ci siano le linee CAD in nero.

Per averle io ho adottato il seguente workflow.. da DWG a DXF con tutto esploso.
(no hatch nè polylines) in illustrator conversione in EPS.
in photoshop: rastering della EPS.

OK? fate quello che desiderate con il colore, e le altre mappe per i vari canali..
quello che conta è la mappa di displace e quella di opacità.

realizzate una mappa di opacità in cui sono nere tutte le aree/campiture che dovranno scomparire nei renders.
(nel modeler o nel layout ponete questo come mappa di opacità con opacity settato a zero.)

questo permette di realizzare una clip map.

Adesso il displace.
prima di tutto analizzate il disegno. in photoshop apritevi una
immagine molto semplice, rettangolare in grayscale, vuota.
dal disegno desumete in quanti piani paralleli al punto di vista (insomma di solito le pareti)
volete che sia suddiviso l'oggetto. Una stampa della vista cad in cui
si annotano i piani ed il loro numero aiuta ora e dopo.

Una volta avuto il numero, prendete la vostra immagine in grayscale vuota
e la suddividete in aree di numero uguale ai piani stabiliti.
Ripemite quindi ogni area di un grigio che va dal nero al bianco
(ovviamente diverso per ogni piano e presente il bianco ed il nero).

questo vi permette di utilizzare, per piani alla, stessa profondità,
lo stesso grigio utilizzato in precedenza sullo stesso progetto.

poi prendete il vostro disegno di background e, con la bacchetta magica selezionate le aree
omogenee per "livello di profondità" quindi riempitele con il colore prescelto.
tenendo conto della seguente regola:

Nelle mappe di displace, il nero (valore RGB 0,0,0) è il livello più "indietro", viceversa il bianco
(valore RGB 255,255,255).

Una volta finito, andate nel modeler, create un poligono
quadrato delle dimensioni approssimative del vostro progetto.
(essendo quadrato comanda la dimensione più estesa del prospetto, ad esempio)

il piano su cui giace il quadrato dipende da che tipo di oggetto volete approssimare, ovviamente.
(nel nostro caso un prospetto di un edificio, deve essere verticale)
indi, tre semplici passi:

1) schiacciate il tasto TAB per attivare le subpatch e selezionate la subpatch weight map sotto il tasto texture
in basso a destra nello schermo.
2) sotto il menu maps, edit vertex maps settate il valore a 100%. (in questo modo il quadrato sarà quadrato
e non una figura piana che assomiglia ad una ellisse).
3) create una UV mapo planare con asse perpendicolare al quadrato ed interpolazione subpatch.
(questo crea una UV che si adatta alla suddivisione non lineare della subpatch stessa al momento del render) (grazie Brunotag)


Adesso il layout.

Caricate oggetto e mappe, tralasciando i settaggi del texture editor, concentriamoci sull'oggetto.
aprite l'object panel selezionando l'oggetto e schiacciando 'p'.
Lasciate al momento il render ed il display subpatch level a 3. (non lo fosse, consiglio vivamente di portarlo a valori simili).
Indi sotto il tab deform, nella lista a tendina scegliete normal displacement.
qui caricate la mappa di displace proiettandola come UV ed utilizzando la mappa UV creata precedentemente.
c'è anche un valore di displace (che setta la differenza che il render mostrerà tra il colore nero ed il
bianco nella mappa di displace).

A questo punto, potete andare a modificare il display ed il render subpatch level portandolo a cifre più alte..
attenzione perchè, con il normal displacement, contrariamente a quanto accade con il textured displacement,
le risorse impiegate sono tante e suddivisioni di 300 e più possono portare a lunghi tempi di attesa (se poi utilizzate la 9 con le catmull-clark.. beh questi numeri saranno pura fantascienza :D).

se tutto è corretto il vostro poligono sarà renderizzato seguendo le indicazioni della mappa di displace.
basterà attivare nel texture editor la mappa di opacità precedentmente creata in modo da nascondere
del quadrato quello che non deve essere visualizzato.

Fin qui l'opertatività standard a per chi non è avvezzo a manipolare questo strumento.
adesso passiamo ai consigli (Tip & tricks ;) )


1) I livelli di displace dovrebbeo essere il meno possibile.
specie se le aree interessate sono ragionevolmente piccole.
altrimenti il motore dovrebbe reagire correttamente.
In teoria si potrebbe risolvere il tutto aumentando a dismisura i livelli di render e display delle subpatch,
ma non sempre è la mossa giusta.

2)il consiglio numero 1 ci dice anche una cosa: evitate, se possibile, cambiamenti bruschi di "altitudine".
ciò si riflette automaticamente su come si disegna la mappa in photoshop.
se le linee del disegno sono visibili nella mappa di displace, spesso sono nere...
(e se non ci sono è probabile che non ci siano e quindi saranno viste bianche un volta flattata l'immagine)
questo è un problema per il motore di dislocazione.
il consiglio, quindi è, per quanto possibile, di evitare la presenza delle linee di separazione.
quando selezionate le campiture sarà da includere anche queste nella selezione per spazzarle via. (expand e contract selection in photoshop)
Gli esempi che vedete allegati mostrano, appunto problemi di questo tipo.
(ringhiere, serramenti, ecc.)

3) se proprio le righe di separazione non potete eliminarle almeno fate in modo che il loro colore non sia nero pieno. Ma si avvicini perlomeno al colore medio.

4) con questa tecnica, a meno di risoluzioni dell'immagine altissime e con suddivisioni altrettanto
generose è difficile rendere archi, cerchi, ecc. pertanto consiglio di applicare
un pò di blur all'immagine in questi punti in modo da creare un "antialiasing manuale".

5) preparatevi comunque ad un editing più o meno spinto dopo il render. il motore di displace, specie
al limitare della mappa (nel caso dell'edificio sono gli estemi del caseggiato), introduce alcuni artefatti
non gradevoli. niente che, comunque, un buon timbro o un blur localizzato non risolvano.

Davhub