XSIforum.com

Diferencia Unbiased Tangent/Normal Map

0 Usuarios y 1 Visitante están viendo este tema.

Eloihm

  • **
  • 775
  • "Aprende las reglas, domínalas, rómpelas"
Diferencia Unbiased Tangent/Normal Map
« en: 27 Junio 2011, 11:11:33 »
Hola a todos!

Tengo una duda que me corroe. No me es imprescindible saberlo hoy por hoy, pero me gustaría. Cuando conecto un mapa de normales en el material manager, me da la opción de activar/desactivar "Unbiased Tangent" y "Unbiased Normal Map". Normalmente voy activando/desactivando parámetros hasta dar con la combinación que más me guste o que se parezca al resultado original, pero me gustaría saber para que son cada uno y, quizá lo más interesante, qué criterios seguir para usarlos o no (vamos, saber qué son y para qué sirven).

También puedo elegir "Tangents" o "Vertex_Colors". Otra vez, pruebo a ver cual me da un resultado parecido a lo que busco, pero me gustaría saber que estoy haciendo :P

Muchas gracias!

Por cierto, si sois tan amables de explicarlo, tratad que sea fácil de entender, que no doy para mucho :)

alanf

  • *****
  • 6026
  • Pipeline Developer @ Felix & Paul Studios
Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #1 en: 28 Junio 2011, 17:07:53 »
RTFM. :P

En fin...
Unbiased Normals
Declares to the shader that the XYZ components of the normals are stored in an unbiased form (that is, not remapped to [0, 1]).
O sea, que Unbiased significa que los vectores de las normales vienen normalizados (que es decir, con valores de 0 a 1) en vez de los valores reales.


El manual continua diciendo:
When you create a Tangent or Binormal property from the Get->Property menu, data is written as unclamped floating-point color values. This means that true (unbiased) tangent and binormal data is being encoded in the color at vertices property. However, you can change the data type to use a short integer to store the color values. This is useful, for example, if your shader is expecting "shorts" and is already applying an inverse-offset to reconstruct the tangents and binormals.
...que traducido mas o menos dice:
Citar
Cuando creas una propiedad Tangent o Binormal del menu Get->Property, la informacion es floating point, que significa que la informacion verdadera (unbiased) tangent y binormal data es codificada al color de los vertices. Sin embargo, puedes cambiar el datatype para usar un pequenio integro para guardar los colores. Esto es util, por ejemplo, si tu shader (realtime) espera "shorts" y ya esta empleando un offset inverso para reconstruir las tangentes y binormales. [...lo que sea que esto ultimo signifique. xD]



Ah, y...
También puedo elegir "Tangents" o "Vertex_Colors". Otra vez, pruebo a ver cual me da un resultado parecido a lo que busco, pero me gustaría saber que estoy haciendo :P
Segun tengo entendido, "Tangents" es el que debes usar, pero "Vertex_Colors" es otra opcion si ya tuvieses los vertexcolors de las tangents en tu objeto/escena, digamos si trabajases en un estudio de videojuegos donde tengan herramientas para transportarlos del engine y otras herramientas a XSI y vice-versa.



Quedo mas claro? :buck2:

Eloihm

  • **
  • 775
  • "Aprende las reglas, domínalas, rómpelas"
Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #2 en: 28 Junio 2011, 17:53:50 »
IRTFM,TTRWIASH,BIDNUI

Alanf, te agradezco la intención, pero mi problema no es el idioma inglés, sino la interpretación del mismo. Quiero decir, unbiased significa que los valores vienen normalizados, entre cero y uno. Estupendo. Y ahora, ¿cuáles son las ventajas y desventajas? ¿En qué casos se suele usar?

Y así con casi todo, que la propiedad tangent cree un punto flotante (?) pero que se pueda cambiar el datatype (?) si mi shader espera shorts (Y no tengo ningún shader sin calzóncillos en mi escena), me deja igual o peor que cuando empecé.

Más que una explicación técnica (que también la agradezco), me gustaría una explicación más orientada a la práctica.

Pero gracias, de todos modos.

Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #3 en: 28 Junio 2011, 18:36:37 »
Estupendo. Y ahora, ¿cuáles son las ventajas y desventajas? ¿En qué casos se suele usar?
En principio las normales por defecto vienen normalizadas (eso significa que el tamaño del vector es 1) pero hay ciertos factores que pueden hacer que no lo estén, por ejemplo las user normals... o si tienes escalada la propia malla. Esta propiedad según entiendo fuerza el normalizado.

Citar
Y así con casi todo, que la propiedad tangent cree un punto flotante (?) pero que se pueda cambiar el datatype (?) si mi shader espera shorts (Y no tengo ningún shader sin calzóncillos en mi escena), me deja igual o peor que cuando empecé.
Todo "número" (variable) en programación tiene cierto margen de precisión interno según su tipo. Los float están cifrados a 32 bits y soportan muchísimos decimales (1,175494351e-38 según wikipedia) mientras que un short es simplemente un entero.
Con eso en mente, lo único que dice ahí, es que la propiedad tangent te permite cambiar el tipo de números que componen tus normales para que si tu shader no soporta floats, los pueda leer igualmente.

Eloihm

  • **
  • 775
  • "Aprende las reglas, domínalas, rómpelas"
Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #4 en: 28 Junio 2011, 18:44:04 »
Gracias, Cesar. Más o menos creo que empiezo a ver por donde van los tiros.

alanf

  • *****
  • 6026
  • Pipeline Developer @ Felix & Paul Studios
Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #5 en: 28 Junio 2011, 19:04:27 »
Mas que ventajas o desventajas, son opciones diferentes. Lo que dijo Cesar. :)



pd: me alegro que todos tus shaders tengan calzoncillos. xD

Eloihm

  • **
  • 775
  • "Aprende las reglas, domínalas, rómpelas"
Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #6 en: 28 Junio 2011, 20:06:41 »
Si,una vez apareció uno sin ellos y todas las aristas se pusieron rojas,que papelón...

Chorradas aparte, abrí este hilo por curiosidad y por aprender más acerca de lo que estoy haciendo,por lo que todo comentario me resulta de provecho.

Por cierto,sin salirnos mucho del tema,supongamos que hay un personaje simétrico y que le dieramos UVs suporponiendo una mitad sobre la otra,¿Puede que alguna de estas opciones sirva para evitar que el mapa de normales afecte bien a una mitad pero mal a la otra? ¿O no tiene nada que ver?

alanf

  • *****
  • 6026
  • Pipeline Developer @ Felix & Paul Studios
Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #7 en: 28 Junio 2011, 22:04:01 »
Que yo recuerde eso se soluciona con el Tangents property de siempre, pero hace tiempo que no toco el tema.

Eloihm

  • **
  • 775
  • "Aprende las reglas, domínalas, rómpelas"
Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #8 en: 29 Junio 2011, 09:46:08 »
Ok, pues echaré un ojo en ese sentido también, gracias! :)

Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #9 en: 29 Junio 2011, 12:08:02 »

Por cierto,sin salirnos mucho del tema,supongamos que hay un personaje simétrico y que le dieramos UVs suporponiendo una mitad sobre la otra,¿Puede que alguna de estas opciones sirva para evitar que el mapa de normales afecte bien a una mitad pero mal a la otra? ¿O no tiene nada que ver?

Esto nunca se hace, quiero decir, superponer UV's. O al menos nunca lo he visto de forma profesional.

Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #10 en: 29 Junio 2011, 13:03:42 »
En videojuegos se hace, normalmente para economizar.

Por ejemplo, en Gears of War algunos detalles de las armaduras e indumentarias de los personajes comparten UVs y texturas. Y en Metal Gear Solid 4 solo se hicieron texturas para una mitad del traje, la otra mitad utiliza las mismas.
« Última modificación: 29 Junio 2011, 13:32:00 por Mr.White »

Eloihm

  • **
  • 775
  • "Aprende las reglas, domínalas, rómpelas"
Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #11 en: 29 Junio 2011, 13:39:21 »
Sí, eso había oido, pero no lo sabía con certeza.

Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #12 en: 29 Junio 2011, 14:43:47 »
Perdonar el offtopic, pero entonces como se hacen UV´s solo en una mitad y se traspasan a la otra?

alanf

  • *****
  • 6026
  • Pipeline Developer @ Felix & Paul Studios
Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #13 en: 29 Junio 2011, 14:47:53 »
Esto nunca se hace, quiero decir, superponer UV's. O al menos nunca lo he visto de forma profesional.
En videojuegos se hace mucho para ahorrar espacio de UVs para mas detalle en otras zonas sin tener que usar mas resolucion.

Eloihm

  • **
  • 775
  • "Aprende las reglas, domínalas, rómpelas"
Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #14 en: 29 Junio 2011, 15:16:59 »
Perdonar el offtopic, pero entonces como se hacen UV´s solo en una mitad y se traspasan a la otra?

Siendo el personaje simetrico,modelas una mitad,le das las coordenadas UV y ahora puedes seguir dos procesos:

1:

1.1- seleccionas la mitad modelada.
1.2- duplicar en simetria.
1.3- merge de las dos mitades mergeando tambien las UV.

2:

2.1- seleccionas todos los poligonos de la mitad modelada.
2.2- symmetrice polygons.

Hay que tener cuidado,a mi personalmente,las UV superpuestas me suelen dar Problemas,sobre todo con los mapas de altura,lo que en un lado esta "levantado" en el otro está "hundido" o cosas raras. Habia oido que en videojuegos se hace,pero no se bien como :p.

Epar

Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #15 en: 29 Junio 2011, 21:55:43 »
Eso tambien lo puedes hacer en el texture editor, es mas, es recomendable hacerlo asi.
Simplemente cortas la mitad que te interesa, la inviertes, la superpones y sueldas ambas ( o no las sueldes, el resultado es igual siempre que esten bien superpuestas).
Pero para eso has de hacer las uv's perfectamente simetricas (obvio)...para eso es ideal uvLayout.

Yo lo hago mucho en ciertos objetos, o en partes de objetos muy complejos o muy grandes con partes perfectamte simetricas,...pero no para personajes, ya que nunca son perfectamente simetricos.

Por ejemplo es muy útil para edificios donde hay paredes exactamente iguales (aqui no es necesario invertir las uv's, solo superponerlas totalmente,...o parcialmente, depende del caso)
Luego con un procedural y una nueva proyección puedes meter aleatoriedad o suciedad para que no se noten las mismas texturas,...

uff...habria muuucho que escribir sobre este tema,...
« Última modificación: 29 Junio 2011, 22:04:48 por Epar »

Eloihm

  • **
  • 775
  • "Aprende las reglas, domínalas, rómpelas"
Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #16 en: 29 Junio 2011, 22:33:10 »
Pues tenemos mucho tiempo para leer ;)

Epar

Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #17 en: 29 Junio 2011, 23:53:46 »
XD.
La mayoria es por pura logica.
Si se tiene en cuenta que hay que hacer unas uv's al modelar, adelantas mucho.
De hecho, modelar no solo se refiere a los poligonos, si no a lo que vas ha hacer con ellos después.
Quiero decir, que las uv's muchas veces se pueden definir durante el modelado, los loops, la simetrias, las tensiones, etc,...Siempre hay que ir un par de pasos por delante. Luego solo cortas por donde ya habias previsto, y duplicas, superpones las uv's donde habias planificado.

Maximizar el espacio en las uv's te ahorra mucho tiempo de render al poder meter mucho detalle en texturas de un tamaño aceptable.
O unir materiales,..u objetos para que compartan uv's, etc,...

Te podria decir que el 50% del 3d lo he aprendido analizando objetos, texturas y materiales de juegos.
Por ejemplo, en Far cry2 o en Stalker es alucinante la cantidad de vejetación que meten,...o las reflexiones del cielo en el mar.....pues es muy ineteresante analizar todo esto...se aprende mucho, y te lo pasas bien..XD


Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #18 en: 30 Junio 2011, 00:28:49 »
Pero si superpones UVs a la hora de pintar, te va a salir exactamente lo mismo en ambas partes.
Si tengo un helicoptero (por poner un ejemplo) y pinto suciedad en una parte, en la otra voy a tener exactamente la misma suciedad. cosa que es terriblemente horrible. A menos que pinte la suciedad en otro canal de uv's con una distribucion distinta, cosa que seria una absoluta tonteria, porque si hago las uvs simetricas sera para ahorrarme texturas y otras cosas.

Puede que en videojuegos se haga, no se, nunca he trabajado en videojuegos, pero sin duda no me parece la forma mas correcta para conseguir calidad. Si prima ahorrar tiempos o lo que sea vale, pero como metodologia de trabajo, yo no lo veo. No podria currar asi, espero no tener que currar en videojuegos.

Epar

Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #19 en: 30 Junio 2011, 07:10:06 »
No solo se usa para video juegos. Es una tecnica mas,...y no se aplica siempre, solo cuando es necesario. Es una tonteria desperdiciar espacio, peso de la escena y tiempo de render,... y lo es mas cuando para lo mismo puedes usar la mitad.
La calidad no es meter tropecientos megas de texturas, ni poligonos,...la calidad es saber hacer las cosas correctamente, como bien sabes, Xuan.

Es solo una cuestion de optimización muy simple: puedo optener lo mismo con la mitad? Si la respuesta es afirmativa, la tecnica es valida para ese caso, si no, no.
« Última modificación: 30 Junio 2011, 07:16:23 por Epar »

Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #20 en: 30 Junio 2011, 08:10:58 »
La calidad no es meter tropecientos megas de texturas, ni poligonos,...la calidad es saber hacer las cosas correctamente, como bien sabes, Xuan.

Ahora mismo estoy trabajando con mapas de 32K asi que no puedo encajar esta frase :)
Fuera de conias, no digo que no sea bueno o malo utilizar esa tecnica, simplemente que yo nunca la he utilizado en ningun proyecto ni he visto utilizarla en cine o tv. Pero bueno, si os funciona eso es lo que importa.

Epar

Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #21 en: 30 Junio 2011, 14:27:48 »
Ahora mismo estoy trabajando con mapas de 32K asi que no puedo encajar esta frase :)
XD,..eso tú, que puedes permitirte ese lujo. La mayoria de mortales nos tenemos que conformar con menos. Asi que aprendemos a optimizar para obtener calidad con los recursos disponibles.
Es lo que hay.
;)

alanf

  • *****
  • 6026
  • Pipeline Developer @ Felix & Paul Studios
Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #22 en: 30 Junio 2011, 15:21:56 »
Ahora mismo estoy trabajando con mapas de 32K ...
Mari? xD

Re: Diferencia Unbiased Tangent/Normal Map
« Respuesta #23 en: 01 Julio 2011, 00:26:56 »
XD,..eso tú, que puedes permitirte ese lujo. La mayoria de mortales nos tenemos que conformar con menos. Asi que aprendemos a optimizar para obtener calidad con los recursos disponibles.
Es lo que hay.
;)

Ok, entiendo, pero vamos, en mi casa no sale un mapa de menos de 4k asi que tampoco hay mucho que optimizar. Bueno en composicion de escena trabajo con LOD pero es todo lo que optimizo en mi casa.

Mari? xD
Mari a saco xD