Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Texturas...

Iniciado por SkyNetBCN, 29 de Octubre de 2006, 09:58:04 PM

« anterior - próximo »

SkyNetBCN

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

BeRSeRKeR

¿En MAX se ven bien las texturas?.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

SkyNetBCN

Si, se ve perfectamente...

Alexpi

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.
Juego web www.goldpiece.net

SkyNetBCN

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!

marcode

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.
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

BeRSeRKeR

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

SkyNetBCN

Las estoy modificando con las opciones de tiling del material del editor de materiales del 3dMax...

BeRSeRKeR

Pues asegúrate que no sea ése el problema.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

SkyNetBCN

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...

BeRSeRKeR

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

SkyNetBCN

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...

BeRSeRKeR

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

SkyNetBCN

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,

BeRSeRKeR

Cita de: "SkyNetBCN"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...
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.
¡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.