Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Degiik en 22 de Julio de 2003, 12:19:53 PM

Título: Max -> Formato Propio
Publicado por: Degiik en 22 de Julio de 2003, 12:19:53 PM
 Hola, como siempre, recurro a vosotros cuando me encallo con algo.

Estoy realizando un exportador de MAX a un formato propipo, y tengo problemas con el texcoord las texturas. Para realizar este exportador me he basado en el " 3DS FILE LOADER" tutorial que encontre en www.gametutorials.com.

El problema lo tengo con las coordenadas de textura. Resulta que cuando leo, las coordenadas suelen ser poco razonables, pues para ser una textura para todo el objeto ( no por poligono ), tener texxcoord de 0,4xxxx y 1,2xxxxx no me parecen correctos, asi que se me ve todo... como cuando no estan bien las texturas  :D .

La cuestion es que me ralle y ejecute el que me descargue de la pagina anteriormente citada. Cual fue mi sorpresa que los valores de texcoord los mismos que estaba leyendo yo.  :blink:  así que creo que se me esta escapando algo... :(

Nota1: Mira tu por donde me parecia que el segundo valor del texcoord siempre era 1 mas grande que el primero ( ej. x=0,3455 y=1,4593 ), me dio por restarle 1 al segundo valor y la textura a parecio correcta... bueno casi pq esta un poco mas ancha que la normal. Creo que se me escapa algo...

Nota2: El problema no es la textura pues la cargo en un quad poniendole las coordenadas de textura y se representa bien.

Gracias por adelantado.
Título: Max -> Formato Propio
Publicado por: Malandrin en 22 de Julio de 2003, 02:41:45 PM
   Hola,

 La cosa es que el MAX mapea al revés la V, por lo que tienes que poner algo así:

    Poli->aU[0] = tv0.x;
    Poli->aU[1] = tv1.x;
    Poli->aU[2] = tv2.x;
    Poli->aV[0] = 1.f - tv0.y;
    Poli->aV[1] = 1.f - tv1.y;
    Poli->aV[2] = 1.f - tv2.y;

 Teniendo tvX las coordenadas de texturas devueltas por el MAX con ...GetMesh().tVerts[]...


 Un saludin

Título: Max -> Formato Propio
Publicado por: BeRSeRKeR en 22 de Julio de 2003, 03:04:35 PM
 Lo de la V invertida sería si estás utilizando Direct3D ya que creo que las coordenadas de textura del MAX utilizan el sistema de OpenGL.

En cuanto a lo de las coordenadas mayores de 1.0, ¿no será que con eso te está indicando la repetición de la textura sobre el polígono?. Por ejemplo, un valor de 1.5 en U indica que la textura se tiene que repetir 1.5 veces sobre el polígono en U. Tal vez el problema es que estés especificando el modo de texturado CLAMP en vez de WRAP o viceversa...¿quién sabe? :D. Prueba a cambiarlo.

Saludos.
Título: Max -> Formato Propio
Publicado por: Degiik en 22 de Julio de 2003, 03:05:36 PM
 con 1 - texcoord.y se me ve en negro.  <_< , con texcoord.y - 1 consigo que funcione, pero ocmo dije antes demasiado ancho. Ademas no veo por ningun lado que en el tutorial se reste -1 por ningun lado.  :(

Gracias de todas formas.  ;)  
Título: Max -> Formato Propio
Publicado por: BeRSeRKeR en 22 de Julio de 2003, 03:07:39 PM
 Casi respondemos al mismo tiempo  :D  
Título: Max -> Formato Propio
Publicado por: Degiik en 22 de Julio de 2003, 03:16:49 PM
 Vaya, pues tienes razon, tenia el CLAMP por el REPEAT ( supongo que el WARP )   (ole)  Creo que estoy confundido me puedes explicar la diferencia entre ambos ?
Título: Max -> Formato Propio
Publicado por: BeRSeRKeR en 22 de Julio de 2003, 03:53:34 PM
 ¿Pero entonces el problema se ha solucionado con lo del modo de mapeado de textura?...

En relación a las diferencias entre CLAMP y WRAP, con WRAP (o REPEAT), lo que estás especificando es que la textura se repita sobre el polígono tantas veces como indique la coordenada de textura mientras que CLAMP lo que hace es que las zonas del polígono con valores por debajo de 0.0 o por encima de 1.0 las pinta con el color del texel en la coordenada 0.0 o 1.0 dependiendo del caso. En este caso es posible que lo que se te vea sea la textura aplicada una vez y unas rayas de colores a lo largo y ancho del polígono (que salen de los bordes de la textura)...

Saludos