Pourquoi la lumière ne continue-t-elle pas sur mon modèle?

9

J'ai créé un modèle de cube texturé de base avec Blender pour pratiquer la modélisation, puis je l'ai importé dans Unity. Après avoir mis un peu d'éclairage, ça a l'air plutôt moche. La lumière n'est pas continue sur une rangée de cubes texturés:

entrez la description de l'image ici

De plus, la lumière sur les blocs qui composent le sol est continue. Qu'est-ce que je fais mal?

Voici à quoi cela ressemble sans textures:

entrez la description de l'image ici

Si je ne savais pas que ce sont des cubes parfaits, je dirais qu'il y a une légère courbe en surface. J'ai également essayé d'alléger la texture, mais cela n'a pas aidé non plus:

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

J'ai simplement exporté le modèle à partir de Blender et je n'ai pas configuré de normales ou des choses comme ça. Cependant, je n'ai également rien fait de spécial avec le modèle de brique de plancher.

Vérifié les normales et elles semblent pointer dans la bonne direction.

entrez la description de l'image ici

De plus, je ne vois pas vraiment la différence entre les deux modèles. Sur le panneau de textures, j'ai également mis la projection à plat:

entrez la description de l'image ici

J'ai vérifié les différents panneaux dans Blender et la seule option normale dans le panneau "Object Data" est ce "Auto Smooth" et il est désactivé par défaut:

entrez la description de l'image ici

nosferat
la source
Cela fonctionne-t-il correctement si vous désactivez la texturation?
msell

Réponses:

7

De l'image sans texture, je suis presque sûr que le problème est que vos modèles de cube ont des normales inappropriées. Vous devez dire à Blender que les bords de vos cubes sont destinés à être nets et non lisses - ce que vous avez maintenant sont des cubes qui agissent comme des approximations à six côtés des sphères.

Je ne connais pas Blender, donc je ne peux pas vous dire exactement comment y parvenir, mais il pourrait être appelé "plat" au lieu de visages "normaux" ou normaux, ou il pourrait y avoir un moyen de "casser" un bord particulier. Votre modèle de carrelage semble avoir des normales correctes, alors vous devriez peut-être voir ce qui est différent à ce sujet.

Kevin Reid
la source
2
Tu avais raison, j'ai dû dire à Blender de rendre les bords nets. Je pourrais y parvenir avec le modificateur EdgeSplit. ( wiki.blender.org/index.php/Doc:2.4/Manual/Modifiers/Generate/… )
nosferat
Vous pouvez simplement sélectionner toutes les faces dans Blender et leur donner un ombrage "plat" via le menu de gauche (celui activé par "T"). Ou, dans Unity, vous pouvez sélectionner le haut de votre hiérarchie d'importation Blender, choisir de faire calculer les normales (au lieu d'importer), puis choisir un angle de lissage (sélectionner quelque chose comme 60 devrait vous donner l'effet souhaité). Je ne pense pas que ce soit vraiment un problème de normaux, les normaux sont très bien, sinon vous ne verriez rien dans Unity (ou dans Blender si vous activez le tri en face arrière).
Shivan Dragon
4

Quelques suggestions sur la nature du problème:

a) Avez-vous vérifié si toutes les normales de face du maillage pointent dans la bonne direction? C'est assez simple de le faire dans Blender)

b) Avez-vous appliqué la bonne cartographie UV? Unity exporte toutes les données de texture en fonction de la façon dont vous configurez les choses dans Blender. Regardez le panneau Texture dans Blender, en particulier le panneau 'Mapping' sous Textures (idéalement, il devrait être réglé sur UV.

(PS quelle est la politique ici concernant les pièces jointes ou la publication de liens vers des fichiers de projet, par exemple un lien Dropbox ou Google Drive dans la question? Cela devrait être si simple à corriger si je pouvais simplement voir tous les fichiers.)

balajeerc
la source
2
Pour répondre à votre question sur les pièces jointes, sur Stack Exchange, les liens externes vers des fichiers pour des questions individuelles ne sont pas préférés, car ils ont tendance à disparaître. Les images doivent être téléchargées sur notre propre hébergement (via le bouton de téléchargement dans l'éditeur) afin que l'équipe SE puisse s'assurer qu'elles restent. Il n'y a pas de support particulier pour les non-images (par exemple les fichiers Blender pour cette question), mais il est préférable de trouver des alternatives car cela ressemble plus à "veuillez déboguer mon très gros code" qui est très peu susceptible d'être utile à quiconque sauf le demandeur d'origine, contrairement aux objectifs de SE.
Kevin Reid