Gracias Gracias:  0
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 15 de 27

Tema: Lightmaps UDK

  1. #1
    Senior Member
    Fecha de ingreso
    Feb 2012
    Mensajes
    283

    Lightmaps UDK

    Hola, a ver si alguien me puede echar un cable con el siguiente problema. Quisiera saber si lo que muestro a continuación es evitable o no...

    Como se puede observar en la siguiente imagen, dispongo de un cubo con su correspondiente normal para biselar los bordes:

    Lightmaps UDK-02.jpg

    Lightmaps UDK-06.jpg

    Este cubo tiene un smoothing group para cada cara:

    Lightmaps UDK-03.jpg

    Tambien dispone de dos canales UVs, uno para las texturas comunes y otro para el lightmap:

    Lightmaps UDK-04.jpg

    Lightmaps UDK-05.jpg

    Y ahora viene el tragico desenlace....

    Resulta que a este cubo cuando UDK le calcula la iluminación para la creación de los lightmaps...

    Lightmaps UDK-01.jpg

    le aparecen malditas seams!!! :/

    Mi pregunta es: ¿es posible evitar esto y que se sombree bien? Hice una prueba en 3DMax, bakeando un lightmap alli, y pude ver que cuando se usan resoluciones muy pequeñas ocurre lo mismo, sin embargo con resoluciones más altas no ocurre. En UDK en cambio si me ocurre con resoluciones altas también. Como mejor he podido comprobar que se muestra es cuando calculo la iluminación sobre los "vertex".

    Las imágenes que he puesto, tienen la luz calculada con indirect normal influence boost a 0.

    Otra cosa que me llama la atención, es el tema de los mirrors y las seams en estos casos... Mirando la wiki de polycount sobre normalmap me encuentro con lo siguiente: "If the mirror seam runs along the surface of a continuous mesh, like down the center of a human face for example, then it will probably create a lighting seam.

    In Epic Games' Unreal Engine 3 (UE3) their symmetrical models commonly use centered mirroring. Epic uses materials that mix a DetailMap with the normal maps; these seem to scatter the diffuse/specular lighting and help minimize the obviousness of the mirror seams. For their Light Mapped models they use a technique that can almost completely hide the mirror seam."
    Y dejan un link a este enlace: http://udn.epicgames.com/Three/LightMapUnwrapping.html

    Yo por lo menos no he encontrado en el enlace que hable de una técnica para bakear correctamente los lightmap en los modelos mirror ... ¿Alguien sabe algo sobre esto también?

    Gracias de antemano y un saludo

  2. #2
    Senior Member Avatar de infograph3d
    Fecha de ingreso
    Oct 2004
    Ubicación
    Madrid
    Mensajes
    1,415

    Re: Lightmaps UDK

    Hola, en el mismo enlace que colocaste, tienes una solución. Al menos creo que tus problemas en el bakeo del ligthmap, puedan ser debido a que tienes desplegado el objeto Box, con cada cara en un uv chart distinto, (como cuando usamos el unwrap a saco con el desplegado automatico flatten mapping, es lo mismo que lo que llaman uv islands, pero los chart son consecutivos en sus vértices, es decir, pueden coserse entre ellos) que quiere decir esto. Que deberías coser las caras contiguas unas a otras (con una caja es extremadamente sencillo si sabes como) eliminando la mayoría de costuras (seams) posibles.
    Esto es para evitar en cierto modo el bleeding de color entre costuras cercanas, al ir mapeado el efecto de oclusión, aunque intentamos aprovechar el espacio, a veces no dejamos sufiente entre islas distintas. En el editor de unwrap, si seleccionas las caras contiguas (control+A) y vas a los iconos de tu derecha, veras unos que ponen weld selected subobject... seams o any match selected, a veces no funcionan por que tienen que reorientar las caras para que sus vértices coincidan y te hace un destrozo. Es mejor, ya te digo, si sabes moverte por el unwrap, que muevas las caras y las coloques a mano, ayudante si quieres del snap (tecla S) en max y luego control+S para activar el snap en en unwrap, ojo, deja de ser guardar escena mientras estes dentro del editor de unwrap y solo sirve para conmutar el snap (el icono lo veras en la esquina inferior derecha del desplegable edit unwrap)
    Una vez tengas los vértices consecutivos o relacionados de cada cara una al lado de otra,(que suelen verse de color azul cuando están relacionados aunque sean de caras distintas) seleccionas todos y haces control+W (es lo mismo que ir al panel superior en tools y buscar control+W) esto suelda los vértices siempre que formen parte de la misma arista en tu objeto (recuerda se ponen azules) cuando sueldas estos, la nueva arista deja de ser un seams abierto (verde fuerte claro) y pasa a ser un verde más flojo, casi amarillo.

    Otra historia, pueda ser que tuvieras un problema por lo mismo, en caso de que usaras un normal map (no manejo bien esta parte, pero hay quien bakea usando un chamfer en los bordes para evitar artefactos) y luego lo elimina para el objeto a exportar a udque como static mesh. Recuerda usar el uv map 1 en udque creo equivale al 0, para el ligthmap. Y el 2 para la textura. En http://www.gameartisans.org/forums/forum.php y http://www.polycount.com/forum/ vas a encontrar mucha información al respecto mejor de lo que te puedo explicar, ya que no entiendo mucho, aunque pueda parecer.

  3. #3
    Senior Member Avatar de infograph3d
    Fecha de ingreso
    Oct 2004
    Ubicación
    Madrid
    Mensajes
    1,415

    Re: Lightmaps UDK

    Continuo otro poco, con las cosas que me deje sobre el mirror en el normal map y el ligthmap. Otra solución, cuando un objeto se puede modelar de forma simétrica, también se puede mapear de forma simétrica, es decir, cada lado desde el eje, lleva las mismas texturas, esto puede ser una ventaja, y una desventaja dependiendo del modelo, que es que los detalles de cada lado en cuestión de textura evidentemente son identicos. Otra es el ligthmap, que no funciona creo en objetos con geometría solapada en sus uvs (como sabrás al trabajar en simetría y mapear un lado de nuestro modelo, las caras simétricas comparten el mismo espacio uv por solapamiento, u overlap) la única solución de dos posibles, es separar las caras solapadas generando un segundo canal uv, donde estará desplegado todo el objeto, pero para bakear aquí nuestro ligthmap. El resto de texturas, continuara perfectamente en el otro canal, diffuse, normap, especular.... Otra opción, que también funciona, es tomar las caras solapadas, en el unwrap, funciona perfectamente la herramienta select overlapped faces en el menú superior select, teniendo únicamente el subobjeto polygon seleccionado, pues es lo único que reconoce por geometría solapada. Una vez tienes las caras en rojo indicadas como solapadas, las mueves a un chunque distinto fuera de las coordenadas 0,0 del unwrap. (lo que es el recuadro azul de seguridad que enmarca la zona de despliegue de nuestro uv) y haciendo clique en el icono inferior izquierdo que dice algo así como adsolute relative type in (es un icono que parece un punto de mira) hacemos clik en el y lo cambiamos a coordenadas absolutas. Ahora podremos desplazar las caras solapadas a un chunque distinto, en U.V,W, son las casillas contiguas a este icono. Si por ejemplo, ponemos (nos movemos) en valores en el eje U, de -1, desplazamos esas caras al chunque consecutivo a la izquierda, si fuese 1 lo haría a la derecha. De este modo, aunque las caras salen fuera del recuadro original, recuerda que el unwrap también funciona por repetición en patrón de la textura que colocamos aquí (tile) de hecho, es una herramienta más para texturar. Por lo que el ligthmap se colocara por igual a ambas geometría en tu simetría, pero sin tener overlap. Esto también funciona para mapas de normales, ya que al ser un mapa que aplica colores según coordenadas, es lógico que muestre artefactos, al invertirse dependiendo de su eje transversal y longitudinal sobre el objeto, por ello, si haces esto antes de bakear las normales, entendera que son geometrías distintas sin problemas de solapamiento o bleeding, y se bakeara bien. Aparte de que al soldar partes simétricas, no cambiara la orientación de los vértices a posterior (otra causa posible que se comenta, de por que se le va la pinza al normal map)
    En algunas ocasiones, funciona invertir en 3dsmax o en Photoshop si sabes como, el canal verde, sobre todo con coordenadas tangentes.

    Espero explicarme bien, un saludo.

  4. #4
    Senior Member
    Fecha de ingreso
    Feb 2012
    Mensajes
    283

    Re: Lightmaps UDK

    Te has explicado perfectamente, es de agradecer la extensa explicación

    El caso es que lo que comentas ya lo había probado antes... Suelo romperme la cabeza antes de preguntar buscando soluciones y curiosamente obtuve más bleeding cuando dejaba el cubo en una única isla, además, en teoría al aumentar la resolución con la que se creaban los lightmaps debería haber sido suficiente para evitar el bleeding y no daba el resultado esperado sin embargo...

    El caso es que como en algunas de estas cosas un mínimo cambio te puede dar un mal o buen resultado, he optado por repetir la prueba de dos formas y el resultado a sido...

    Lightmaps UDK-07.jpg

    Lightmaps UDK-08.jpg

    Bastante mejor... Aún se pueden ver un poco las seams, pero no sé si eso ya es normal.

    Más tarde comprobare si con un objeto mirror funciona así o da problemas.

    Un saludo!

  5. #5
    Senior Member
    Fecha de ingreso
    Feb 2012
    Mensajes
    283

    Re: Lightmaps UDK

    He probado un objeto con mirror y no queda bien. Si es cierto que dependiendo de como este el objeto orientado a la luz, si tenemos normal influence boost a 0 no aparece seams en ciertos casos, pero depende de como este el objeto orientado y me he fijado en las zonas de sombra si se produce seam en la línea que junta las dos mitades... Según tengo entendido es mejor no usar este tipo de mirror en statics mesh.

    Un saludo
    Última edición por Zerouks; 06-10-2013 a las 19:47

  6. #6
    El cabreador
    Fecha de ingreso
    Oct 2002
    Ubicación
    S.Compostela.
    Mensajes
    8,790

    Re: Lightmaps UDK

    Zerouks, muchas veces esto es más suerte que otra cosa pero por si las moscas, mete todo en el mismo canal de suavizado... eso de suavizado automatico no, hazlo manual, seleccionas todas las caras y las metes en un solo canal y después lanza el normal.

    Lo de los lightmaps mirror, ¿?¿. ezo como es, es imposible hacer un lightmap con un mapeado mirror, quedaría una guarrada... será que ando muy espeso.

    saludos.

  7. #7
    Senior Member
    Fecha de ingreso
    Feb 2012
    Mensajes
    283

    Re: Lightmaps UDK

    No, si las caras del cubo están puestas así aposta para que el normal se bakee perfectamente. Lo hago así por diferentes razones. Lo malo es que parece que da problemas con los lightmaps. Aunque no debería...

    Pensé que una solución podría ser calcular los lightmaps en el mismo objeto pero con todo en un smoothing group y luego cargar el de las caras dura y aplicarle a este el lightmap ya creado antes, pero creo que esto no se puede hacer y dependiendo del objeto el sombreado podría quedar mal.

    Por cierto, lo del mirror es en el canal 1 el de las texturas normales. Esto suele dar problemas aunque en el segundo canal se tenga el objeto mapeado sin mirror.

    Un saludo!

  8. #8
    Senior Member Avatar de infograph3d
    Fecha de ingreso
    Oct 2004
    Ubicación
    Madrid
    Mensajes
    1,415

    Re: Lightmaps UDK

    Efectivamente, el overlap de caras, en este caso, de un objeto mapeado por simetría, da error de lightmap en udk. Tienes que generar otro template con un canal distinto donde si tengas desplegado todo el objeto (por ejemplo es un metodo), para bakear el lightmap en el. Puedes perfectamente hacer este en udk, no necesitas hacerlo en max.

  9. #9
    Senior Member
    Fecha de ingreso
    Feb 2012
    Mensajes
    283

    Re: Lightmaps UDK

    Fiz, hice lo que me dijiste de meterlo todo en un smoothing group. Me he dado cuenta con esto que las seams no son por los grupos de suavizado sino por el lugar donde se encuentra la seam en las uvs del canal 1. Por alguna razón interpreta mal el sombreado aunque el normal este bien hecho y la uv del lightmap también... No lo entiendo...

    Lightmaps UDK-asd.jpg

    Alguna explicación debe de haber ¿no creeis?

    Saludos!

  10. #10
    El cabreador
    Fecha de ingreso
    Oct 2002
    Ubicación
    S.Compostela.
    Mensajes
    8,790

    Re: Lightmaps UDK

    Si la explicación es que los cortes siempre se van a ver, es imposible quitarlos, por eso se ponen en sitios que no se ven, o se tapan con normals de detalle...

    No sé que pasos sigues pero si lo has probado todo y no te funciona es que algo tienes que estar haciendo mal, una cubo es muy simple, no te quiero ver con objetos complejos... si puedes reproducir los pasos uno por uno y en orden genial.

    Saludos.

  11. #11
    Senior Member
    Fecha de ingreso
    Feb 2012
    Mensajes
    283

    Re: Lightmaps UDK

    A ver, iba a poner los pasos y demás, pero creo que mejor no sigo dando el coñazo.

    Ya me las apañare

    Gracias a ambos.

  12. #12
    El cabreador
    Fecha de ingreso
    Oct 2002
    Ubicación
    S.Compostela.
    Mensajes
    8,790

    Re: Lightmaps UDK

    no hombre.. como vas a dar el coñazo, aquí se esta para aprender...
    Los seams no se pueden eliminar, en las uvs siempre habrá un corte, lo que se hace es disimularlas, en un modelo humano pues con los cortes de la ropa, o por la parte interna del brazo o de la pierna si el modelo no tiene ropa... en otros modelos pues o se viven con ellos o se colocan en sitios donde no se va a ver...hay técnicas para disimularlos, muchos pintan por encima del normal o suavizan con Photoshop, es algo guarro pero si sabes puede quedar bien, otros meten mapas de detalle, eso rompe la línea del normal...
    El caso de tu caja es un problema de suavizado, o sea, la normal original del modelo no tiene continuidad con la consiguiente con lo que se hace un lío al calcular la luz, si metes todo dentro del mismo grupo ese problema tendría que desaparecer...Por eso digo que cuentes los pasos o me pases el modelo a ver si te podemos ayudar...

    Saludos.

  13. #13
    Senior Member
    Fecha de ingreso
    Feb 2012
    Mensajes
    283

    Re: Lightmaps UDK

    Si es que lo que pasa que eso que comentas ya lo se... Si en realidad hay juegos en los que se ven muchas de estas cosas... Las seams siempre van a estar, pero se pueden minimizar mucho.

    Las seams que de verdad cantan suelen ser problemas con el normal. Esto es lo que quisiera evitar. Meter todo en un grupo de suavizado funciona bien dependiendo de la topología del modelo. Por eso para una caja pienso que es mejor separar cada cara. Sino el smoothing group intentara suavizarlo como si fuera una esfera creando unos degradados que el normal intentara corregir, y no siempre queda bien... En realidad hay una forma para que las seams sean prácticamente invisibles con luz calculadas y todo... Y de esta forma seria metiendolo todo en 1 smoothing group y exportando con tangents y binormals:

    Lightmaps UDK-01.jpg

    La seam se vuelve prácticamente invisible... El método es este: http://udn.epicgames.com/Three/XNormalWorkflow.html

    Lo que pasa con este método, que también tiene problemas, en este caso, con el suavizado a la hora de crear el normal, creando algunas manchas raras (esto creo que depende de la topología del objeto nuevamente):

    Lightmaps UDK-02.jpg
    Lightmaps UDK-03.jpg

    Por otra parte, Si un normal se ve bien con luz dinámica, no debería verse mal con luz precalculada, al menos yo lo entiendo así. Lo lógico creo que seria que se viera igual, ya que para crear el sombreado tiene en cuenta las normales que da la textura, y si estas son correctas, después de calcular luces también deberían de serlo... No sé que es lo que hará UDK para calcular las luces, pero dependiendo del caso, crea una ruptura donde se encuentran las costuras, aunque antes esa ruptura no se viera.

    He seguido pasos diferentes para cada prueba. La que he hecho con un único smoothing group ha sido:

    1ºCreo objeto high en 3dmax y detallo en zbruhs.
    2ºCreo el low en 3dmax a partir del high.
    3ºMeto todo en 1 smoothing group en el low.
    4ºCreo el primer canal de uvs, en el caso que puse, dejo todo en una única pieza con pocos cortes.
    5ºCreo el segundo canal de uvs, en este caso, similar al primer canal.
    6ºExporto el modelo low como .obj (para bakear el normal) y fbx(para udk). En el fbx dejo desactivada la opción de tangents y binormals.
    7ºBakeo el normal map en xnormal.
    8ºAbro udque e importo el archivo fbx. Pongo el lightmap a 128 de resolución. indirect normal influence boost a 0 y production lighting.
    9ºImporto el normal con la compresion bc5. Y creo un material con el normal, y dos constantes para diffuse y specular.
    10ºCon luz dinámica se ve bien, al calcular luces, crea un corte que antes no se veía donde se encuentra la costura.

    El archivo es este: Prueba.rar, el cubo lo borre ya... Pero si hace falta lo hago de nuevo. En el que he puesto no se ve mucho la seam, depende de como se oriente con respecto a la luz, lo digo porque alomejor no te resulta fácil verla al principio.

    Saludos

  14. #14
    El cabreador
    Fecha de ingreso
    Oct 2002
    Ubicación
    S.Compostela.
    Mensajes
    8,790

    Re: Lightmaps UDK

    La diferencia es que yo los normal los creo dentro del Mudbox (ZB en tu caso), normalmente uso el de más bajo nivel o el siguiente...

    Por eso para una caja pienso que es mejor separar cada cara.
    Esto para un cubo puede funcionar, pero en un modelo orgánico no...
    Sino el smoothing group intentara suavizarlo como si fuera una esfera creando unos degradados que el normal intentara corregir, y no siempre queda bien..
    Cuando se calcula el normal esto ya se tiene en cuenta, por eso un normal tangencial solo funciona en el modelo para el que fue calculado.

    Cuando un modelo se me resiste, y que conste que yo modelo entre poco y nada uso este software. http://www.handplane3d.com/ cada programa calcula los normal como les sale, nunca usé el Xnormal, y cada software lee los normal como le apetece, un normal se puede ver bien en UDK y en Max quedar como el culo, este programa lo que hace más o menos es unificar toda esa información, tu le das el normal ya calculado pero en modo objects space, le dices a qué software va dirigido, en tu caso a UDK, y el modelo de baja y el te hace los arreglos y te saca un tangencial precioso...a mi me ha solucionado ciertas cosas...
    El software es gratis si lo usas sin fines comerciales.

    La única diferencia que veo es que usas el Xnormal, muy recomendable, pero nunca le he sacado la misma calidad que al Max o al Mudbox...solo lo usé un par de veces, eso sí, to dios lo usa.

    saludos.

  15. #15
    Senior Member
    Fecha de ingreso
    Feb 2012
    Mensajes
    283

    Re: Lightmaps UDK

    Handplane debe ser de las pocas cosas que no había probado jeje... Gracias, aunque lo he probado y el problema persiste, quizás con menos intensidad (no he llegado a compararlos).

    También debo decir que he probado normals bakeado en 3DMax. Zbrush no es nada recomendable para crear normals para videojuegos, ya lo he probado y tiene varias desventajas...

    Cada vez creo más que se trata de un problema de udque con el tema de calcular luces. Cuando calcula las luces y crea el lightmap, en teoría la luz no esta afectando al modelo y sin embargo en este sigue funcionando su especular como si hubiera iluminación. No tengo ni idea que es lo que hace UDK para hacer esto, pero creo que ahí reside el problema ¿No existe ningún parámetro en las luces u otro sitio para controlar esto?

    Estuve mirando en polycount esto: http://www.polycount.com/forum/showthread.php?t=97434 ¿Alquien sabe que es eso de los 3 pointshader?

    Fiz, lo que dices sobre los smoothing es verdad, pero tiene "peros". Lo de separar los smoothing groups sirve para cualquier objeto y bien hecho puede ser visualizado en cualquier aplicación prácticamente igual. De verdad. Tengo este tema bastante trillado jeje Si mal no recuerdo earthquake lo explica en este hilo: http://www.polycount.com/forum/showthread.php?t=81154

    En udn también hay algo sobre el tema, solo que su método es aun más bestia y "detachan" los smoothing groups (Detached Smoothing group method): http://udn.epicgames.com/Three/NormalMapProcessing.html

    El problema ha llegado cuando udque ha calculado las luces. Con luces en tiempo real no pasa.

    Un saludo!

Página 1 de 2 12 ÚltimoÚltimo

Temas similares

  1. Unreal Engine 4, LightMaps.
    Por yimianders en el foro Videojuegos
    Respuestas: 14
    Último mensaje: 17-05-2015, 21:47
  2. Respecto a los lightmaps
    Por Zerouks en el foro Videojuegos
    Respuestas: 6
    Último mensaje: 20-05-2013, 12:36
  3. Curso Blender Online 2009 Lightmaps
    Por oscurart en el foro Lecciones BONUS
    Respuestas: 2
    Último mensaje: 23-07-2010, 13:52
  4. Respuestas: 1
    Último mensaje: 20-05-2010, 17:48
  5. Mas lightmaps
    Por Percewall en el foro Render, Iluminación y Cámaras
    Respuestas: 0
    Último mensaje: 21-01-2005, 11:00

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •