Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





D3dtss_texturetransformflags

Iniciado por zupervaca, 14 de Febrero de 2005, 09:50:07 PM

« anterior - próximo »

zupervaca

 Hola buenas a todos tengo un motor 3d que con las tarjetas graficas ati las transformaciones de textura mediante matrices en directx van perfectas, pero cuando lo prueba con una nvidia no se escalan ni se mueven.

Agradeceria lo probarais para saber si es la tarjeta de nividia que tengo yo o es problema general de nividia, el motor esta en http://www.davidib.com/proyectos.asp y se llama dibMotor.

Segun lo que he leido nvidia trabaja para estas cosas en matrices de 3x3 y ati con 4x4, pero tampoco estoy seguro si directx hara la transformacion igualmente.

Un saludo a todos

BeRSeRKeR

 Hola.

Pues he probado la demo y lo cierto es que en todas las superficies donde debería haber "environment mapping", éste se realiza de forma incorrecta. La textura hace un "wrap" (¿debería ser un clamp?), es decir, se repite muchas veces a lo largo y ancho de la superficie.

Lo he probado con una Radeon 9600 XT por lo que al parecer el problema de la transformación de texturas no se reduce a tarjetas de nVidia.

Imagen


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

zupervaca

 aparte de ese problema que con la ati radeon 7500 me va bien no se por que no se desplazan las texturas, aqui os muestro un pequeño codigo que con la ati radeon 7500 funciona correctamente y la textura se desplaza:

D3DXMATRIX mTransform;
D3DXMatrixIdentity( &mTransform );
static float fPass = 0.0f;
fPass += 0.1f;
D3DXMatrixTranslation( &mTransform, fPass, 0.0f, 0.0f );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT3 );
g_pd3dDevice->SetTransform( D3DTS_TEXTURE0, &mTransform );

Con esto la gforce 2 no me va, pero con la ati si  :blink:

Saludos

Lord Trancos 2

 A mi con una GF4MX me pasa lo pispo que a BeRSeRKeR.

pd. bonita demo ;)
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

zupervaca

 gracias tio

bueno lo he arreglado parece ser que las D3DXMatrix* no valian por que para texturado no se admiten las matrices de 4x4 y solo pueden ser de 3x3, lo que hice fue cambiar los D3DXMatrix* por esto (os lo pongo por si alguien le pasara alguna vez lo mismo):

// Escala
m._11 = m_fScaleU;
m._22 = m_fScaleV;

// Posicion
m._31 = m_fScrollU;
m._32 = m_fScrollV;

// Rotacion
float theta = m_fRotateValue * PI / 180.0f;
m._11 = m._22 = cosf( theta );
m._21 = sinf( theta );
m._12 = -m._21;

Pues bueno si quereis probarlo no obstante para saber si rula en todas partes pos mejor y me comentais tios.  (ole)  






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.