Example #1
0
void menu(int value)
{
	switch( value )
	{
		case LIGHT_ONE:
			lightOne();
			break;
		case LIGHT_TWO:
			lightTwo();
			break;
		case FLAT_SHADING:
			glShadeModel( GL_FLAT );
			break;
		case SMOOTH_SHADING:
			glShadeModel( GL_SMOOTH );
			break;
		case PHONG_2:
			exponent = 2;
			glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, exponent);
			break;
		case PHONG_8:
			exponent = 8;
			glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, exponent);
			break;
		case PHONG_16:
			exponent = 16;
			glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, exponent);
			break;
		case PHONG_64:
			exponent = 64;
			glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, exponent);
			break;
		default:
			break;
	}
  // you would want to redraw now
  glutPostRedisplay();
}
Example #2
0
/* There's a disc with a hole in it around the screen, to act as a mask
   preventing slightly off-screen bogies from showing up.  This clips 'em.
 */
static int
draw_table (ModeInfo *mi)
{
  /*sonar_configuration *sp = &sps[MI_SCREEN(mi)];*/
  int wire = MI_IS_WIREFRAME(mi);
  int polys = 0;
  int i;
  int th_steps = 36 * 4;    /* same as in draw_screen */

  static const GLfloat color[4]  = {0.0, 0.0, 0.0, 1.0};
  static const GLfloat text[4]   = {0.15, 0.15, 0.15, 1.0};
  static const GLfloat spec[4]   = {0.0, 0.0, 0.0, 1.0};
  static const GLfloat shiny     = 0.0;

  if (wire) return 0;

  glPushAttrib (GL_ENABLE_BIT);
  glDisable (GL_TEXTURE_2D);

  glMaterialfv (GL_FRONT, GL_SPECULAR,  spec);
  glMateriali  (GL_FRONT, GL_SHININESS, shiny);
  glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);

  glFrontFace (GL_CCW);
  glBegin(wire ? GL_LINES : GL_QUAD_STRIP);
  glNormal3f (0, 0, 1);
  for (i = 0; i <= th_steps; i++)
    {
      double a = M_PI * 2 * i / th_steps;
      double x = cos(a);
      double y = sin(a);
      glVertex3f (x, y, 0);
      glVertex3f (x*10, y*10, 0);
      polys++;
    }
  glEnd();
  glPopAttrib();

  glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, text);
  glTranslatef (0, 0, 0.01);
  for (i = 0; i < 360; i += 10)
    {
      char buf[10];
      GLfloat a = M_PI/2 - (i / 180.0 * M_PI);
      sprintf (buf, "%d", i);
      polys += draw_text (mi, buf, 1.07, a, 0, 10.0);
    }

  return polys;
}
Example #3
0
File: Mesh.cpp Project: Booley/nbis
		void Mesh::draw() const {

			// --- TODO: Rewrite - way to many state changes...

			glPushMatrix();
			glTranslatef( startBase.x(), startBase.y(), startBase.z() );
			

			GLfloat col[4] = {0.0f, 1.0f, 1.0f, 0.1f} ;
			glMaterialfv( GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col );
			

			glPolygonMode(GL_FRONT, GL_FILL);
			glPolygonMode(GL_BACK, GL_FILL);
				
			Vector3f O(0,0,0);
			Vector3f end = endBase - startBase;
			
			glEnable (GL_LIGHTING);

			glDisable(GL_CULL_FACE); // TODO: do we need this?
			glEnable (GL_BLEND);
			glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
			GLfloat c3[4] = {0.3f, 0.3f, 0.3f, 0.5f};
			glMaterialfv( GL_FRONT, GL_SPECULAR, c3 );
			glMateriali(GL_FRONT, GL_SHININESS, 127);
			glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
			glEnable(GL_COLOR_MATERIAL);
			
					
			glBegin( GL_QUADS );
			glColor4fv(primaryColor);
			GLfloat secondaryColor[4] = {oldRgb[0], oldRgb[1], oldRgb[2], oldAlpha};
			
			//vertex4n(O, startDir1,startDir2+startDir1,startDir2);
			Vector3f c1(startDir1*0.5f+startDir2*0.5f);
			Vector3f c2(end+endDir1*0.5f+endDir2*0.5f);
			vertex4(primaryColor, c1, O, startDir1, secondaryColor,c2,  end+endDir1,end,false);
			vertex4(primaryColor,c1,  O, startDir2, secondaryColor,c2,  end+endDir2,end,false);
			vertex4(primaryColor,c1,  startDir1, startDir1+startDir2,secondaryColor,c2,   end+endDir1+endDir2, end+endDir1,false);
			vertex4(primaryColor,c1,  startDir2, startDir1+startDir2,secondaryColor,c2,  end+endDir1+endDir2, end+endDir2,false);
			//vertex4n(O+end, endDir1+end,endDir2+endDir1+end,endDir2+end);
			glEnd();
			
			glDisable(GL_COLOR_MATERIAL);
			

			glPopMatrix();			
		};
Example #4
0
//////////////////////////////////////////////////////////////////
// This function does any needed initialization on the rendering
// context. 
void SetupRC()
{
	int iSphere;

	// Calculate shadow matrix
	M3DVector3f vPoints[3] = {{ 0.0f, -0.4f, 0.0f },
	{ 10.0f, -0.4f, 0.0f },
	{ 5.0f, -0.4f, -5.0f }};

	// Grayish background
	glClearColor(fLowLight[0], fLowLight[1], fLowLight[2], fLowLight[3]);

	// Cull backs of polygons
	glCullFace(GL_BACK);
	glFrontFace(GL_CCW);
	glEnable(GL_CULL_FACE);
	glEnable(GL_DEPTH_TEST);

	// Setup light parameters
	glLightModelfv(GL_LIGHT_MODEL_AMBIENT, fNoLight);
	glLightfv(GL_LIGHT0, GL_AMBIENT, fLowLight);
	glLightfv(GL_LIGHT0, GL_DIFFUSE, fBrightLight);
	glLightfv(GL_LIGHT0, GL_SPECULAR, fBrightLight);
	glEnable(GL_LIGHTING);
	glEnable(GL_LIGHT0);


	// Get the plane equation from three points on the ground
	M3DVector4f vPlaneEquation;
	m3dGetPlaneEquation(vPlaneEquation, vPoints[0], vPoints[1], vPoints[2]);

	// Calculate projection matrix to draw shadow on the ground
	m3dMakePlanarShadowMatrix(mShadowMatrix, vPlaneEquation, fLightPos);


	// Mostly use material tracking
	glEnable(GL_COLOR_MATERIAL);
	glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
	glMateriali(GL_FRONT, GL_SHININESS, 128);

	// Randomly place the sphere inhabitants
	for(iSphere = 0; iSphere < NUM_SPHERES; iSphere++)
	{
		spheres[iSphere].SetOrigin((float)((rand() % 400) - 200) * 0.1f, 0.0f,
			(float)((rand() % 400) - 200) * 0.1f);
	}

	glEnable(GL_MULTISAMPLE);  // This is actually on by default
}
void GPU_simple_shader_colors(const float diffuse[3], const float specular[3],
	int shininess, float alpha)
{
	float gl_diffuse[4], gl_specular[4];

	copy_v3_v3(gl_diffuse, diffuse);
	gl_diffuse[3] = alpha;

	copy_v3_v3(gl_specular, specular);
	gl_specular[3] = 1.0f;

	glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, gl_diffuse);
	glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, gl_specular);
	glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, CLAMPIS(shininess, 1, 128));
}
Example #6
0
// Define brilho, fontes de luz e reflectancia
void DefineLuz(void) {
    GLfloat LuzAmbiente[]   = {0.24725f, 0.1995f, 0.07f } ;
    GLfloat LuzDifusa[]   = {0.75164f, 0.60648f, 0.22648f, 1.0f };
    GLfloat LuzEspecular[] = {0.626281f, 0.555802f, 0.366065f, 1.0f };
    GLfloat PosicaoLuz0[]  = {-40.0f,-40.0f, 100.0f, 1.0f };
    GLfloat PosicaoLuz1[]  = { 40.0f, 40.0f, 100.0f, 1.0f };
    GLfloat Especularidade[] = {1.0f, 1.0f, 1.0f, 1.0f };

    // Fonte de Luz 0
	glEnable ( GL_COLOR_MATERIAL );
    glEnable(GL_LIGHTING);
    glLightModelfv(GL_LIGHT_MODEL_AMBIENT, LuzAmbiente);

    glLightfv(GL_LIGHT0, GL_AMBIENT, LuzAmbiente);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, LuzDifusa  );
    glLightfv(GL_LIGHT0, GL_SPECULAR, LuzEspecular  );
    glLightfv(GL_LIGHT0, GL_POSITION, PosicaoLuz0 );
    glEnable(GL_LIGHT0);

    glEnable(GL_COLOR_MATERIAL);
    glMaterialfv(GL_FRONT,GL_SPECULAR, Especularidade);
    glMateriali(GL_FRONT,GL_SHININESS,51);

  // Fonte de Luz 1
    glLightModelfv(GL_LIGHT_MODEL_AMBIENT, LuzAmbiente);

    glLightfv(GL_LIGHT1, GL_AMBIENT, LuzAmbiente);
    glLightfv(GL_LIGHT1, GL_DIFFUSE, LuzDifusa  );
    glLightfv(GL_LIGHT1, GL_SPECULAR, LuzEspecular  );
    glLightfv(GL_LIGHT1, GL_POSITION, PosicaoLuz1 );
    glEnable(GL_LIGHT1);

    glEnable(GL_COLOR_MATERIAL);
    glMaterialfv(GL_FRONT,GL_SPECULAR, Especularidade);
    glMateriali(GL_FRONT,GL_SHININESS,20);
}
Example #7
0
//////////////////////////////////////////////////////////////////
// This function does any needed initialization on the rendering
// context. 
void SetupRC()
    {
    int iSphere;
    
	// Calculate shadow matrix
    GLTVector3 vPoints[3] = {{ 0.0f, -0.4f, 0.0f },
                             { 10.0f, -0.4f, 0.0f },
                             { 5.0f, -0.4f, -5.0f }};
    
    // Grayish background
    glClearColor(fLowLight[0], fLowLight[1], fLowLight[2], fLowLight[3]);
         
    // Cull backs of polygons
    glCullFace(GL_BACK);
    glFrontFace(GL_CCW);
    glEnable(GL_CULL_FACE);
    glEnable(GL_DEPTH_TEST);
    
    // Setup light parameters
    glLightModelfv(GL_LIGHT_MODEL_AMBIENT, fNoLight);
    glLightfv(GL_LIGHT0, GL_AMBIENT, fLowLight);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, fBrightLight);
    glLightfv(GL_LIGHT0, GL_SPECULAR, fBrightLight);
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    

    
     gltMakeShadowMatrix(vPoints, fLightPos, mShadowMatrix);
    
    // Mostly use material tracking
    glEnable(GL_COLOR_MATERIAL);
    glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
    glMateriali(GL_FRONT, GL_SHININESS, 128);
    
    gltInitFrame(&frameCamera);  // Initialize the camera
    
    // Randomly place the sphere inhabitants
    for(iSphere = 0; iSphere < NUM_SPHERES; iSphere++)
        {
        gltInitFrame(&spheres[iSphere]);    // Initialize the frame
        
        // Pick a random location between -20 and 20 at .1 increments
        spheres[iSphere].vLocation[0] = (float)((rand() % 400) - 200) * 0.1f;
        spheres[iSphere].vLocation[1] = 0.0f; 
        spheres[iSphere].vLocation[2] = (float)((rand() % 400) - 200) * 0.1f;
        }
    }
Example #8
0
void Model::setMaterial(Material mtl) const {
	
	float diff[4];
	float spec[4];
	float amb[4];
	int specExp = ((int)mtl.getSpecularExponent() >= 0) ? (int)mtl.getSpecularExponent() : 0;
	mtl.getDiffuseColor().convert(diff);
	mtl.getSpecularColor().convert(spec);
	mtl.getAmbientColor().convert(amb);
	glMaterialfv(GL_FRONT, GL_DIFFUSE, diff);
	glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
	glMateriali(GL_FRONT, GL_SHININESS, specExp);
	glMaterialfv(GL_FRONT, GL_AMBIENT, amb);

	mtl.getTexture().apply();
}
void SetOpenGlDefaultMaterial()
{
    glm::vec4 ambient( 0.2, 0.2, 0.2, 1.0 );
    glm::vec4 specular( 0.0, 0.0, 0.0, 1.0 );
    glm::vec4 emissive( 0.0, 0.0, 0.0, 1.0 );
    glm::vec4 diffuse( 0.0, 0.0, 0.0, 1.0 );
    GLint shininess_value = 0;

    glColorMaterial( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE );
    glMateriali ( GL_FRONT_AND_BACK, GL_SHININESS, shininess_value );
    glMaterialfv( GL_FRONT_AND_BACK, GL_EMISSION, &emissive.x );
    glMaterialfv( GL_FRONT_AND_BACK, GL_SPECULAR, &specular.x );
    glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT,  &ambient.x );
    glMaterialfv( GL_FRONT_AND_BACK, GL_DIFFUSE,  &diffuse.x );

}
void PainelVisualizacaoBarragemOpenGL::initializeGL(){

    qglClearColor(Qt::white);
    glShadeModel(GL_FLAT);
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_CULL_FACE);


    GLfloat luzAmbiente[4]={0.2,0.2,0.2,1.0};
    GLfloat luzDifusa[4]={0.7,0.7,0.7,1.0};	   // "cor"
    GLfloat luzEspecular[4]={1.0, 1.0, 1.0, 1.0};// "brilho"
    GLfloat posicaoLuz[4]={-700.0, 700.0, 700.0, 1.0};

    // Capacidade de brilho do material
    GLfloat especularidade[4]={1.0,1.0,1.0,1.0};
    GLint especMaterial = 60;

    // Especifica que a cor de fundo da janela será preta
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);

    // Habilita o modelo de colorização de Gouraud
    glShadeModel(GL_SMOOTH);

    // Define a refletância do material
    glMaterialfv(GL_FRONT,GL_SPECULAR, especularidade);
    // Define a concentração do brilho
    glMateriali(GL_FRONT,GL_SHININESS,especMaterial);

    // Ativa o uso da luz ambiente
    glLightModelfv(GL_LIGHT_MODEL_AMBIENT, luzAmbiente);

    // Define os parâmetros da luz de número 0
    glLightfv(GL_LIGHT0, GL_AMBIENT, luzAmbiente);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, luzDifusa );
    glLightfv(GL_LIGHT0, GL_SPECULAR, luzEspecular );
    glLightfv(GL_LIGHT0, GL_POSITION, posicaoLuz );

    // Habilita a definição da cor do material a partir da cor corrente
    glEnable(GL_COLOR_MATERIAL);
    //Habilita o uso de iluminação
    glEnable(GL_LIGHTING);
    // Habilita a luz de número 0
    glEnable(GL_LIGHT0);
    // Habilita o depth-buffering
    glEnable(GL_DEPTH_TEST);

}
Example #11
0
void glass(GLUquadricObj *quadObj)
{
    glPushAttrib(GL_COLOR_MATERIAL);
    
    GLfloat spec[] = { 1.0f, 1.0f, 1.0f, 1.0f };
    
    glVer
    
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, spec);
    glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 128);
    glColor4f(1, 0.7, 1, 0.3);
    
    gluDisk(quadObj, 0, rTop, 50, 50);
    glPopAttrib();
}
App::App(int* argc, char** argv) : width(800), height(800), bullet(shadow),
lightpos({ 0, -200, 0, 1} ),lightpos2({ 0, 50, 0, 1 }){
  glutInit(argc, argv);
  glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
  glutInitWindowSize(width, height);
  glutInitWindowPosition(0, 0);
  glutCreateWindow("Program OpenGL");
  glutDisplayFunc(DisplayFrameCallback);
  glutIdleFunc(NextFrameCallback);

  glewInit();
  glutKeyboardFunc(KeyDownCallback);
  glutKeyboardUpFunc(KeyUpCallback);
  glutSpecialFunc(KeySpecialDownCallback);
  glutSpecialUpFunc(KeySpecialUpCallback);
  glutMouseFunc(MouseFuncCallback);
  ResetPointer();
  glutSetCursor(GLUT_CURSOR_NONE);
  glutPassiveMotionFunc(MotionFuncCallback);

  GLfloat ambient[] = { 0.2f, 0.2f, 0.2f, 1.0f };
  GLfloat diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };
  GLfloat specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };

  glMaterialfv(GL_LIGHT0, GL_AMBIENT, ambient);
  glMaterialfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
  glMaterialfv(GL_LIGHT0, GL_SPECULAR, specular);
  glMateriali(GL_FRONT, GL_SHININESS, 50);

  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  glEnable(GL_BLEND);

  glEnable(GL_NORMALIZE);
  glEnable(GL_LIGHTING);
  glEnable(GL_LIGHT0);
  glEnable(GL_LIGHT1);
  glShadeModel(GL_SMOOTH);
  glEnable(GL_TEXTURE_2D);
  glEnable(GL_DEPTH_TEST);
  glEnable(GL_COLOR_MATERIAL);
  bullet.AddLevel();

  LoadTexture(0, "bricks.bmp");
  LoadTexture(1, "ntex.bmp");
}
void BulletOpenGLApplication::Initialize() {
	// this function is called inside glutmain() after
	// creating the window, but before handing control
	// to FreeGLUT

	// create some floats for our ambient, diffuse, specular and position
	GLfloat ambient[] = { 0.2f, 0.2f, 0.2f, 1.0f }; // dark grey
	GLfloat diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f }; // white
	GLfloat specular[] = { 1.0f, 1.0f, 1.0f, 1.0f }; // white
	GLfloat position[] = { 5.0f, 10.0f, 1.0f, 0.0f };
	
	// set the ambient, diffuse, specular and position for LIGHT0
	glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
	glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
	glLightfv(GL_LIGHT0, GL_SPECULAR, specular);
	glLightfv(GL_LIGHT0, GL_POSITION, position);

	glEnable(GL_LIGHTING); // enables lighting
	glEnable(GL_LIGHT0); // enables the 0th light
	glEnable(GL_COLOR_MATERIAL); // colors materials when lighting is enabled
		
	// enable specular lighting via materials
	glMaterialfv(GL_FRONT, GL_SPECULAR, specular);
	glMateriali(GL_FRONT, GL_SHININESS, 15);
	
	// enable smooth shading
	glShadeModel(GL_SMOOTH);
	
	// enable depth testing to be 'less than'
	glEnable(GL_DEPTH_TEST);
	glDepthFunc(GL_LESS);

	// set the backbuffer clearing color to a lightish blue
	glClearColor(0.6, 0.65, 0.85, 0);

	// initialize the physics system
	InitializePhysics();

	// create the debug drawer
	m_pDebugDrawer = new DebugDrawer();
	// set the initial debug level to 0
	m_pDebugDrawer->setDebugMode(0);
	// add the debug drawer to the world
	m_pWorld->setDebugDrawer(m_pDebugDrawer);
}
void CocktailCupVBO::draw(){
    
	float spec[]={0.33333,0.33333,0.33333,1.0} ;

				glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE, cinzentoAlphaCopo);				
				glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,spec);
				glMateriali(GL_FRONT_AND_BACK,GL_SHININESS,128);

				glEnable(GL_BLEND);
				glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

	glPushMatrix();
    glTranslatef(0, (alt/2)-(2*rad/3), 0);
    glRotatef(180, 1, 0, 0);

	glBindBuffer(GL_ARRAY_BUFFER,buffers[0]);
	glVertexPointer(3,GL_FLOAT,0,0);
	glBindBuffer(GL_ARRAY_BUFFER,buffers[1]);
	glNormalPointer(GL_FLOAT,0,0);
	glBindBuffer(GL_ARRAY_BUFFER,buffers[2]);
	glTexCoordPointer(2,GL_FLOAT,0,0);

	glBindTexture(GL_TEXTURE_2D, id_textura) ;
	glDrawElements(GL_TRIANGLES, nrIndex ,GL_UNSIGNED_INT, aIndex);		
	/* Unbind da textura */
	glBindTexture(GL_TEXTURE_2D, 0) ;
	glPopMatrix();


    glPushMatrix();
    glTranslatef(0,alt/2/4, 0);
	cylinder->draw();
    glPopMatrix();
    
    glPushMatrix();
    cone->draw();
    glPopMatrix();

	glPushMatrix();
	cyl->draw();
    glPopMatrix();
    
	glDisable(GL_BLEND);	
	reiniciaMaterial();
}
Example #15
0
File: cgii.c Project: chamun/CGII
void
illumination(void)
{
    /* Iluminação */
    GLfloat ambient    [4] = {0.2, 0.2, 0.2, 1.0};
    GLfloat diffuse    [4] = {0.7, 0.7, 0.7, 1.0};
    GLfloat specular   [4] = {0.8, 0.8, 0.8, 1.0};
    GLfloat position   [4] = {  0,   0,  -1, 1.0};
    GLfloat specularity[4] = {1.0, 1.0, 1.0, 1.0};

    glMaterialfv(GL_FRONT, GL_SPECULAR, specularity);
    glMateriali(GL_FRONT, GL_SHININESS, 60);

    glLightfv(GL_LIGHT0,  GL_AMBIENT,  ambient);
    glLightfv(GL_LIGHT0,  GL_DIFFUSE,  diffuse);
    glLightfv(GL_LIGHT0, GL_SPECULAR, specular);
    glLightfv(GL_LIGHT0, GL_POSITION, position);
}
Example #16
0
void GarrafaWhisky:: desenhar(){
	static float cor[]={0.4, 0.25, 0.09};
	glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,cor);
	glMaterialfv(GL_FRONT,GL_SPECULAR,white);
	glMateriali(GL_FRONT,GL_SHININESS,82);
		
	glPushMatrix();
	glTranslatef(0,altura*0.5,0);
	glPushMatrix();
	glScalef(comprimento,altura,largura);
	cubo->desenhar();
	glPopMatrix();
	glPushMatrix();
	glTranslatef(0,altura*0.5+0.15*tamanho,0);
	c1->desenhar();
	glPopMatrix();
	glPopMatrix();
}
Example #17
0
void Init()
{
    glClearColor(0,0,0,0);
	glEnable(GL_DEPTH_TEST);
	glEnable(GL_COLOR_MATERIAL);
	glShadeModel(GL_SMOOTH);
	glEnable(GL_LIGHTING);
	glEnable(GL_LIGHT0);
	glEnable(GL_LIGHT1);
	glDepthFunc(GL_LEQUAL);
	glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
	glEnable(GL_BLEND);
	//glEnable(GL_CULL_FACE);

	
	glEnable(GL_COLOR_MATERIAL);
	glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
	glMaterialfv(GL_FRONT, GL_SPECULAR,specref);
    glMateriali(GL_FRONT, GL_SHININESS,50);
	
	/*GLfloat fLowLight[] ={0,0,0,0};
	glEnable(GL_FOG); glFogfv(GL_FOG_COLOR, fLowLight); 
	glFogf(GL_FOG_START, 5.0f); 
	glFogf(GL_FOG_END, 50.0f); 
	glFogi(GL_FOG_MODE, GL_LINEAR);*/
	
	
	sky.SkyboxTextures((char*)"Textures/Skybox/sp3");
	sky.SetColor(0.8f, 0.8f, 0.8f, 1.0);
	
	Textures.CreateTextures(4);
	Textures.AddTexture((char*)"Textures/Stone.tga");
	Textures.AddTexture((char*)"Textures/Brick.tga");
	Textures.AddTexture((char*)"Textures/chrome.tga");
	Textures.AddTexture((char*)"Textures/gold.tga");
	
	model.LoadFile((char*)"Models/Watchdog/watchdog2.obj");
	p.LoadFile((char*)"Models/plane.obj");
	Rocks.LoadFile((char*)"Models/Objs/rocks.obj");
	Shad.CreateShader();
	Shad.LoadShader((char*)"Shaders/Texture2.vs",GL_VERTEX_SHADER);
	Shad.LoadShader((char*)"Shaders/Texture2.fs",GL_FRAGMENT_SHADER);
	Shad.CompileShader();
}
void light() {
    //glTexEnvi(GL_MODULATE);
    if (lighting) glEnable(GL_LIGHTING);

    // Create a "sunlight"
    GLfloat sun[] = {1.0, 1.0, 1.0, 1.0f};
    glLightfv(GL_LIGHT0, GL_DIFFUSE, sun);
    glLightfv(GL_LIGHT0, GL_SPECULAR, sun);
    GLfloat lightPosition[] = {0.5f, 0.75f, 0.75f, 0.0f};
    glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);


    // Material Settings
    GLfloat allLight[] = {1.0f, 1.0f, 1.0f, 1.0f};
    // turn on full specular and color by default in material
    glMateriali(GL_FRONT, GL_SHININESS, 64);
    glMaterialfv(GL_FRONT, GL_SPECULAR, allLight);
    glMaterialfv(GL_FRONT, GL_DIFFUSE, allLight);
    glMaterialfv(GL_FRONT, GL_AMBIENT, allLight);
    glEnable(GL_LIGHT0);

    if(fog) {
        // Enable and Set Fog
        GLfloat fogColor[] = { FOG_COLOR, 1.0 };

        glEnable(GL_FOG);
        glFogi(GL_FOG_MODE, GL_LINEAR);

        glFogf(GL_FOG_START, fog_start);
        glFogf(GL_FOG_END, fog_end);
        glFogf(GL_FOG_DENSITY, fog_thickness);
        glFogfv(GL_FOG_COLOR, fogColor);
    } else {
        // No Fog
        glDisable(GL_FOG);
    }







}
Example #19
0
ENTRYPOINT void draw_bang (ModeInfo *mi)
{
	Display *dpy = MI_DISPLAY(mi);
	Window window = MI_WINDOW(mi);
	GLfloat camx, camz;
	float r = 10.0;
	int LightPos[4] = {-10,0,0,1};
	int MatSpec [4] = {1,1,1,1};

	glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bang->glx_context));

	glMaterialiv(GL_FRONT_AND_BACK,GL_SPECULAR,MatSpec);
	glMateriali(GL_FRONT_AND_BACK,GL_SHININESS,100);

	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	/* set camera position */

	camx = r*sin(bang->alpha) + 0.5;
	camz = r*cos(bang->alpha) + 0.5;
	bang->alpha += 0.01;
	if (bang->alpha == 360)
	{
		bang->alpha = 0;
	}
	
	gluLookAt(camx, 0.0, camz, 0.0, 0.0, 0.0, 0, 1, 0);
	glLightiv(GL_LIGHT0, GL_POSITION, LightPos);
/*	gluLookAt(10, 0.0, 10, 0, 0, 0, 0, 1, 0);*/
	
	glPushMatrix ();

	drawsphere(0.1, 0.0, 0.0, 0.0);
	drawsphere(0.5, 3.0, 0.0, 0.0);
	drawsphere(1.0, 6.0, 0.0, 0.0);

	glPopMatrix ();

	if (MI_IS_FPS(mi)) do_fps (mi);

	glXSwapBuffers(dpy, window);
}
Example #20
0
void init(void){
	GLfloat luz_ambiente[] = {0.45, 0.45, 0.45, 1.0};
	GLfloat luz0_especular[] = {1.0, 1.0, 1.0, 1.0};
	GLfloat luz0_difusa[] = {0.35, 0.35, 0.35, 1.0};
	GLfloat luz0_posicion[] = {200.0, 200.0, 200.0, 1.0};
	GLfloat luz0_direccion[] = {0.0, 0.0, 0.0};
	GLUquadricObj *Qflat;

	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
	glutInitWindowSize(winWidth, winHeight);
	glutInitWindowPosition(100, 100);
	glutCreateWindow("Objeto 3D compuesto");
	glColor3f(1.0, 1.0, 1.0);

	Qflat = gluNewQuadric();
	gluQuadricDrawStyle(Qflat, GLU_FILL);
	gluQuadricNormals(Qflat, GLU_SMOOTH);
	gluQuadricOrientation(Qflat, GLU_INSIDE);
	gluQuadricTexture(Qflat, GL_TRUE);

	ratio=(GLfloat)winWidth/(GLfloat)winHeight;
	Vx=0.0;		Vz=235.0;		Vy=30.0;		Vtheta=3*PI/2.0;

	//luz y sombreado
	glShadeModel(GL_SMOOTH);
	glEnable(GL_DEPTH_TEST);
	glEnable(GL_CULL_FACE);
	glEnable(GL_LIGHTING);
	glLightModelfv(GL_LIGHT_MODEL_AMBIENT,luz_ambiente);
	glEnable(GL_COLOR_MATERIAL);
	glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
	glMateriali(GL_FRONT, GL_SHININESS, 60);

	glLightfv(GL_LIGHT0,GL_DIFFUSE,luz0_difusa);
	glLightfv(GL_LIGHT0,GL_SPECULAR,luz0_especular);
	glLightfv(GL_LIGHT0,GL_POSITION,luz0_posicion);
	glLightfv(GL_LIGHT0,GL_SPOT_DIRECTION,luz0_direccion);
	glEnable(GL_LIGHT0);

	//lista room
	Lroom=glGenLists(1);	glNewList(Lroom,GL_COMPILE);	room(LADO);		glEndList();
	//lista casa
	Lcasa=glGenLists(1);	glNewList(Lcasa,GL_COMPILE);	casa(200);		glEndList();
}
Example #21
0
void init() {
	
	glEnable(GL_DEPTH_TEST);
	glEnable(GL_LIGHTING);
	glEnable(GL_LIGHT0);

	glLightModelfv(GL_LIGHT_MODEL_AMBIENT,global_ambient);
	glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE);

	glLightfv(GL_LIGHT0,GL_AMBIENT, dir_ambient);
	glLightfv(GL_LIGHT0,GL_DIFFUSE, dir_diffuse);
	glLightfv(GL_LIGHT0,GL_SPECULAR, dir_specular);

	glLightfv(GL_LIGHT0,GL_POSITION,dir_position);

	glEnable(GL_COLOR_MATERIAL);
	glColorMaterial(GL_FRONT,GL_AMBIENT_AND_DIFFUSE);
	glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);
	glMateriali(GL_FRONT,GL_SHININESS,30); 

	glEnable(GL_NORMALIZE);

	glNewList(HILL,GL_COMPILE);
		for(float x = -50; x < 50; x+=0.5f) {
			for(float z = -50; z < 50; z+=0.5f) {
				glColor3f(0,1,0);
				glBegin(GL_QUADS);
					glVertex3f(x,-alfa*(pow(x,2)+pow(z,2)),z);
					glVertex3f(x,-alfa*(pow(x,2)+pow(z+0.5,2)),z+0.5);
					glVertex3f(x+0.5,-alfa*(pow(x+0.5,2)+pow(z+0.5,2)),z+0.5);
					glVertex3f(x+0.5,-alfa*(pow(x+0.5,2)+pow(z,2)),z);
				glEnd();
			}
		}
	glEndList();

	glNewList(CHAIN,GL_COMPILE);
		glPushMatrix();
			glColor3f(0.5,0.5,0.5);
			glutSolidTorus(0.5,2,60,60);
		glPopMatrix();
	glEndList();
}
Example #22
0
/*
=============
drawFace
=============

Draws a textured face.  Take note that the texture vertex must come BEFORE the 
vertex that it will be assigned too. 

Texture Coordinate Orrientation

(0,1)-------------(1,1)
  |                 |
  |     Image       |
  |                 |
  |                 |
(0,0)-------------(1,0)

*/
void init (void)
{
    glClearColor (0.0, 0.0, 0.0, 0.0);

    glShadeModel (GL_SMOOTH);
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHT1);
    glEnable(GL_COLOR_MATERIAL);
    GLfloat  lightPos[] = { 5.0f, 5.0f, 0.0f, 1.0f };
    GLfloat  specular[] = { 1.0f, 1.0f, 1.0f, 1.0f};
    GLfloat  specref[] =  { 1.0f, 1.0f, 1.0f, 1.0f };
    GLfloat  ambientLight[] = { 0.5f, 0.5f, 0.5f, 1.0f};
    GLfloat  spotDir[] = { 0.0f, 0.0f, -1.0f };

        // Set up and enable light 0
        // Supply a slight ambient light so the objects can be seen
        glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientLight);

        // The light is composed of just diffuse and specular components
        glLightfv(GL_LIGHT0,GL_DIFFUSE,ambientLight);
        glLightfv(GL_LIGHT0,GL_SPECULAR,specular);
        glLightfv(GL_LIGHT0,GL_POSITION,lightPos);

        // Specific spot effects
        // Cut off angle is 60 degrees
        glLightf(GL_LIGHT0,GL_SPOT_CUTOFF,60.0f);

        // Fairly shiny spot
        glLightf(GL_LIGHT0,GL_SPOT_EXPONENT,100.0f);

        // Enable color tracking
        glEnable(GL_COLOR_MATERIAL);

        // Set Material properties to follow glColor values
        glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);

        // All materials hereafter have full specular reflectivity
        // with a high shine
        glMaterialfv(GL_FRONT, GL_SPECULAR,specref);
        glMateriali(GL_FRONT, GL_SHININESS,128);
}
Example #23
0
BOOL Initialize (GL_Window* window, Keys* keys)					// Any GL Init Code & User Initialiazation Goes Here
{
	g_window	= window;
	g_keys		= keys;

	// Start Of User Initialization
	angle		= 0.0f;											// Set Starting Angle To Zero

	BlurTexture = EmptyTexture();								// Create Our Empty Texture

	glViewport(0 , 0,window->init.width ,window->init.height);	// Set Up A Viewport
	glMatrixMode(GL_PROJECTION);								// Select The Projection Matrix
	glLoadIdentity();											// Reset The Projection Matrix
	gluPerspective(50, (float)window->init.width/(float)window->init.height, 5,  2000); // Set Our Perspective
	glMatrixMode(GL_MODELVIEW);									// Select The Modelview Matrix
	glLoadIdentity();											// Reset The Modelview Matrix

	glEnable(GL_DEPTH_TEST);									// Enable Depth Testing

	GLfloat global_ambient[4]={0.2f, 0.2f,  0.2f, 1.0f};		// Set Ambient Lighting To Fairly Dark Light (No Color)
	GLfloat light0pos[4]=     {0.0f, 5.0f, 10.0f, 1.0f};		// Set The Light Position
	GLfloat light0ambient[4]= {0.2f, 0.2f,  0.2f, 1.0f};		// More Ambient Light
	GLfloat light0diffuse[4]= {0.3f, 0.3f,  0.3f, 1.0f};		// Set The Diffuse Light A Bit Brighter
	GLfloat light0specular[4]={0.8f, 0.8f,  0.8f, 1.0f};		// Fairly Bright Specular Lighting

	GLfloat lmodel_ambient[]= {0.2f,0.2f,0.2f,1.0f};			// And More Ambient Light
	glLightModelfv(GL_LIGHT_MODEL_AMBIENT,lmodel_ambient);		// Set The Ambient Light Model

	glLightModelfv(GL_LIGHT_MODEL_AMBIENT, global_ambient);		// Set The Global Ambient Light Model
	glLightfv(GL_LIGHT0, GL_POSITION, light0pos);				// Set The Lights Position
	glLightfv(GL_LIGHT0, GL_AMBIENT, light0ambient);			// Set The Ambient Light
	glLightfv(GL_LIGHT0, GL_DIFFUSE, light0diffuse);			// Set The Diffuse Light
	glLightfv(GL_LIGHT0, GL_SPECULAR, light0specular);			// Set Up Specular Lighting
	glEnable(GL_LIGHTING);										// Enable Lighting
	glEnable(GL_LIGHT0);										// Enable Light0

	glShadeModel(GL_SMOOTH);									// Select Smooth Shading

	glMateriali(GL_FRONT, GL_SHININESS, 128);
	glClearColor(0.0f, 0.0f, 0.0f, 0.5);						// Set The Clear Color To Black

	return TRUE;												// Return TRUE (Initialization Successful)
}
Example #24
0
/* draw a highly tesselated sphere with a specular highlight */
void
makeHighlight(int shinyness)
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    glPushMatrix(); /* starts as modelview */
    glLoadIdentity();
    glTranslatef(0.f, 0.f, -texdim/2.f);

    glMatrixMode(GL_PROJECTION);
    glPushMatrix();
    glLoadIdentity();
    glOrtho(-texdim/2., texdim/2., -texdim/2., texdim/2., 0., texdim/2.);

    glPushAttrib(GL_LIGHTING_BIT|GL_VIEWPORT_BIT);
    glViewport(0, 0, texdim, texdim);
    glEnable(GL_LIGHTING);

    glLightfv(GL_LIGHT0, GL_DIFFUSE, zero);
    glLightfv(GL_LIGHT0, GL_POSITION, lightpos); /* light direction */

    /* XXX TODO, range check an report errors */
    glMateriali(GL_FRONT, GL_SHININESS, shinyness); /* cosine power */
    glMaterialfv(GL_FRONT, GL_AMBIENT, zero); 
    glMaterialfv(GL_FRONT, GL_DIFFUSE, zero); 
    glMaterialfv(GL_FRONT, GL_SPECULAR, color);
    glDisable(GL_TEXTURE_2D);

    glCallList(1);

    glEnable(GL_TEXTURE_2D);
    glPopAttrib();
    glPopMatrix();
    glMatrixMode(GL_MODELVIEW);
    glPopMatrix();

    glReadPixels(0, 0, texdim, texdim, GL_RGB, GL_FLOAT, lighttex);

    glBindTexture(GL_TEXTURE_2D, HIGHLIGHT_TEX);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, texdim, texdim, 0, GL_RGB,
		 GL_FLOAT, lighttex);
}
Example #25
0
//设置光照  
void SetupLights()
{
	GLfloat ambientLight[] = { 0.45f,  0.45f,  0.5f,  1.0f };//环境光  
	GLfloat diffuseLight[] = { 0.55f,  0.55f,  0.55f,  1.0f };//漫反射  
	GLfloat specularLight[] = { 0.6f,  0.6f,  0.6f,  1.0f };//镜面光  
	GLfloat lightPos[] = { 50.0f, 80.0f, 60.0f, 1.0f };//光源位置  

	glEnable(GL_LIGHTING);          //启用光照  
	glLightfv(GL_LIGHT0, GL_AMBIENT, ambientLight);    //设置环境光源  
	glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuseLight);    //设置漫反射光源  
	glLightfv(GL_LIGHT0, GL_SPECULAR, specularLight);   //设置镜面光源  
	glLightfv(GL_LIGHT0, GL_POSITION, lightPos);        //设置灯光位置  
	glEnable(GL_LIGHT0);            //打开第一个灯光  

	glEnable(GL_COLOR_MATERIAL);    //启用材质的颜色跟踪  
	glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);  //指定材料着色的面  
	glMaterialfv(GL_FRONT, GL_SPECULAR, specularLight); //指定材料对镜面光的反应  
	glMateriali(GL_FRONT, GL_SHININESS, 100);           //指定反射系数  
}
Example #26
0
void tree()
{

    treelist=glGenLists(1);
    glNewList(treelist,GL_COMPILE);

    float mat_ambient[] = { 0.5, 0.2, 0.0, 1.0 };
    float mat_diffuse[] = { 0, 0.8, 0.8, 1.0 };
    float mat_specular[] = { 0, 0, 0, 1.0 };
    glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
    glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
    glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);

    glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
    glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 50);
    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);

    qobj = gluNewQuadric();
    glEnable(GL_TEXTURE_GEN_S);
    glEnable(GL_TEXTURE_GEN_T);
    glEnable(GL_TEXTURE_2D);

    glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
    glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );

    glBindTexture(GL_TEXTURE_2D, texture[12]);
    glPushMatrix();
    glTranslatef(0, 0, 0);
    glRotatef(-90, 1, 0, 0);
    gluCylinder(qobj,3,1,20,20,10);

    glBindTexture(GL_TEXTURE_2D, texture[11]);
    glRotatef(90, 1, 0, 0);
    glTranslatef(0, 20, 0);
    gluSphere(qobj, 7, 6, 6);
    glPopMatrix();
    glDisable(GL_TEXTURE_GEN_S);
    glDisable(GL_TEXTURE_GEN_T);

    glDisable(GL_TEXTURE_2D);

    glEndList();
}
Example #27
0
// This function does any needed initialization on the rendering
// context. 
void SetupRC()
    {
    glEnable(GL_DEPTH_TEST);	// Hidden surface removal
    glFrontFace(GL_CCW);		// Counter clock-wise polygons face out
    glEnable(GL_CULL_FACE);		// Do not calculate inside of jet

    {
        // Enable lighting
        glEnable(GL_LIGHTING);

        // Light values and coordinates
        // GLfloat  ambientLight[] = { 0.3f, 0.3f, 0.3f, 1.0f };
        // GLfloat  diffuseLight[] = { 0.7f, 0.7f, 0.7f, 1.0f };
        GLfloat  specular[] = { 1.0f, 0.0f, 0.0f, 1.0f };

        // Setup and enable light 0
        // glLightfv(GL_LIGHT0,GL_AMBIENT,ambientLight);
        // glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuseLight);
        glLightfv(GL_LIGHT0,GL_SPECULAR, specular);
        glEnable(GL_LIGHT0);
    }

    {
        // Enable color tracking
        glEnable(GL_COLOR_MATERIAL);

        // Set Material properties to follow glColor values
        glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);

        GLfloat  specref[] = { 1.0f, 0.0f, 0.0f, 1.0f };
        // All materials hereafter have full specular reflectivity
        // with a high shine
        glMaterialfv(GL_FRONT, GL_SPECULAR, specref);
        glMateriali(GL_FRONT, GL_SHININESS, 128);
    }
    
    glEnable(GL_NORMALIZE);

    // Light blue background
    // glClearColor(0.0f, 0.0f, 1.0f, 1.0f );
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f );
    }
Example #28
0
extern "C" void Draw (void)												// Draw The Scene
{
  static double ticks;
  static double lastticks;

  glEnable(GL_DEPTH_TEST);									// Enable Depth Testing

  GLfloat global_ambient[4]={0.2f, 0.2f,  0.2f, 1.0f};		// Set Ambient Lighting To Fairly Dark Light (No Color)
  GLfloat light0pos[4]=     {0.0f, 5.0f, 10.0f, 1.0f};		// Set The Light Position
  GLfloat light0ambient[4]= {0.2f, 0.2f,  0.2f, 1.0f};		// More Ambient Light
  GLfloat light0diffuse[4]= {0.3f, 0.3f,  0.3f, 1.0f};		// Set The Diffuse Light A Bit Brighter
  GLfloat light0specular[4]={0.8f, 0.8f,  0.8f, 1.0f};		// Fairly Bright Specular Lighting

  GLfloat lmodel_ambient[]= {0.2f,0.2f,0.2f,1.0f};			// And More Ambient Light
  glLightModelfv(GL_LIGHT_MODEL_AMBIENT,lmodel_ambient);		// Set The Ambient Light Model

  glLightModelfv(GL_LIGHT_MODEL_AMBIENT, global_ambient);		// Set The Global Ambient Light Model
  glLightfv(GL_LIGHT0, GL_POSITION, light0pos);				// Set The Lights Position
  glLightfv(GL_LIGHT0, GL_AMBIENT, light0ambient);			// Set The Ambient Light
  glLightfv(GL_LIGHT0, GL_DIFFUSE, light0diffuse);			// Set The Diffuse Light
  glLightfv(GL_LIGHT0, GL_SPECULAR, light0specular);			// Set Up Specular Lighting
  glEnable(GL_LIGHTING);										// Enable Lighting
  glEnable(GL_LIGHT0);										// Enable Light0

  glShadeModel(GL_SMOOTH);									// Select Smooth Shading

  glMateriali(GL_FRONT, GL_SHININESS, 128);
  glClearColor(0.0f, 0.0f, 0.0f, 0.5);						// Set The Clear Color To Black


  ticks=SDL_GetTicks();
  if(Update (ticks - lastticks)) 
    return;
  lastticks = ticks;

  glClearColor(0.0f, 0.0f, 0.0f, 0.5);						// Set The Clear Color To Black
  glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);		// Clear Screen And Depth Buffer
  glLoadIdentity();											// Reset The View
  RenderToTexture();											// Render To A Texture
  ProcessHelix();												// Draw Our Helix
  DrawBlur(25,0.02f);											// Draw The Blur Effect
}
Example #29
0
void guangzhao() 
{ 
	glShadeModel(GL_SMOOTH);
	glEnable(GL_DEPTH_TEST);
	glEnable(GL_LIGHTING);
	float huanjin[]={0.3,0.3,0.3,1};
	float sanshe[]={0.7,0.7,0.7,1};
	float weizhi[]={1,1,1,0};
	float jinmian[]={1,1,1,1};
	float fanshelv[]={1,1,1,1};
	glLightfv(GL_LIGHT0,GL_POSITION,weizhi);
	glLightfv(GL_LIGHT0,GL_AMBIENT,huanjin);
	glLightfv(GL_LIGHT0,GL_DIFFUSE,sanshe);
	glLightfv(GL_LIGHT0,GL_SPECULAR,jinmian);
	glEnable(GL_LIGHT0);
	glEnable(GL_COLOR_MATERIAL);
	glColorMaterial(GL_FRONT,GL_AMBIENT_AND_DIFFUSE);
	glMaterialfv(GL_FRONT,GL_SPECULAR,fanshelv);
	glMateriali(GL_FRONT,GL_SHININESS,120);
}
Example #30
0
void PCViewerWidget::initializeGL()
{
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);

    glShadeModel(GL_FLAT);
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_CULL_FACE);

    glClearDepth(1.0);
    glDepthFunc(GL_LESS);
    glShadeModel(GL_SMOOTH);

    // line anti-aliasing
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA,  GL_ONE_MINUS_SRC_ALPHA);
    glEnable(GL_LINE_SMOOTH);

    // light values and coordinates
    glFrontFace(GL_CCW);
    glEnable(GL_CULL_FACE);

    // Enable lighting
    //    glEnable(GL_LIGHTING);
    glLightModelfv(GL_LIGHT_MODEL_AMBIENT, whiteLight);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, sourceLight);
    glLightfv(GL_LIGHT0, GL_POSITION, lightPos);
    glLightfv(GL_LIGHT0, GL_SPECULAR, specular);
    glEnable(GL_LIGHT0);

    // Enable color tracking
    glEnable(GL_COLOR_MATERIAL);

    // Set Material properties to follow glColor values
    glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);

    // Set Material shine with specular light
    glMaterialfv(GL_FRONT, GL_SPECULAR, specular);
    glMateriali(GL_FRONT, GL_SHININESS, 1);

    resizeGL(1280, 480);
}