Você está na página 1de 4

BMP O

CUALQUIE
R IMAGEN
DE
FONDO
1. Descargar el programa GIM2: https://gimp.uptodown.com/windows
2. Descargar la imagen que quieras de internet (si quieres convertirla a .bmp,
mtela a paint y gurdala como .bmp)
3. Carga la imagen en GIMP2 y en la caja de herramientas presiona el botn
de escalar: deben escalarla a un tamao 2n, es decir, 2x2,4x4,8x8,16x16,
etc, si el tamao de la ventana en la que piensan poner el fondo les
recomiendo escalar a 128x128, si u ventana es del tamao de su pantalla
es recomendable escalar 512x512.
4. Una vez escalada la imagen es momento de exportarla, vayan a
Archivo/exportar como, den clic en todas la imgenes exportadas y
seleccionen cdigo fuente en c .c, nombren su archivo con cualquier
nombre, por ejemplo: mi fondo.c (siempre deben poner .c al final); den clic
en exportar.
5. Les saldr algo como esto:

6. Vea la estructura, no se preocupe por lo que haya despus de gimp_image


(512 * 512 y 512,512 indica el escalado que aplicamos en Gimp2, si estos
nmeros no son potencia de 2 vaya a GIMP y asegrese de escalar
correctamente la imagen, de lo contrario no funcionar correctamente).
7. La estructura debe quedar como est en la imagen (solo la estructura, no
se preocupe por lo que hay despus de gimp_image).
8. Una vez modificada la estructura guarde le cambios hechos.
9. Ahora justo despus de sus libreras (en codeblocks o lo que est
trabajando) incluya la direccin de su archivo .c, en mi caso lo guard en el
escritorio y la instruccin qued as:

#include<C:\Users\equipo\Desktop\Juego_semifinal\mi_fondo.c>

Ahora solo metan este mtodo a su cdigo:

void PintarEscena()
{
glClearColor(0,0,0,0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,40,0,30,-1,1);//cambia esto de acuerdo a tu proyecto
glMatrixMode(GL_MODELVIEW);
glClear(GL_COLOR_BUFFER_BIT);//borrando la ventana de
visualizacin
glLoadIdentity();
//cargando el bmp
GLuint texture;
glGenTextures(2,&texture);
glBindTexture(GL_TEXTURE_2D,texture);
glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE,
GL_MODULATE); //no RGB
gluBuild2DMipmaps( GL_TEXTURE_2D,
gimp_image.bytes_per_pixel,gimp_image.width,gimp_image.height,GL_RG
BA,GL_UNSIGNED_BYTE,gimp_image.pixel_data );
glEnable(GL_TEXTURE_2D);

glBegin(GL_QUADS);//dibujaremos un cuadrado

glTexCoord2d(1,1);//coordenada de la imagen (va de 0 a 1 en X y Y)


glVertex3f(0,0,0);//coordenada del primer punto del cuadrado

glTexCoord2d(0,1); );//coordenada de la imagen (va de 0 a 1 en X y Y)

glVertex3f(40,0,0); //coordenada del 2do punto del cuadrado

glTexCoord2d(0,0); );//coordenada de la imagen (va de 0 a 1 en X y Y)

glVertex3f(40,30,0); //coordenada del 3cer punto del cuadrado

glTexCoord2d(1,0); );//coordenada de la imagen (va de 0 a 1 en X y Y)

glVertex3f(0,30,0); //coordenada del 4to punto del cuadrado

glEnd();
//fin de la carga del BMP

//A partir de aqu debes a empezar a dibujar todo lo que quieras, si lo haces
arriba de la carga del bmp, no se vern correctamente
glutSwapBuffers();//para el cambio de buffers (cuando se usa buffer
doble)
}
10. Las coordenadas del cuadrado t las debes modificar de acuerda al tamao de tu ventana,
solo tienes que dibujar un cuadrado del tamao de tu ventana y dentro de este se pintar
la imagen
11. Asegrate de llamar a la funcin en el main:

glutDisplayFunc(PintarEscena);

12. Si quieres cargar otra imagen ms pequea, primero carga la imagen de fondo y luego
carga la imagen pequea (que puede servir como Sprite). Cambia en la funcin
gluBuild2DMipmaps el parmetro que dice RGBA por RGB. Ah y en el
nuevo archiv.c que creaste de la imagen pequea cambia gimp_image por
gimp_image2, de igual forma en la funcin gluBuild2DMipmaps.

13. No te funcion, quieres que te mande todo el cdigo de un juego que hice en OPENGL?,
mndame un correo con asunto CARGAR IMAGEN DE FONDO OPENGL y dime que te lo
pase, mi correo es:

juanjose_skorg@hotmail.com (todo en minsculas)

Tu buen amigo: JOHNNY

Você também pode gostar