Perché la luce non si accende in modo continuo sul mio modello?


9

Ho creato un modello cubo strutturato di base con Blender per esercitarmi nella modellazione e quindi l'ho importato in Unity. Dopo aver acceso un po 'di illuminazione, sembra piuttosto brutto. La luce non è continua su una fila di cubi strutturati:

inserisci qui la descrizione dell'immagine

Inoltre, la luce sui blocchi che compongono il pavimento è continua. Che cosa sto facendo di sbagliato?

Ecco come appare senza texture:

inserisci qui la descrizione dell'immagine

Se non sapessi che questi sono cubi perfetti, direi che c'è una leggera curva sulla superficie. Ho anche provato a schiarire la trama ma non mi ha aiutato:

https://dl.dropbox.com/u/45620018/lighter%20texture.PNG

Ho semplicemente esportato il modello da Blender e non ho impostato normali o cose del genere. Tuttavia, non ho fatto nulla di speciale con il modello in mattoni da pavimento.

Controllato le normali e sembrano indicare la giusta direzione.

inserisci qui la descrizione dell'immagine

Inoltre, non vedo davvero la differenza tra i due modelli. Sul pannello delle trame ho anche impostato la proiezione su piatta:

inserisci qui la descrizione dell'immagine

Ho controllato i diversi pannelli in Blender e l'unica opzione relativa al normale nel pannello "Dati oggetto" è questa "Auto Smooth" ed è disattivata per impostazione predefinita:

inserisci qui la descrizione dell'immagine


Funziona correttamente se si disabilita il texturing?
msell,

Risposte:


7

Dall'immagine senza trama, sono abbastanza sicuro che il problema è che i tuoi modelli di cubi hanno normali inadeguate. Devi dire a Blender che i tuoi bordi del cubo devono essere nitidi, non lisci: quello che hai ora sono cubi che si comportano come approssimazioni a sei facce di sfere.

Non conosco Blender, quindi non posso dirti esattamente come realizzarlo, ma potrebbe essere chiamato volti "normali" invece di "normali" o normali, oppure potrebbe esserci un modo per "spezzare" un bordo particolare. Il modello del tuo pavimento sembra avere le normali corrette, quindi forse dovresti vedere cosa c'è di diverso in questo.


2
Avevi ragione, dovevo dire a Blender di rendere più nitidi i bordi. Ci sono riuscito con il modificatore EdgeSplit. ( wiki.blender.org/index.php/Doc:2.4/Manual/Modifiers/Generate/… )
nosferat,

Puoi semplicemente selezionare tutti i volti in Blender e dare loro l'ombreggiatura "piatta" tramite il menu a sinistra (quello attivato da "T"). Oppure, in Unity, puoi selezionare la parte superiore della gerarchia di importazione di Blender, scegliere di calcolare le normali (anziché importarle) e quindi scegliere un angolo di smussatura (selezionare qualcosa come 60 dovrebbe darti l'effetto desiderato). Non penso che questo sia davvero un problema normale, le normali vanno bene, altrimenti non vedresti nulla in Unity (o in Blender se abiliti l'abbattimento del backface).
Drago Shivan,

4

Un paio di suggerimenti su quale potrebbe essere il problema:

a) Hai verificato se tutte le normali della faccia della mesh puntano nella giusta direzione? È abbastanza semplice farlo in Blender)

b) Hai applicato la giusta mappatura UV? Unity esporta tutti i dati delle trame in base alla configurazione delle cose in Blender. Guarda il pannello Trama in Blender, in particolare il pannello "Mappatura" in Trame (idealmente, dovrebbe essere impostato su UV.

(PS qual è la politica qui sugli allegati o la pubblicazione di collegamenti ai file di progetto, ad esempio un link Dropbox o Google Drive nella domanda? Dovrebbe essere così semplice da risolvere se potessi vedere solo tutti i file.)


2
Per rispondere alla domanda dell'allegato, su Stack Exchange, i collegamenti esterni ai file per le singole domande non sono preferiti, poiché tendono ad andare via. Le immagini devono essere caricate sul nostro hosting (tramite il pulsante di caricamento nell'editor) in modo che il team di SE possa assicurarsi che restino ferme. Non esiste un supporto particolare per le non immagini (ad es. I file di Blender per questa domanda), ma è meglio trovare delle alternative poiché diventa più simile a "si prega di eseguire il debug del mio codice molto grande" che è molto improbabile che sia utile a nessuno tranne che al domanda originale, contrariamente agli obiettivi di SE.
Kevin Reid,
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.