Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Duda de novato: Limites de un Sprite

Iniciado por Corrupt, 19 de Febrero de 2007, 06:06:27 PM

« anterior - próximo »

Corrupt

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



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

McKrackeN

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. ;)
aludos,

Juan Pablo (McKrackeN) Bettini
Capital Federal
Argentina

http://www.zakengine.com

Corrupt

Tengo una Ati Mobility Radeon x600, sabes algo de ella?

Venga, gracias por responder tan rápido.

McKrackeN

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! ;)
aludos,

Juan Pablo (McKrackeN) Bettini
Capital Federal
Argentina

http://www.zakengine.com

Corrupt


[Vil]

Yo con mi x600 he trabajado con texturas de 1024x1024, pero siempre he funcionado con ^2 * ^2

Pogacha

Cuanto mide la ventana?
Esta bien definido el viewport?

Saludos






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.