Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: SkyNetBCN en 29 de Octubre de 2006, 09:58:04 PM

Título: Texturas...
Publicado por: SkyNetBCN en 29 de Octubre de 2006, 09:58:04 PM
Qué tal compañeros...

He creado una habitación (4 paredes simples) con 3dMax y las exporto a .x y cuando las cargo como mesh y renderizo, las texutras se me ven como muy estiradas( para entendernos).
Como puedo resolver esto? supongo que la pregunta es una xorrada pero sk soy semi-nuevo en esto...  :o

Gracias de antemano
Título: Texturas...
Publicado por: BeRSeRKeR en 30 de Octubre de 2006, 08:24:14 AM
¿En MAX se ven bien las texturas?.
Título: + Texturas...
Publicado por: SkyNetBCN en 30 de Octubre de 2006, 08:43:27 AM
Si, se ve perfectamente...
Título: Texturas...
Publicado por: Alexpi en 30 de Octubre de 2006, 01:27:59 PM
A mi me pasó algo parecido cuando probe a cargar un skypshere, la textura estaba repetida sobre la esfera pero al exportarla no salia repetida, tube que multiplicarle las coordenadas de textura para repetirla las veces que queria y asi nose estiraba.

Un saludo.
Título: + Texturas
Publicado por: SkyNetBCN en 30 de Octubre de 2006, 06:13:08 PM
Multiplicar las coordenadas de la textura?  :shock: supongo que es algo sencillo de hacer... pero...  en fin, alguna pista? xD. Ya dije que soy muy nuevo en esto...

Gracias!
Título: Texturas...
Publicado por: marcode en 30 de Octubre de 2006, 06:49:48 PM
Expórtalo en formato texto y echa un vistazo a ver que demonios de coordenadas salen, a ver si da alguna pista.

O ponlo aquí mejor y lo vemos.
Título: Texturas...
Publicado por: BeRSeRKeR en 30 de Octubre de 2006, 07:01:26 PM
¿Cómo estás asignando el tiling para las coordenadas de textura?. ¿Con un modificador UVWUnwrap/UVWMap o con las opciones de tiling del material (en el editor de materiales)?.

Si es éste último, puede que el exporter de DX no lo soporte.

Saludos.
Título: Texturas...
Publicado por: SkyNetBCN en 30 de Octubre de 2006, 09:26:08 PM
Las estoy modificando con las opciones de tiling del material del editor de materiales del 3dMax...
Título: Texturas...
Publicado por: BeRSeRKeR en 30 de Octubre de 2006, 11:24:25 PM
Pues asegúrate que no sea ése el problema.

Saludos.
Título: Texturas...
Publicado por: SkyNetBCN en 02 de Noviembre de 2006, 07:56:40 AM
Pues como ya he dicho antes, no sé muy bien como hacerlo, pero lo que he intentado es esto...



LPDIRECT3DVERTEXBUFFER9 pTempVertexBuffer;
if(m_pMesh->GetVertexBuffer( &pTempVertexBuffer ) ) )
{
       int nNumVerts = m_pMesh->GetNumVertices();
       D3DVERTEX *pVertices = NULL;
       pTempVertexBuffer->Lock( 0, 0, (void**)&pVertices, 0 );
       for( int i = 0; i < nNumVerts; ++i )
       {
   pVertices.tu = 2.0f;
   pVertices.tv = 2.0f;
       }
       pTempVertexBuffer->Unlock();
       pTempVertexBuffer->Release();
}



Pero modificar tanto tu como tv hace que se vea aún peor o incluso dependiendo del valor, que no se vea la textura.

Gracias...
Título: Texturas...
Publicado por: BeRSeRKeR en 02 de Noviembre de 2006, 01:36:34 PM
Para que la textura se repita como en MAX, tienes que multiplicar por el valor del tiling:

pVertices[i].tu *= tiling_u;
pVertices[i].tv *= tiling_v;


Por cierto, ¿tienes el addressing mode en modo wrap?.

Saludos.
Título: Texturas...
Publicado por: SkyNetBCN en 02 de Noviembre de 2006, 04:27:50 PM
Lo siento, comenté que era nuevo en programación gráfica, jeje, y preguntarme esto:
Por cierto, ¿tienes el addressing mode en modo wrap?.
es como preguntarme a cerca de los orígenes del universo...  :?:

Sorry...
Título: Texturas...
Publicado por: BeRSeRKeR en 02 de Noviembre de 2006, 07:06:22 PM
Si estás utilizando Direct3D9, en el método SetSamplerState, tienes los estados D3DSAMP_ADDRESSU y D3DSAMP_ADDRESSV. Estos estados pueden recibir varios valores, los más usados son D3DTADDRESS_WRAP y D3DTADDRESS_CLAMP. El wrap lo que hará será repetir la textura tantas veces como indiquen las coordenadas de textura.

En Direct3D8 también tienes esos estados sólo que si no recuerdo mal, no era a través del método SetSamplerState (que se introdujo en DX9), sino SetTextureStageState.

Saludos.
Título: Texturas...
Publicado por: SkyNetBCN en 05 de Noviembre de 2006, 12:57:57 PM
Gracias a todos...

Al final, como dijistes tu BeRSeRKeR, he multiplicado los valores de tu y tv por el tiling que había en 3D Max y salió todo OK.

Aunque me preocupa que no se guarde este tipo de info en los archivos .X, quizás no sea el tipo de archivo que necesito, aunque de momento con lo que sé será mejor que no me complique mucho la vida...

Cuando haya acabado la escena que estoy haciendo subiré un par de escenas a ver que os parece... (ya que la estoy consiguiendo hacer gracias a vuestra ayuda... xD) .ok?

Saludos,
Título: Re: Texturas...
Publicado por: BeRSeRKeR en 05 de Noviembre de 2006, 02:36:59 PM
Cita de: SkyNetBCNAunque me preocupa que no se guarde este tipo de info en los archivos .X, quizás no sea el tipo de archivo que necesito, aunque de momento con lo que sé será mejor que no me complique mucho la vida...
En realidad el problema en este caso no es el formato X sino el plugin que utilizas para exportar, que no lleva a cabo esa multiplicación.

Saludos.