¿Por qué no se enciende la luz continua en mi modelo?

9

Creé un modelo básico de cubo texturizado con Blender para practicar el modelado, y luego lo importé a Unity. Después de encender un poco, se ve bastante feo. La luz no es continua en una fila de cubos con textura:

ingrese la descripción de la imagen aquí

Lo que es más extraño, la luz en los bloques que conforman el piso es continua. ¿Qué estoy haciendo mal?

Esto es lo que parece sin texturas:

ingrese la descripción de la imagen aquí

Si no supiera que estos son cubos perfectos, diría que hay una ligera curva en la superficie. También intenté aligerar la textura pero tampoco me ayudó:

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

Simplemente exporté el modelo de Blender y no configuré ninguna normalidad o cosas así. Sin embargo, tampoco hice nada especial con el modelo de ladrillo de piso.

Verificó las normales y parecen apuntar a la dirección correcta.

ingrese la descripción de la imagen aquí

Además, realmente no veo la diferencia entre los dos modelos. En el panel de texturas también configuré la proyección en plano:

ingrese la descripción de la imagen aquí

Verifiqué los diferentes paneles en Blender y la única opción normal relacionada en el panel "Datos del objeto" es esta "Auto Smooth" y está desactivada por defecto:

ingrese la descripción de la imagen aquí

nosferat
fuente
¿Funciona correctamente si desactiva la textura?
msell

Respuestas:

7

De la imagen sin textura, estoy bastante seguro de que el problema es que sus modelos de cubo tienen normales inapropiados. Debes decirle a Blender que los bordes de tu cubo deben ser afilados, no lisos; lo que tienes ahora son cubos que actúan como aproximaciones de esferas de seis lados.

No conozco a Blender, así que no puedo decirte exactamente cómo lograr esto, pero podría llamarse "plano" en lugar de caras "normales" o normales, o podría haber una manera de "romper" un borde en particular. Su modelo de baldosas parece tener las normales correctas, por lo que tal vez debería ver qué tiene de diferente.

Kevin Reid
fuente
2
Tenías razón, tuve que decirle a Blender que afilara los bordes. Podría lograr esto con el modificador EdgeSplit. ( wiki.blender.org/index.php/Doc:2.4/Manual/Modifiers/Generate/… )
nosferat
Simplemente puede seleccionar todas las caras en Blender y darles sombreado "Plano" a través del menú de la izquierda (el activado por "T"). O, en Unity, puede seleccionar la parte superior de su jerarquía de importación de Blender, elegir que se calculen las normales (en lugar de importarse) y luego elegir un ángulo de suavizado (seleccionar algo como 60 debería darle el efecto que desea). No creo que esto sea realmente un problema de las normales, las normales están bien, de lo contrario no verías nada en Unity (o en Blender si habilitaras el sacrificio de la cara posterior).
Shivan Dragon
4

Un par de sugerencias sobre cuál puede ser el problema:

a) ¿Ha verificado si todas las caras normales de la malla apuntan en la dirección correcta? Es bastante sencillo hacer esto en Blender)

b) ¿Ha aplicado el mapeo UV correcto? Unity exporta todos los datos de textura en función de cómo configura las cosas en Blender. Mire el panel Textura en Blender, especialmente el panel 'Mapeo' debajo de Texturas (idealmente, debería estar configurado en UV.

(PD: ¿cuál es la política aquí sobre los archivos adjuntos o la publicación de enlaces a los archivos del proyecto, digamos un enlace de Dropbox o Google Drive en la pregunta? Esto debería ser tan simple de solucionar si pudiera ver todos los archivos).

balajeerc
fuente
2
Para responder a su pregunta de archivo adjunto, en Stack Exchange, no se prefieren los enlaces externos a archivos para preguntas individuales, ya que tienden a desaparecer. Las imágenes deben cargarse en nuestro propio alojamiento (a través del botón de carga en el editor) para que el equipo de SE pueda asegurarse de que permanecen. No existe un soporte particular para las no imágenes (por ejemplo, los archivos de Blender para esta pregunta), pero es mejor encontrar alternativas, ya que se parece más a "depurar mi código muy grande", que es muy poco probable que sea útil para nadie más que el autor de la pregunta original, contrario a los objetivos de SE.
Kevin Reid