Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Max -> Formato Propio

Iniciado por Degiik, 22 de Julio de 2003, 12:19:53 PM

« anterior - próximo »

Degiik

 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.
egiik: h-O-5 hoja/ingestión 100mo Vida suspendida ( 1 día )

Malandrin

   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


BeRSeRKeR

 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.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Degiik

 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.  ;)  
egiik: h-O-5 hoja/ingestión 100mo Vida suspendida ( 1 día )

BeRSeRKeR

 Casi respondemos al mismo tiempo  :D  
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Degiik

 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 ?
egiik: h-O-5 hoja/ingestión 100mo Vida suspendida ( 1 día )

BeRSeRKeR

 ¿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
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.