Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





OPENGL imagen de fondo

Iniciado por maqueapower, 13 de Septiembre de 2007, 11:59:33 AM

« anterior - próximo »

maqueapower

hola buenas, querria consultar una duda sobre OPENGL...
soy principiante y he descubierto q con glClearColor se establece el color de fondo de la escena... ¿se podria poner una imagen de fondo de forma directa?
o hay que crear una esfera o un plano y mapearlo?¿?¿?

tamat

pones el viewport a 0,0,1,1, y haces un plano de 0,0 a 1,1 con coordenadas de textura 0,0  0,1  1,0  1,1

OpenGL es un API de bajo nivel, no esperes ese tipo de "ayudas"
Por un stratos menos tenso

senior wapo

Si que puedes volcar pixeles directamente con OpenGL, pero será más lento que poner un plano texturado  si la imagen es estática.

Si el fondo va a cambiar cada fotograma, como pueda ser poner un video de fondo, entonces te da igual una cosa que otra (en realidad no, si usas varias texturas pero eso ya te liará más).

Mirate en google la funcion glDrawPixels() y glRasterPos().

Alexpi

Un forma que use yo hace tiempo es desactivando el DEPTH TEST. Es una solucion rapida y muy facil de usar, aqui te muestro el codigo que use.

void Fondo()
{
Perspectiva2D();

glDisable(GL_DEPTH_TEST);

glColor3f(1.0, 1.0, 1.0);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texture[0]);

glBegin(GL_QUADS);
glTexCoord2f(0.0f,1.0f);
glVertex2d(0,0);

glTexCoord2f(1.0f,1.0f);
glVertex2d(SCREEN_WIDTH,0);

glTexCoord2f(1.0f,0.0f);
glVertex2d(SCREEN_WIDTH,SCREEN_HEIGHT);

glTexCoord2f(0.0f,0.0f);
glVertex2d(0,SCREEN_HEIGHT);
glEnd();

glDisable(GL_TEXTURE_2D);

glEnable(GL_DEPTH_TEST);

Perspectiva3D();
}


Simplemente dibujo un plano que cubra toda la pantalla al cual le pongo la textura que sera el fondo.

Todo lo que se rendee despues del fondo con el DEPTH_TEST activado, siempre aparecera sobre la imagen.
Juego web www.goldpiece.net






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.