Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Corrupt en 19 de Febrero de 2007, 06:06:27 PM

Título: Duda de novato: Limites de un Sprite
Publicado por: Corrupt en 19 de Febrero de 2007, 06:06:27 PM
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.
Título: Duda de novato: Limites de un Sprite
Publicado por: McKrackeN en 19 de Febrero de 2007, 06:09:31 PM
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. ;)
Título: Duda de novato: Limites de un Sprite
Publicado por: Corrupt en 19 de Febrero de 2007, 06:12:38 PM
Tengo una Ati Mobility Radeon x600, sabes algo de ella?

Venga, gracias por responder tan rápido.
Título: Duda de novato: Limites de un Sprite
Publicado por: McKrackeN en 19 de Febrero de 2007, 06:20:23 PM
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! ;)
Título: Duda de novato: Limites de un Sprite
Publicado por: Corrupt en 19 de Febrero de 2007, 06:21:15 PM
Voy a probarlo y ahora comento.
Título: Duda de novato: Limites de un Sprite
Publicado por: [Vil] en 20 de Febrero de 2007, 12:57:37 AM
Yo con mi x600 he trabajado con texturas de 1024x1024, pero siempre he funcionado con ^2 * ^2
Título: Duda de novato: Limites de un Sprite
Publicado por: Pogacha en 20 de Febrero de 2007, 11:50:16 AM
Cuanto mide la ventana?
Esta bien definido el viewport?

Saludos