Hola a todos.
Estoy aprendiendo a usar DirectX y estoy con las primeras chapucillas, en concreto quiero hacer un Pong. Lo tengo todo mas o menos claro pero se me ha planteado un problema que escapa a mi comprensión.
Vereis, tengo un sprite en el que cargo la imagen de fondo (de 700x400) completa, pero al dibujarse la zona inferior aparece cortada, es decir, representa una imagen de 600x400 por así decirlo saliéndose de la ventana por abajo unos 100 pixeles. No se por qué ocurre esto, alguien tiene idea??.
(http://img230.imageshack.us/img230/4310/fondocortadoyk5.png) (http://imageshack.us)
(de la linea roja hacia abajo no me lo dibuja dentro de la ventana)
//Creacion de la ventana
HWND hWnd = CreateWindow("D3DWindow","CorruptPONG!",WS_OVERLAPPEDWINDOW,40, 40, 700, 400, GetDesktopWindow(),NULL, hInst, NULL );
//Creacion de la textura
D3DXCreateTextureFromFileEx( g_pd3dDevice,
"fondo.png",
0,0,1,0,
D3DFMT_UNKNOWN,
D3DPOOL_DEFAULT,
D3DX_FILTER_NONE,
D3DX_FILTER_NONE,
NULL,
NULL,
NULL,
&g_pTexFondo );
//Dibujo en el sprite
g_pSprite->Draw( g_pTexFondo,
NULL,
NULL, // Tamaño del fondo 700x400, centro en (0,0)
&D3DXVECTOR3( 0.0, 0.0, 0.0),
0xFFFFFFFF );
Un saludo.
Muchas placas de video no soportan texturas que no sean cuadradas y de potencia de 2 a la n píxeles por lado, es decir que las texturas pueden ser de 64x64, 128x128, 256x256 y así sucesivamente. El máximo del tamaño dependerá de la placa vídeo que tengas. En el caso de una GeForce2 creo que su máximo es 2048x2048, una RivaTNT2 creo que es de 1024x1024 como máximo.
Espero que te sirva la respuesta. ;)
Tengo una Ati Mobility Radeon x600, sabes algo de ella?
Venga, gracias por responder tan rápido.
No se si esa placa tiene ese problema, pero de todas formas por el síntoma que describís es muy probable que sea por el tamaño de la textura.
Intenta modificando el tamaño para que quede como textura cuadrada con potencia de 2 a la n píxeles por lado.
De nada! Justo vi tu post cuando lo terminaste de escribir... pura casualidad! ;)
Voy a probarlo y ahora comento.
Yo con mi x600 he trabajado con texturas de 1024x1024, pero siempre he funcionado con ^2 * ^2
Cuanto mide la ventana?
Esta bien definido el viewport?
Saludos