Vai al contenuto
nicolce

Displacement Broken Edges!

Recommended Posts

Inviata (modificato)

Ciao a tutti, vorrei condividere con voi questo piccolo trucco.

Vi sarà già capitato di applicare un materiale con displacement ad un'oggetto poligonale e scoprire con orrore che nel render gli spigoli dell'oggetto risultano aperti.

NB: PROBLEMA RISOLTO IN MENTALRAY SU MAX 2010 O SUPERIORE

be_01.jpg

be_02.jpg

Questo accade perchè dopo la tassellazione i micropoligoni del displacement vengono scostati secondo il verso delle normali... e questo verso tiene conto dell'interpolazione pre-render(smooth).

Ne deriva che se due poligoni adiacenti non hanno continuità di smoothing allora lo spigolo fra i due poligoni si aprirà nel rendering.

Succede con la maggior parte dei displacement basati su adaptive rendertime tassellation(mental ray, vray etc)... il displacementmod di vray ha un'opzione keep continuity che previene l'apertura dei bordi, ma è comunque una soluzione rappezzata.

La soluzione più corretta consiste nell'agire preventivamente sulla geometria.

Per evitare che i bordi si aprano basterebbe assegnare lo stesso smoothing group a tutti i poligoni, oppure applicare un autosmooth a 180°.

be_03.jpg

be_04.jpg

Come possiamo vedere dal rendering la geometria è rimasta chiusa ma la curvatura è esagerata e scorretta.

Il modello non può essere costituito da due sole facce, bisogna affinarlo smussando gli spigoli (chamfer) e suddividendo le parti piane in poligoni più piccoli di forma quadrata.

NB: dopo aver applicato il chamfer è necessario riassegnare lo smoothing group.

Sebbene non sia strettamente necessario ai fini di prevenire l'apertura dei bordi, consiglio di assegnare coordinate di mappatura continue tramite unwrap.

be_05.jpg

Con uvMap:

be_07.jpg

Con uvwunwrap:

be_06.jpg

Fine :)

ps: originalmente avevo postato nel mio blog, ma l'ho spostato quì visto che sembra destare abbastanza interesse.

post-33670-12693427036253_thumb.gif


Modificato da nicolce

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

hehehe, rinnovo anche qui i complimenti, son convinto che molti ti saranno grati... ;)

e un bravo per vaerlo reso meno "mimetico" ;)

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

grazie per aver condiviso questa perla :D

:Clap03: :Clap03: :Clap03:

son convinto che molti ti saranno grati... ;)

quoto e straquoto...

:hello:

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)

Questo è veramente un tip di quelli che ti cambiano la vita produttiva, risolvendo con un semplice passaggio una questione decisamente spinosa, evitando per l'appunto il famigerato "keep continuity" :Clap03:

punto reputazione meritatissimo :Clap03:


Modificato da franci2k5

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Grande come sempre :).

Chiedo solo una cosa, qual'è la differenza nell'usare l'unwrap piuttosto che l'uvw? cioè non che non sappia (più o meno) cos'è l'unwrap, ma non vedo differenze sostanziali nell'uno e nell'altro render che hai postato.... cosa mi sfugge?

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)

ok, ma mi piacerebba capire il concetto di quello che volevi intendere ;)

P.S.: sto già provando per capirlo :D


Modificato da Ilario81

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Personalmente preferisco usare l'unwrap per tutto se non ho troppa fretta :)

Se la curvatura fosse maggiore (aka un chamfer più ampio), allora un semplice UVW Box non basterebbe e la texture verrebbe proiettata in maniera distorta sullo spigolo stondato...

Inoltre se l'oggetto non è un semplice cubo come in questo esempio probabilmente si fa prima a mapparlo bene con l'unwrap piuttosto che stare li a stratificare polyselect e uvwmap :)

Comunque, come hai giustamente notato, l'uvwmap va benissimo in questo caso d'esempio in cui si parla di un cubetto.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)

Ok, recepito ;)

Non volevo sminuire, era solo per capire qualcosa di sicuramente utile, vito che con l'unwrap non ho ancora preso molta confidenza.... grazie.


Modificato da Ilario81

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

ciao nicolce,

bel tutorial, ma io ho un altro metodo e mi sento di condividerlo nella tua discussione: praticamente basta aprire le proprietà della mesh andare nella voce mental ray>displacement e disattivare la voce "use global setting" e successivamente disattivare anche "smoothing (tur OFF with heigth maps) e dovrebbe dare lo stesso risultato senza alterare i bordi.

ciao , ancora complimenti :hello:

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)

Ho testato questa cosa con mr in max 2010 e ho visto che gli spigoli non si aprono più, indipendentemente dalle normali!

L'hanno aggiustato, non ci credo :)

be_2010.jpg

@lillo, quel metodo purtroppo non funziona in versioni precedenti alla 2010 e nella 2010 è ininfluente visto che serve a tutt'altro :)

mith_be.jpg

SmoothingTurn off to have the mental ray renderer correctly render height maps. Height maps can be generated by normal mapping [...]

When on, mental ray simply smoothes the geometry using the interpolated normals, making the geometry look better. This result, however, cannot be used for height map displacement because smoothing affects geometry in a way that is incompatible with height mapping.

Nella 2009 o inferiori tuttavia non serve nemmeno a questo, anche con smoothing off il low poly viene smussato al momento del render.


Modificato da nicolce

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ho testato questa cosa con mr in max 2010 e ho visto che gli spigoli non si aprono più, indipendentemente dalle normali!

L'hanno aggiustato, non ci credo :)

be_2010.jpg

@lillo, quel metodo purtroppo non funziona in versioni precedenti alla 2010 e nella 2010 è ininfluente visto che serve a tutt'altro :)

mith_be.jpg

Nella 2009 o inferiori tuttavia non serve nemmeno a questo, anche con smoothing off il low poly viene smussato al momento del render.

non serve a quello?! :blink2: strano nella mia versione 2009 quando disattivo quel comando mi da proprio quel risultato mentre è attivato no! mah...

:hello:

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Quell'immagine l'ho fatta con la 2009, smoothing off, displacement tipo heightmap con valore positivo.

Risultato, il solido si apre.

C'è un'altro modo per farlo sembrare chiuso, applicare un valore negativo al displa... così il solido sembrerà chiuso, ma comunque le facce saranno staccate...

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora


  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×