Esempio n. 1
0
void InitInterlace_()
{
	need_InitInterlace = 0;
	glDisable(GL_LINE_SMOOTH);
	glDisable(GL_DEPTH_TEST);
    glDisable(GL_CULL_FACE);
	Begin2D(width,height);
	glEnable(GL_STENCIL_TEST);
	glClearStencil(0);
	//glStencilMask(1);
	glClear (GL_STENCIL_BUFFER_BIT);
	

	glStencilFunc(GL_ALWAYS, 1, 1);
	glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE);
	
	glBegin(GL_LINES);
	for(int i=0;i<height;i+=2)
	{
		glVertex2f(0,i);
		glVertex2f(width,i);
	}
	glEnd();

	glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
	glDisable(GL_STENCIL_TEST);
	End2D();
	glEnable(GL_LINE_SMOOTH);
	glEnable(GL_DEPTH_TEST);
    glEnable(GL_CULL_FACE);

}
Esempio n. 2
0
/*** Procesamiento de cada cuadro ***/
void Video( float elapsed )
{
    /* Limpio la pantalla */
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT );
    
    /* Perspectiva */
    glMatrixMode( GL_PROJECTION );
    glLoadIdentity();
    gluPerspective( 50.0f/zoom,                           // Ángulo de visión vertical
                   (GLfloat)WIDTH / (GLfloat)HEIGHT, // Aspecto
                   1.0f,                             // Plano cercano
                   2000.0f );                        // Plano lejano
    
    /* Cámara */
    glMatrixMode( GL_MODELVIEW );
    glLoadIdentity();
    
    /* Espada */
    glPushMatrix();
    glMultTransposeMatrixf(volumesEspada.matrix);
    
  //  glTranslatef(cam.pos.x, cam.pos.y + 5, cam.pos.z + 10);
    glRotatef(angX, 1.0f, 0.0f, 0.0f);
    glRotatef(angY, 0.0f, 1.0f, 0.0f);
    glRotatef(angZ, 0.0f, 0.0f, 1.0f);
    
    glCallList(modeloEspada.modelList);
    glPopMatrix();
    /*________*/
    
    
    
   
    
        
    
    
       
    
    
	VECTOR dir = SumVector(cam.pos, cam.look);
    
    gluLookAt(  cam.pos.x, cam.pos.y,  cam.pos.z,       // Posición
                dir.x, dir.y, dir.z,                    // Dirección
                0.0f, 1.0f, 0.0f );                     // Arriba
    
    
    
    
    /*Luz*/
    glPushMatrix();
    SetDirLight(GL_LIGHT0, &dirLight);
    glEnable (GL_LIGHT0);
    glPopMatrix();
    
    
    /*Terreno*/
    glPushMatrix();
    SetMaterial( &terrain.material );
    glBindTexture(GL_TEXTURE_2D, terrain.textureID);
    glCallList( terrain.terrainList );
    glPopMatrix();
    
    
    

    /*agua*/
      /*
    glPushMatrix();
    glEnable(GL_BLEND);
    SetMaterial( &agua.material );
    glBindTexture(GL_TEXTURE_2D, agua.textureID);
    glCallList( agua.terrainList );
    glDisable(GL_BLEND);
    glPopMatrix();
    
    
*/
    
    
    
    
    
    /*texto fps*/
 //   RenderText(fpstex, arialfont, 0, 0, &fontColor, GL_FALSE);
    
    
    /*SkyBox*/
    glPushMatrix();
    RenderSkybox(&skybox, &skyboxBox, &skyboxColor);
    glPopMatrix();
    
    

    

    
  
  
    
    
    
    //**texturitas!!!**//
    
    
    /* subacuatica*/
    
    
    glPushMatrix();
    

    //glLoadIdentity();
    glEnable(GL_BLEND);
    SetMaterial(&aguaMtrl);
    
    glBindTexture(GL_TEXTURE_2D, UnderwaterTex);

    glTranslatef(cam.pos.x, vWater, cam.pos.z);
    glScalef(1000.0f, 1000.0f, 1000.0f);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_MIRRORED_REPEAT);
    //  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER    , );

    
    glBegin(GL_QUADS);
    //Cara posterior
    
    
    
    glNormal3f( 0.0f,  1.0f, 0.0f);

    
    glTexCoord2f    ( 0.0f,  1.0f + movWater);
    glVertex3f      (-1.0f,  0.0f, -1.0f);
    glTexCoord2f    ( 0.0f,  0.0f + movWater);
    glVertex3f      ( 1.0f,  0.0f, -1.0f);
    glTexCoord2f    ( 1.0f,  0.0f + movWater);
    glVertex3f      ( 1.0f,  0.0f,  1.0f);
    glTexCoord2f    ( 1.0f,  1.0f + movWater);
    glVertex3f      (-1.0f,  0.0f,  1.0f);

    glEnd();
 
    glDisable(GL_BLEND);

    
    glPopMatrix();
    
    //_______________//
    //Transparencia


    
    
    
    
    /*HUD*/
    Begin2D(WIDTH, HEIGHT);
    


    
    if ( !renderUnderwater){
            }
    
    if (under){
        //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
        Render2DTexture( UnderwaterTex, 0, 0, WIDTH, HEIGHT );
    }
    
    
    //RENDER DEL MAPA Y EL DOT
    glPushMatrix();
    glTranslatef(WIDTH*0.79 , HEIGHT * 0.79, 0);
    Render2DTexture( mapTex, 0, 0, mapWidth, mapHeight );
    Render2DTexture( dotTex, dotX, dotZ, dotX+10, dotZ+10  );

    glPopMatrix();
    Render2DTexture(hudNull, 0, 0, WIDTH, HEIGHT);
    Render2DTexture(oxBar, 0, 0, ox * 10.0f, 50.0f);
    End2D();


    
    
    
    
    
    
    
    /* Ejecutar comandos en cola */
    glFlush();
    
    /* BackBuffer=FrontBuffer(flip) */
    SDL_GL_SwapBuffers();
}