Пример #1
0
int main(int argc, char *argv[])
{	
	glutInit(&argc, argv);      	      	      // initialize GLUT
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);   // open an OpenGL context with double buffering, RGB colors, and depth buffering
	glutInitWindowSize(Window::width, Window::height);      // set initial window size
	glutCreateWindow("Procedural Terrain");    	      // open window and set window title
	glutFullScreen();

	glEnable(GL_DEPTH_TEST);            	      // enable depth buffering
	glClear(GL_DEPTH_BUFFER_BIT);       	      // clear depth buffer
	glClearColor(0.0, 0.0, 0.0, 0.0);   	      // set clear color to black
	glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);  // set polygon drawing mode to fill front and back of each polygon
	glDisable(GL_CULL_FACE);     // disable backface culling to render both sides of polygons
	glShadeModel(GL_SMOOTH);             	      // set shading to smooth
	glMatrixMode(GL_PROJECTION); 

	GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
	GLfloat light_diffuse_p[] = { 1.0, 0.0, 0.0, 1.0 };
	GLfloat light_specular_p[] = { 1.0, 0.0, 0.0, 1.0 };
	GLfloat light_diffuse_s[] = { 1.0, 1.0, 1.0, 1.0 };
	GLfloat light_specular_s[] = { 1.0, 1.0, 1.0, 1.0 };
	float position[] = { 0.0, 10.0, 0.0, 0.0 };

	// Generate light source:
	glLightfv(GL_LIGHT0, GL_POSITION, position);
	glEnable(GL_LIGHTING);
	glEnable(GL_LIGHT0);

	// Generate light source
	glEnable(GL_LIGHTING);
	glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE);
  
	// Install callback functions:
	glutDisplayFunc(Window::displayCallback);
	glutReshapeFunc(Window::reshapeCallback);
	glutIdleFunc(Window::idleCallback);

	// To Prevent the cube from turning white when scaled down
	glEnable(GL_NORMALIZE);

	engine.loadTexture();
	glEnable(GL_TEXTURE_2D);                        // Enable Texture Mapping ( NEW )
	engine.initTerrain();

	// Process keyboard input
	glutKeyboardFunc(Window::processNormalKeys);
	glutSpecialFunc(Window::processSpecialKeys);
    
	// Initialize cube matrix:
	engine.getMatrix().identity();
	//glutTimerFunc(50, CGEngine::rotate, 0);
    
	glutMainLoop();
	return 0;
}
Пример #2
0
void GLViewer::setLights()
{
  glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
  float lightColour[] = {1.0f, 0.8f, 1.0f, 1.0f};
  float lightDir[] = {0.0f, 0.0f, 1.0f, 0.0f};
  glLightfv(GL_LIGHT0, GL_DIFFUSE, lightColour);
  glLightfv(GL_LIGHT0, GL_SPECULAR, lightColour);
  glLightfv(GL_LIGHT0, GL_POSITION, lightDir);
  glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER, 1.0f);
  glEnable(GL_LIGHT0);
}
Пример #3
0
void CGFscene::init() {
	glEnable(GL_LIGHTING);

	glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE);
	glLightModelfv(GL_LIGHT_MODEL_AMBIENT, CGFlight::background_ambient);  // define ambient light
	
	// Light
	float light0_pos[4] = {4.0, 6.0, 3.0, 1.0};
	CGFlight* light0 = new CGFlight(GL_LIGHT0, light0_pos);
	light0->enable();
}
Пример #4
0
void CBaseOglControl::BaseInitialize()
{
	parser.Start();
	PIXELFORMATDESCRIPTOR pfd;
	int pf = 0;
	HDC hDC = GetDC(hMy);
	
	pfd.nSize        = sizeof(pfd);
	pfd.nVersion     = 1;
	pfd.dwFlags      = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
	pfd.iPixelType   = PFD_TYPE_RGBA;
	pfd.cColorBits   = 32;
	pf = ChoosePixelFormat(hDC, &pfd);
	if(pf==0)
	{
		pf = 1;
		if(DescribePixelFormat(hDC,pf,sizeof(PIXELFORMATDESCRIPTOR),&pfd)==0)
		return;
	}

	if (SetPixelFormat(hDC, pf, &pfd) == FALSE) return;
    hOGL = wglCreateContext(hDC);
    
	wglMakeCurrent(hDC, hOGL);
	
		quadObj = gluNewQuadric();//Для отрисовки цилиндра, сфер и т.д.

		//все перенести в скрипт
		glEnable(GL_TEXTURE_2D);
		glEnable(GL_LIGHTING);
		glEnable(GL_LIGHT0);
		glEnable(GL_COLOR_MATERIAL);

		//glDisable(GL_CULL_FACE); 
		glEnable(GL_DEPTH_TEST);
		glEnable(GL_ALPHA_TEST);
		
		glEnable(GL_BLEND); 
		glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

		glEnable(GL_ALPHA_TEST);
		glAlphaFunc(GL_GREATER, 0.5f);

		
		glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);

		Initialize();

		glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
		SwapBuffers(wglGetCurrentDC());
		glFlush();
		
	wglMakeCurrent(hDC, 0);
}
Пример #5
0
int main(int argc, char *argv[])
{
    //Math Test Bench
    MathTestBench::runTests();
    
    glutInit(&argc, argv);                                      //Initialize GLUT
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);   //Open an OpenGL context with double buffering, RGB colors, and depth buffering
    glutInitWindowSize(Window::width, Window::height);          //Set initial window size
    glutCreateWindow("UCSD CSE 167 - Project 6 - Global Warming"); //Open window and set window title
    
    glEnable(GL_DEPTH_TEST);                                    //Enable depth buffering
    glClear(GL_DEPTH_BUFFER_BIT);                               //Clear depth buffer
    glClearColor(0.0, 0.0, 0.0, 0.0);                           //Set clear color to black
    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);                  //Set polygon drawing mode to fill front and back of each polygon
    glDisable(GL_CULL_FACE);                                    //Disable backface culling to render both sides of polygons
    glShadeModel(GL_SMOOTH);                                    //Set shading to smooth
    
    glEnable(GL_COLOR_MATERIAL);                                //Enable color materials
    glEnable(GL_LIGHTING);                                      //Enable lighting
	glEnable(GL_NORMALIZE);                                     //Auto normalize surface normals

	glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE);

	glEnable(GL_TEXTURE_2D);
    
    //Register callback functions:
    glutDisplayFunc(Window::displayCallback);
    glutReshapeFunc(Window::reshapeCallback);
    glutIdleFunc(Window::idleCallback);

    //Register the callback for the keyboard
	glutKeyboardFunc(Window::keyCallback);

	//Register the callback for the keyboard function keys
	//glutSpecialFunc(Window::specialFunc);

	//Register the callback for the mouse
	glutMouseFunc(Window::mouseFunc);

	//Register the callback for the mouse motion
	glutMotionFunc(Window::mouseMotion);

    //Initialize lights
    
    //Initialize the Window:
    //The body of this function is a great place to load textures, shaders, etc.
    //and do any operations/calculations/configurations that only need to happen once.
    Window::initialize();
    
    //Start up the render loop!
    glutMainLoop();
    
    return 0;
}
Пример #6
0
void GameScene::setLights()
{
    glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
    float lightDir[]={0.8,1.0,0.5,0.0};
    float lightAmbient[]={0.2,0.2,0.2,1.0};      //环境光
//        float lightDiffuse[]={1.0,1.0,1.0,0.7};      //漫射光
    glLightfv(GL_LIGHT0,GL_POSITION,lightDir);
    glLightfv(GL_LIGHT0,GL_AMBIENT,lightAmbient);
//        glLightfv(GL_LIGHT0,GL_DIFFUSE,lightDiffuse);
    glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER,1.0f);
    glEnable(GL_LIGHT0);
}
Пример #7
0
void init_lighting() {
  //light position
  GLfloat light_pos[4] = {0.0, 0.0, 0.0, 1.0};
  //light color (ambiant, diffuse and specular)
  GLfloat light_amb[4] = {0.3, 0.3, 0.3, 1.0};
  GLfloat light_diff[4] = {0.3, 0.3, 0.3, 1.0};
  GLfloat light_spec[4] = {0.0, 0.0, 0.0, 1.0};
  //turn on light0
  glEnable(GL_LIGHT0);
  glLightfv(GL_LIGHT0, GL_POSITION, light_pos);
  //set up the diffuse, ambient and specular components for the light
  glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diff);
  glLightfv(GL_LIGHT0, GL_AMBIENT, light_amb);
  glLightfv(GL_LIGHT0, GL_SPECULAR, light_spec);

  const GLfloat light_atten = 0.3f;
  //light position
  GLfloat light_pos2[4] = {0.25, 2.0, 0.25, 1.0};
  //light color (ambiant, diffuse and specular)
  GLfloat light_amb2[4] = {0.0, 0.0, 0.0, 1.0};
  GLfloat light_diff2[4] = {0.0, 0.0, 0.4, 1.0};
  GLfloat light_spec2[4] = {0.0, 0.0, 0.8, 1.0};
  //turn on light0
  glEnable(GL_LIGHT1);
  glLightfv(GL_LIGHT1, GL_POSITION, light_pos2);
  //set up the diffuse, ambient and specular components for the light
  glLightfv(GL_LIGHT1, GL_DIFFUSE, light_diff2);
  glLightfv(GL_LIGHT1, GL_AMBIENT, light_amb2);
  glLightfv(GL_LIGHT1, GL_SPECULAR, light_spec2);
  glLightf(GL_LIGHT1, GL_LINEAR_ATTENUATION, light_atten);

  //light position
  GLfloat light_pos3[4] = {12.25, 2.0, 0.25, 1.0};
  //light color (ambiant, diffuse and specular)
  GLfloat light_amb3[4] = {0.0, 0.0, 0.0, 1.0};
  GLfloat light_diff3[4] = {0.4, 0.0, 0.0, 1.0};
  GLfloat light_spec3[4] = {0.8, 0.0, 0.0, 1.0};
  //turn on light0
  glEnable(GL_LIGHT2);
  glLightfv(GL_LIGHT2, GL_POSITION, light_pos3);
  //set up the diffuse, ambient and specular components for the light
  glLightfv(GL_LIGHT2, GL_DIFFUSE, light_diff3);
  glLightfv(GL_LIGHT2, GL_AMBIENT, light_amb3);
  glLightfv(GL_LIGHT2, GL_SPECULAR, light_spec3);
  glLightf(GL_LIGHT2, GL_LINEAR_ATTENUATION, light_atten);


  //specify our lighting model as 1 normal per face
  glShadeModel(SHADING_MODE);
  glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER, 1.0f);

  glEnable(GL_NORMALIZE);
}
Пример #8
0
void gra_init()
{
    GLfloat pos[4] = { 0.0,0.0,1.0,0.0 };

    GLfloat amb[4] = { 0.2,0.2,0.2,1.0 };
    GLfloat spc[4] = { 1.0,1.0,1.0,1.0 };
    GLfloat dif[4] = { 0.8,0.8,0.8,1.0 };

    glPixelStorei( GL_PACK_ALIGNMENT,   1 );
    glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );

    glMatrixMode(GL_PROJECTION);

    glLoadIdentity();
    gluPerspective( 30.0,1.0,1.0,20.0 );
    glMatrixMode( GL_MODELVIEW );
    glLoadIdentity();

    glColorMaterial( GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE );
    glEnable( GL_COLOR_MATERIAL );

    glLightModeli( GL_LIGHT_MODEL_TWO_SIDE,1 );
    glLightModelf( GL_LIGHT_MODEL_LOCAL_VIEWER,1.0 );
    glEnable( GL_LIGHTING );

    glLightfv( GL_LIGHT0, GL_POSITION, pos );
    glLightfv( GL_LIGHT0, GL_DIFFUSE,  dif );
    glLightfv( GL_LIGHT0, GL_SPECULAR, spc );
    glLightfv( GL_LIGHT0, GL_AMBIENT,  amb );

    glEnable( GL_LIGHT0 );

    gluLookAt( 0.0,0.0,5.0,0.0,0.0,0.0,0.0,1.0,0.0 );

    glEnable( GL_NORMALIZE );
    glEnable( GL_DEPTH_TEST );

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

    glCullFace( GL_BACK );
    glDisable( GL_CULL_FACE ); 
    glDepthRange( 0.0,1.0 );
    glDepthMask( GL_TRUE );
    glDepthFunc( GL_LEQUAL );

    // Enable anti-aliasing:
#if 0
    glEnable( GL_BLEND );
    glEnable( GL_LINE_SMOOTH );
    glEnable( GL_POLYGON_SMOOTH );
#endif
}
Пример #9
0
int main(int argc, char *argv[])
{
    //Math Test Bench
    //MathTestBench::runTests();
    
    //GLUT and OpenGL Configuration
    glutInit(&argc, argv);                                      //Initialize GLUT
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);   //Open an OpenGL context with double buffering, RGB colors, and depth buffering
    glutInitWindowSize(Window::width, Window::height);          //Set initial window size
    glutCreateWindow("UCSD CSE 167 - Project 1 - OpenGL Cube"); //Open window and set window title
    
    glEnable(GL_DEPTH_TEST);                                    //Enable depth buffering
    glClear(GL_DEPTH_BUFFER_BIT);                               //Clear depth buffer
    glClearColor(0.0, 0.0, 0.0, 0.0);                           //Set clear color to black
    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);                  //Set polygon drawing mode to fill front and back of each polygon
    glDisable(GL_CULL_FACE);                                    //Disable backface culling to render both sides of polygons
    glShadeModel(GL_SMOOTH);                                    //Set shading to smooth
    
    glEnable(GL_COLOR_MATERIAL);                                //Enable color materials
    glEnable(GL_LIGHTING);                                      //Enable lighting
    glEnable(GL_NORMALIZE);                                     //Auto normalize surface normals
    glEnable(GL_TEXTURE_2D);                                    //Enable 2D textures
    glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE);        //Enable Local Viewer Light Model
    
    //Register callback functions:
    glutDisplayFunc(Window::displayCallback);
    glutReshapeFunc(Window::reshapeCallback);
    glutIdleFunc(Window::idleCallback);
    //Register the callback for the keyboard
    glutKeyboardFunc(Window::keyboardCallback);
    //Register the callback for the keyboard function keys
    //glutSpecialFunc(Window::specialKeys);
    //Register the callback for the mouse
    //Register the callback for the mouse motion
    //Register the callback for the mouse passive motion
    
    //Print Shader Debug Information:
    printf("%s\n%s\n",
           glGetString(GL_RENDERER),  // e.g. Intel HD Graphics 3000 OpenGL Engine
           glGetString(GL_VERSION)    // e.g. 3.2 INTEL-8.0.61
           );
    std::printf("Supported GLSL version is %s.\n", (char *)glGetString(GL_SHADING_LANGUAGE_VERSION));
    
    //Initialize the Window:
    //The body of this function is a great place to load textures, shaders, etc.
    //and do any operations/calculations/configurations that only need to happen once.
    Window::initialize();
    
    //Start up the render loop!
    glutMainLoop();
    
    return 0;
}
Пример #10
0
bool Application::InitOpenGL()
{
#ifdef WIN32
	wglSwapIntervalEXT_Func wglSwapIntervalEXT = (wglSwapIntervalEXT_Func)wglGetProcAddress("wglSwapIntervalEXT");
	if(wglSwapIntervalEXT) wglSwapIntervalEXT(Globals.VP.Vsync);//1 - чтобы включить
	else FASSERT (wglSwapIntervalEXT);
#else
#error Linux is not supported yet
#endif
	LF.Logf("InitOpenGL","Vsync status : %d",Globals.VP.Vsync);
	//===[ Инициализация всякой фигни ]===================================================||
		Cam.Init();
	//===[ Наинициализировались ]=========================================================||
	glClearColor(0.0f, 0.0f, 0.25f, 0.0f);
							// Очистка экрана в черный цвет
	glClearDepth(1.0);		// Разрешить очистку буфера глубины
	glDepthFunc(GL_LESS);	// Тип теста глубины (рисуется всё что ближе)
	glEnable(GL_DEPTH_TEST);// разрешить тест глубины
	glShadeModel(GL_SMOOTH);// разрешить плавное цветовое сглаживание
	ReshapeWindow(Globals.VP.Width,Globals.VP.Height);
	glEnable(GL_TEXTURE_2D);	// Разрешение наложения текстур
	glClearDepth(1.0f);           // Установка буфера глубины
	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Улучшенные вычисления перспективы
	glDisable(GL_POLYGON_SMOOTH);
	glHint(GL_POLYGON_SMOOTH_HINT,GL_NICEST);
	glHint(GL_POINT_SMOOTH_HINT,GL_NICEST);
	glEnable(GL_DITHER);
	//glEnable(GL_CULL_FACE);
	//==== Свет ==========================================================================//
	glEnable(GL_LIGHT1); // Разрешение источника света номер один
	glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient);		// Установка Фонового Света
	glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse);		// Установка Диффузного Света
	glLightfv(GL_LIGHT1, GL_POSITION, LightPosition);	// Позиция света
	glEnable(GL_LIGHTING);
	glLightModelf(GL_LIGHT_MODEL_TWO_SIDE,0.0);
	glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER,GL_TRUE);
	//=== /Свет ==========================================================================//

	return	NO_ERROR;
}
Пример #11
0
void display(void)
{
    GLdouble eqn[4] = {1.0, 0.0, -1.0, 1.0};
    GLfloat two_side_on[] = { GL_TRUE };
    GLfloat two_side_off[] = { GL_FALSE };
    GLfloat mat_diffuse[] = { 0.8, 0.8, 0.8, 1.0 };
    GLfloat back_diffuse[] = { 0.8, 0.2, 0.8, 1.0 };

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix ();
    glClipPlane (GL_CLIP_PLANE0, eqn);	/*  slice objects   */
    glEnable (GL_CLIP_PLANE0); 

    glPushMatrix ();
    glTranslatef (0.0, 2.0, 0.0);
    auxSolidTeapot(1.0);	/*  one-sided lighting	*/
    glPopMatrix ();

	/*  two-sided lighting, but same material	*/
    glLightModelf (GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
    glMaterialfv (GL_FRONT_AND_BACK, GL_DIFFUSE, mat_diffuse);
    glPushMatrix ();
    glTranslatef (0.0, 0.0, 0.0);
    auxSolidTeapot(1.0);
    glPopMatrix ();

	/*  two-sided lighting, two different materials	*/
    glMaterialfv (GL_FRONT, GL_DIFFUSE, mat_diffuse);
    glMaterialfv (GL_BACK, GL_DIFFUSE, back_diffuse);
    glPushMatrix ();
    glTranslatef (0.0, -2.0, 0.0);
    auxSolidTeapot(1.0);
    glPopMatrix ();

    glLightModelf (GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE);
    glDisable (GL_CLIP_PLANE0);
    glPopMatrix ();
    glFlush();
}
Пример #12
0
//***************************************
// Init
//***************************************
int CStaticView::Init() 
{ 
	HWND hWnd = GetSafeHwnd();
	HDC hDC = ::GetDC(hWnd);

	if(SetWindowPixelFormat(hDC)==FALSE)
		return FALSE;
	
	if(CreateViewGLContext(hDC)==FALSE)
		return FALSE;

  glShadeModel(GL_FLAT);
	glEnable(GL_NORMALIZE);

	// Lights properties
  float	ambientProperties[]  = {0.7f, 0.7f, 0.7f, 1.0f};
	float	diffuseProperties[]  = {0.8f, 0.8f, 0.8f, 1.0f};
  float	specularProperties[] = {1.0f, 1.0f, 1.0f, 1.0f};
	
  glLightfv( GL_LIGHT0, GL_AMBIENT, ambientProperties);
  glLightfv( GL_LIGHT0, GL_DIFFUSE, diffuseProperties);
  glLightfv( GL_LIGHT0, GL_SPECULAR, specularProperties);
  glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, 1.0);

	COLORREF color = GetSysColor(COLOR_3DFACE);
	float r = (float)GetRValue(color)/255.0f;
	float g = (float)GetGValue(color)/255.0f;
	float b = (float)GetBValue(color)/255.0f;
	glClearColor(r,g,b,1.0f);
  glClearDepth(1.0f);
	glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);

	// Perspective
	CRect rect;
	GetClientRect(&rect);
	double aspect = (rect.Height() == 0) ? 
		rect.Width() : (double)rect.Width()/(double)rect.Height();
	gluPerspective(45,aspect,0.1,1000.0);

	glPolygonMode(GL_FRONT,GL_LINE);
	glPolygonMode(GL_BACK,GL_LINE);

	// Antialiasing
	glEnable(GL_LINE_SMOOTH);
	glEnable(GL_BLEND);
	glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
	glHint(GL_LINE_SMOOTH_HINT,GL_NICEST);
	glLineWidth(1.1f);

	SetTimer(1,1,NULL);
	return 1;
}
Пример #13
0
void init(void)
{
glClearColor(0.0, 0.0, 0.0, 1.0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_AUTO_NORMAL);
glEnable(GL_NORMALIZE);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHT1);
glLightfv(GL_LIGHT0,GL_DIFFUSE,white); /* 白い光源 */
glLightfv(GL_LIGHT1,GL_DIFFUSE,white);
glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER,GL_TRUE);/* 鏡面反射処理をリアルに */
}
Пример #14
0
void lab2::initGL(void)
{
    std::cout << "Initializete GL" << std::endl;
    xRot = -30; yRot = 0; zRot = 0; 
    xTra = 0; yTra = 0; zTra = 0;
    nSca = 0.2f;
	
    std::cout << "Setup params for cylinder" << std::endl;
    stacks = 25; slices = 25;
    xCenterCylinder = 0; yCenterSphere = 0; zCenterCylinder = 0;
    baseRad = 1.0; topRad = 1.0; cyheight = 3;
    cylinder = gluNewQuadric();

    std::cout << "Setup params for conus" << std::endl;
    xCenterConus = 0; yCenterConus = 0; zCenterConus = 3;
    conusRad = 1.0; coheight = 3;
    conus = gluNewQuadric();

    std::cout << "Setup params for sphere" << std::endl;
    xCenterSphere = 0; yCenterSphere = 0; zCenterSphere = 0;
    spRad = 1.0;
    sphere = gluNewQuadric();
	
    std::cout << "load image from file texture1.bmp" << std::endl;
    image  = loadBMP("texture1.bmp");
    std::cout << "load image from file texture2.bmp" << std::endl;
    img = loadBMP("texture2.bmp");
    std::cout << "load image from file texture3.bmp" << std::endl;
    img1 = loadBMP("texture3.bmp");
    _textureId[0] = loadTexture(image);
    _textureId[1] = loadTexture(img);
    _textureId[2] = loadTexture(img1);

    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHT1);
    glEnable(GL_LIGHT2);
    glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
    glViewport(0,0, rect.w, rect.h);

    glEnable(GL_DEPTH_TEST);
    glEnable(GL_NORMALIZE);
    glEnable(GL_COLOR_MATERIAL);
    glEnable(GL_CULL_FACE);
    glEnable(GL_TEXTURE_2D);
    glEnable(GL_MULTISAMPLE);

    delete image;
    delete img;
    delete img1;
}
Пример #15
0
void grInit(int *argc, char **argv)
{

  glutInit(argc, argv);
  glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH );
  glutInitWindowSize( WIDTH, HEIGHT);
  
  glutCreateWindow( "Rings simulation" );
  
  glEnable(GL_DEPTH_TEST);
  //glEnable(GL_CULL_FACE);
  //glCullFace(GL_BACK);
  glDisable(GL_DITHER);
  glClearColor( 0.0, 0.0, 0.0, 0.0 );
  glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
  glutSwapBuffers();
  glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
  glutSwapBuffers();
  
  glMatrixMode(GL_MODELVIEW);
  glPushMatrix();
  glLoadIdentity();
  GLfloat light_position[] = {15.0, 0.0, -5.0, 1.0};
  
  glLightfv(GL_LIGHT0, GL_POSITION, light_position);
  glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER, 0.0);
  glPopMatrix();
  
  glEnable(GL_LIGHTING);
  glEnable(GL_LIGHT0);
  
  
  glMatrixMode( GL_PROJECTION );
  glLoadIdentity( );
  gluPerspective(60.0, ((float)(WIDTH)) / ((float)(HEIGHT)), 0.1, 100.0);
  gluLookAt(15, 0, -5, 0, 0, -5, 0, 0, 1);
  glMatrixMode( GL_MODELVIEW );

   
  glMaterialfv(GL_FRONT, GL_SPECULAR, sph_specular);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, sph_diffuse);
  glMaterialfv(GL_FRONT, GL_SHININESS, sph_shininess);
  
  glutKeyboardFunc(KeyboardFunc);
  glutDisplayFunc(DisplayFunc);
  glutIdleFunc(DisplayFunc);
  
  glutMainLoop();
  
}
Пример #16
0
bool init() {
	// initialize SDL
	if( SDL_Init(SDL_INIT_VIDEO) < 0 ) return false;
	
	// enable double buffering
	SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
	
	// create indow
	// set SDL_WINDOW_OPENGL to use opengl for drawing
	window = SDL_CreateWindow(WINDOW_CAPTION.c_str(),
							  SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
							  WINDOW_WIDTH, WINDOW_HEIGHT,
							  SDL_WINDOW_OPENGL);
	if (!window) return false;
	
	// create OpenGL context
	context = SDL_GL_CreateContext(window);
	if (!context) return false;
	
	// setup viewport
	glViewport(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);
	glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
	glEnable(GL_DEPTH_TEST);
	
	// setup projection matrix
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluPerspective(45.0, (GLdouble) WINDOW_WIDTH / (GLdouble) WINDOW_HEIGHT, 2.0, 500.0);
	
	// setup light
	static GLfloat position[] = {-10.0f, 10.0f, 10.0f, 1.0f};
	static GLfloat ambient [] = { 1.0f, 1.0f, 1.0f, 1.0f};
	static GLfloat diffuse [] = { 1.0f, 1.0f, 1.0f, 1.0f};
	static GLfloat specular[] = { 0.0f, 0.0f, 0.0f, 0.0f};
	glLightfv(GL_LIGHT0, GL_POSITION, position);
	glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
	glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
	glLightfv(GL_LIGHT0, GL_SPECULAR, specular);
	glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE);
	glEnable(GL_LIGHTING);
	glEnable(GL_LIGHT0);
	
	glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
	glEnable(GL_BLEND);
	
	scene = new ScStart();
	
	return true;
}
Пример #17
0
//++MgOpenGlContext::LightModelDef [nhpqfohm`mjhiunpefmefg,mgopenglshade.c]
//int MgOpenGlContext::LightModelDef(int lightmodel, MgLighting *lgt,
//                                   int mask, AppearanceStackNode *astk)
int MgOpenGlContext::LightModelDef(int lightmodel, MgLighting *lgt,
                                   int mask, MgAppearanceStackNode *node)
{
    GLfloat f[4];

    glNewList(( lightmodel, GL_COMPILE));

    f[3] = 1.0;
    if( mask & MgLighting::F_AMBIENT) {
        f[0] = (float)(lgt->GetAmbient()->GetRed());
        f[1] = (float)(lgt->GetAmbient()->GetGreen());
        f[2] = (float)(lgt->GetAmbient()->GetBlue());
        glLightModelfv((GL_LIGHT_MODEL_AMBIENT, f));
    }

    if( mask & MgLighting::F_LOCALVIEWER) {
        glLightModelf((GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE));
    }

#ifndef TRUE_EMISSION
    /* This causes trouble if the vertex order makes GL consider
     * our polygon to be backfacing -- then GL_LIGHT_MODEL_TWO_SIDE causes it
     * to be mis-shaded from both sides..
     */
    //if((astk->p_mMat.GetValid() & MgMaterial::F_EMISSION) ) {
    //glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
    //}
    if( node->GetAppearance()->GetFrontMaterial()->GetValid()
            & MgMaterial::F_EMISSION ) {
        glLightModelf((GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE));
    }
#endif

    glEndList(());
    return lightmodel;
}
Пример #18
0
int main(int argc, char **argv) {
    float propertiesAmbient [] = {0.50, 0.50, 0.50, 1.00};
    float propertiesDiffuse [] = {0.75, 0.75, 0.75, 1.00};
    float propertiesSpecular[] = {1.00, 1.00, 1.00, 1.00};

    int width = 640.0;
    int height = 480.0;

    glutInit(&argc, argv);
    glutInitWindowPosition(0, 0);
    glutInitWindowSize(width, height);
    glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
    glutCreateWindow("Marching Cubes");
    glutDisplayFunc(drawScene);
    glutIdleFunc(idle);
    glutReshapeFunc(resize);
    glutKeyboardFunc(keyboard);
    glutSpecialFunc(special);

    glClearColor(0.0, 0.0, 0.0, 1.0);
    glClearDepth(1.0);

    glEnable(GL_DEPTH_TEST);
    glEnable(GL_LIGHTING);
    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);

    glLightfv(GL_LIGHT0, GL_AMBIENT, propertiesAmbient);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, propertiesDiffuse);
    glLightfv(GL_LIGHT0, GL_SPECULAR, propertiesSpecular);
    glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, 1.0);

    glEnable(GL_LIGHT0);

    glMaterialfv(GL_BACK,  GL_AMBIENT, ambientGreen);
    glMaterialfv(GL_BACK,  GL_DIFFUSE, diffuseGreen);
    glMaterialfv(GL_FRONT, GL_AMBIENT, ambientBlue);
    glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuseBlue);
    glMaterialfv(GL_FRONT, GL_SPECULAR, specularWhite);
    glMaterialf(GL_FRONT, GL_SHININESS, 25.0);

    resize(width, height);

    glutMainLoop();

    return 0;
}
void main(int argc, char **argv) 
{ 
        GLfloat afPropertiesAmbient [] = {0.50, 0.50, 0.50, 1.00}; 
        GLfloat afPropertiesDiffuse [] = {0.75, 0.75, 0.75, 1.00}; 
        GLfloat afPropertiesSpecular[] = {1.00, 1.00, 1.00, 1.00}; 

        GLsizei iWidth = 640.0; 
        GLsizei iHeight = 480.0; 

        glutInit(&argc, argv);
        glutInitWindowPosition( 0, 0);
        glutInitWindowSize(iWidth, iHeight);
        glutInitDisplayMode( GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE );
        glutCreateWindow( "Marching Cubes" );
        glutDisplayFunc( vDrawScene );
        glutIdleFunc( vIdle );
        glutReshapeFunc( vResize );
        glutKeyboardFunc( vKeyboard );
        glutSpecialFunc( vSpecial );

        glClearColor( 0.0, 0.0, 0.0, 1.0 ); 
        glClearDepth( 1.0 ); 

        glEnable(GL_DEPTH_TEST); 
        glEnable(GL_LIGHTING);
        glPolygonMode(GL_FRONT_AND_BACK, ePolygonMode);

        glLightfv( GL_LIGHT0, GL_AMBIENT,  afPropertiesAmbient); 
        glLightfv( GL_LIGHT0, GL_DIFFUSE,  afPropertiesDiffuse); 
        glLightfv( GL_LIGHT0, GL_SPECULAR, afPropertiesSpecular); 
        glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, 1.0); 

        glEnable( GL_LIGHT0 ); 

        glMaterialfv(GL_BACK,  GL_AMBIENT,   afAmbientGreen); 
        glMaterialfv(GL_BACK,  GL_DIFFUSE,   afDiffuseGreen); 
        glMaterialfv(GL_FRONT, GL_AMBIENT,   afAmbientBlue); 
        glMaterialfv(GL_FRONT, GL_DIFFUSE,   afDiffuseBlue); 
        glMaterialfv(GL_FRONT, GL_SPECULAR,  afSpecularWhite); 
        glMaterialf( GL_FRONT, GL_SHININESS, 25.0); 

        vResize(iWidth, iHeight); 

        vPrintHelp();
        glutMainLoop(); 
}
Пример #20
0
void glLightModeliv(GLenum pname, const GLint *iparams) {
    switch (pname) {
        case GL_LIGHT_MODEL_AMBIENT: {
            GLfloat params[4];
            for (int i = 0; i < 4; i++) {
                params[i] = iparams[i];
            }
            glLightModelfv(pname, params);
            break;
        }
        case GL_LIGHT_MODEL_LOCAL_VIEWER:
        case GL_LIGHT_MODEL_TWO_SIDE: {
            glLightModelf(pname, *iparams);
            break;
        }
    }
}
Пример #21
0
void vwLight::SetDefaultMaterial()
{

	//glEnable(GL_TEXTURE_2D);							// Enable Texture Mapping
	glShadeModel(GL_SMOOTH);							// Enable Smooth Shading
	//glClearColor(0.5f,0.5f,0.5f,1.0f);					// We'll Clear To The Color Of The Fog
	glClearColor(0.0f,0.0f,0.0f,1.0f);
	glClearDepth(1.0f);									// Depth Buffer Setup
	glEnable(GL_DEPTH_TEST);							// Enables Depth Testing
	glDepthFunc(GL_LEQUAL);								// The Type Of Depth Testing To Do
	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);	// Really Nice Perspective Calculations

	// Enable blending
	glEnable(GL_BLEND);
	glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

	{
		// Lights
		GLfloat	ambientProperties[]  = {0.5f, 0.5f, 0.5f, 1.0f};//{0.1f, 0.1f, 0.1f, 1.0f};
		GLfloat	diffuseProperties[]  = {0.5f, 0.5f, 0.5f, 1.0f};
		GLfloat	specularProperties[] = {0.1f, 0.1f, 0.1f, 1.0f};
		
		glLightfv( GL_LIGHT0, GL_AMBIENT, ambientProperties);
		glLightfv( GL_LIGHT0, GL_DIFFUSE, diffuseProperties);
		glLightfv( GL_LIGHT0, GL_SPECULAR, specularProperties);
		glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, 1.0);
		glPolygonMode(GL_FRONT,GL_FILL);
		//glPolygonMode(GL_FRONT,GL_LINE);

		glEnable(GL_LIGHT0);
		glEnable(GL_LIGHTING);
		glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,diffuseProperties);
		glEnable( GL_COLOR_MATERIAL );
	}	

	{
		glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
		glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
		glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
		//glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
		glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);		
		glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
	}

}
Пример #22
0
/*!
 * \internal
 * \brief Applies default polygon mode to OpenGL.
 */
static void m3gApplyDefaultPolygonMode()
{
    /* cull = BACK */
    glCullFace(GL_BACK);
    glEnable(GL_CULL_FACE);

    /* shading = M3G_SHADE_SMOOTH */
    glShadeModel(GL_SMOOTH);

    /*  winding = M3G_WINDING_CCW */
    glFrontFace(GL_CCW);

    /* perspective correction = false */
    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);

    /* lighting = ONE_SIDED */
    glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE);
}
Пример #23
0
void CArMaXCtrl::InitScene()
{
// Lights properties
  //float ambientProperties[]  = {0.1f, 0.1f, 0.1f, 1.0f};
  float diffuseProperties[]  = {1.0f, 1.0f, 1.0f, 1.0f};
  float specularProperties[] = {1.0f, 1.0f, 1.0f, 1.0f};

  //glLightfv( GL_LIGHT0, GL_AMBIENT, ambientProperties);
  glLightfv( GL_LIGHT0, GL_DIFFUSE,diffuseProperties);
  glLightfv( GL_LIGHT0, GL_SPECULAR, specularProperties);
  glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, 1.0);

  COLORREF backF = GetSysColor(COLOR_BTNFACE);

  /*glClearColor(GetRValue(backF)/255.0,
				GetGValue(backF)/255.0,
				GetBValue(backF)/255.0,
				1.0f);#WARNING*/
  glClearColor((GLclampf)(GetRValue(backF)/255.0),
				(GLclampf)(GetGValue(backF)/255.0),
				(GLclampf)(GetBValue(backF)/255.0),
				(GLclampf)1.0f);


  glHint(GL_LINE_SMOOTH_HINT,GL_FASTEST);

  // Texture
  glEnable(GL_TEXTURE_2D);
  glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
  glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);


  // Default : lighting

  glEnable(GL_LIGHTING);
  glEnable(GL_LIGHT0);


  // Default : blending
  glEnable(GL_BLEND);
  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

  glEnable(GL_DEPTH_TEST);
}
Пример #24
0
void GloxLightSource::render() const {
	if( ! this->isEnabled() ) {
		GloxTrace( "GloxLightSource", "Light %d Disabled\n", index );
		return ;
	}

	for( M_lm_map_t::const_iterator itr = lightModelsAttrs.begin();
		/* Set all of the attributes in the map */
		itr != lightModelsAttrs.end() ; ++ itr ) {
		glLightModelf( (*itr).first, (*itr).second );
	}

	float vec[4];
	for( M_lm_map_vec_t::const_iterator itr = lightModelsAttrs_vectors.begin();
		/* Set all of the attributes in the map */
		itr != lightModelsAttrs_vectors.end() ; ++ itr ) {
		(*itr).second.toVector( vec, 4 );
		glLightModelfv( (*itr).first, vec );
	}

	glEnable( m_light );

	this->ambient.toVector( vec, 4 );
	//GloxTrace( "GloxLightSource", "ambient: {%f, %f, %f, %f}\n", vec[0], vec[1], vec[2], vec[3] );
    glLightfv(m_light,GL_AMBIENT, vec);

	this->diffuse.toVector( vec, 4 );
	//GloxTrace( "GloxLightSource", "diffuse: %s\n", this->diffuse.toString().c_str() );
	//GloxTrace( "GloxLightSource", "diffuse: {%f, %f, %f, %f}\n", vec[0], vec[1], vec[2], vec[3] );
    glLightfv(m_light,GL_DIFFUSE ,vec);

	this->specular.toVector( vec, 4 );
	//GloxTrace( "GloxLightSource", "specular: {%f, %f, %f, %f}\n", vec[0], vec[1], vec[2], vec[3] );
    glLightfv(m_light,GL_SPECULAR,vec);


	/* enable this light */
	glEnable( this->m_light );
	this->m_pos.toVector( vec, 4 );

    glLightfv(m_light,GL_POSITION,vec);
}
Пример #25
0
void GLScene::paintGL ()
{
	//set background color
	//glClearColor(m_background[0], m_background[1], m_background[2], m_background[3]);
	
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	
	//NOTE: 
	glMatrixMode(GL_MODELVIEW);		// Drawing perspective
	glLoadIdentity();				// Reset camera position
	
	//Camera Mode Lighting
	glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER, 1.0f);
	
	// Add ambient light
	glLightModelfv(GL_LIGHT_MODEL_AMBIENT, m_ambientColor.c_array());
	
	// Adjust for camera position
	Camera.Render();
	
	//Add light
	const GLfloat lightColor0[] = {0.5f, 0.2f, 0.2f, 1.0f};
	const GLfloat lightPos0[] = {5.0f, 0.0f, -5.0f, 1.0f};
	//GLfloat lightPos0[] = {Camera.Position.x, Camera.Position.y, Camera.Position.z, 1.0f};
	glLightfv(GL_LIGHT0, GL_DIFFUSE, lightColor0);
	glLightfv(GL_LIGHT0, GL_POSITION, lightPos0);
	glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, lightColor0);

	//Add light
	GLfloat lightColor1[] = {0.2f, 0.5f, 0.2f, 1.0f};
	GLfloat lightPos1[] = {10.0f, 10.0f, 5.0f, 1.0f};
	glLightfv(GL_LIGHT1, GL_DIFFUSE, lightColor1);
	glLightfv(GL_LIGHT1, GL_POSITION, lightPos1);
	glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, lightColor1);
	glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, lightColor1);
	glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 20.0f);

	
	// Draw maze
	RenderMaze();
}
Пример #26
0
void grInit(int *argc, char **argv)
{

  glutInit(argc, argv);
  glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH );
  glutInitWindowSize( WIDTH, HEIGHT);
  
  glutCreateWindow( "Bunny simulation" );
  
  glEnable(GL_DEPTH_TEST);
  glEnable(GL_CULL_FACE);
  glCullFace(GL_BACK);
  glDisable(GL_DITHER);
  glClearColor( 0.0, 0.0, 0.0, 0.0 );
  
  glMatrixMode(GL_MODELVIEW);
  glPushMatrix();
  glLoadIdentity();
  GLfloat light_position[] = {2.732*WallDist, 0.0, 0.0, 1.0};
  
  glLightfv(GL_LIGHT0, GL_POSITION, light_position);
  glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER, 0.0);
  glPopMatrix();
  
  glEnable(GL_LIGHTING);
  glEnable(GL_LIGHT0);
  
  
  glMatrixMode( GL_PROJECTION );
  glLoadIdentity( );
  gluPerspective(60.0, ((float)(WIDTH)) / ((float)(HEIGHT)), 0.1, 10000.0);
  gluLookAt(2.732*WallDist, 0, 0, 0, 0, 0, 0, 0, 1);
  glMatrixMode( GL_MODELVIEW );
  
  glutDisplayFunc(DisplayFunc);
  glutIdleFunc(DisplayFunc);
  glutKeyboardFunc(KeyboardFunc);
  
  glutMainLoop();
  
}
Пример #27
0
void GLWidget::initializeGL(){
	glClearColor(0, 0, 0, 1);
	glShadeModel(GL_FLAT);
	glEnable(GL_DEPTH_TEST);
	glEnable(GL_CULL_FACE);


	glLoadIdentity();
	//glOrtho(-50,50,-50,50,-2000,2000);
	gluPerspective(75,1,50,2000);

	glMatrixMode(GL_MODELVIEW);

	//Enabling the shading model
	glEnable(GL_LIGHTING);

	//Enabling normal vector normalization
	glEnable(GL_NORMALIZE);

	//Disabling global ambient light (In this example no ambient light will be present.)
	GLfloat globalAmbient[]={0,0,0};
	glLightModelf(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE);
//	glLightModelfv(GL_LIGHT_MODEL_AMBIENT,globalAmbient);

	//Defining the position of the point light source GL_LIGHT0 at (x,y,z)=(0,0,40)
	GLfloat light0Position[]={-90,-90,40,1};
	glLightfv(GL_LIGHT0,GL_POSITION,light0Position);

	//Defining "diffuse" lighting properties for GL_LIGHT0
	GLfloat light0Diffuse[]={1,1,1};
	glLightfv(GL_LIGHT0,GL_DIFFUSE,light0Diffuse);

	//Defining "specular" lighting properties for GL_LIGHT0
	GLfloat light0Specular[]={1,1,1};
	glLightfv(GL_LIGHT0,GL_SPECULAR,light0Specular);

	glEnable(GL_LIGHT0);

	glPointSize(1.8);
	scale = 1.0;
}
Пример #28
0
void initGL( void )
{
  glEnable( GL_DEPTH_TEST );
  glClearColor( 0,0,1,1 );
  glPointSize( 2.0 );

  static float light0_ambient[] =  {0.1f, 0.1f, 0.1f, 1.0f};
  static float light0_diffuse[] =  {1.0f, 1.0f, 1.0f, 0.0f};
  static float light0_position[] = {0.0f, 0.0f,1000.0f, 0.0f};
  static float light0_specular[] = {0.4f, 0.4f, 0.4f, 1.0f};

  glLightfv( GL_LIGHT0, GL_AMBIENT, light0_ambient );
  glLightfv( GL_LIGHT0, GL_DIFFUSE, light0_diffuse );
  glLightfv( GL_LIGHT0, GL_SPECULAR, light0_specular );
  glLightfv( GL_LIGHT0, GL_POSITION, light0_position );
  glLightModelf( GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE );

  glEnable( GL_LIGHT0 );
  glEnable( GL_LIGHTING );

}
Пример #29
0
void PickScene::init() 
{
	// normal init, no changes needed

	// Enables lighting computations
	glEnable(GL_LIGHTING);

	// Sets up some lighting parameters
	glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE);
	glLightModelfv(GL_LIGHT_MODEL_AMBIENT, CGFlight::background_ambient);  // Define ambient light
	
	// Declares and enables a light
	float light0_pos[4] = {4.0, 6.0, 5.0, 1.0};
	light0 = new CGFlight(GL_LIGHT0, light0_pos);
	light0->enable();

	// Defines a default normal
	glNormal3f(0,0,1);

	obj=new ExampleObject();
	materialAppearance=new CGFappearance();
}
Пример #30
0
//
// InitScene()
// Called when the OpenGL RC has been created. Sets initial state for the OpenGL scene.
//
void CDemoApp::InitScene()
{
OnBnClickedPrSpheres();
 

  // Lights properties
  //float ambientProperties[]  = {0.1f, 0.1f, 0.1f, 1.0f};
  float diffuseProperties[]  = {1.0f, 1.0f, 1.0f, 1.0f};
  float specularProperties[] = {1.0f, 1.0f, 1.0f, 1.0f};

  //glLightfv( GL_LIGHT0, GL_AMBIENT, ambientProperties);
  glLightfv( GL_LIGHT0, GL_DIFFUSE,diffuseProperties);
  glLightfv( GL_LIGHT0, GL_SPECULAR, specularProperties);
  glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, 1.0);

  glClearColor(1.0,1.0,1.0,1.0f);

  glHint(GL_LINE_SMOOTH_HINT,GL_FASTEST);

  // Texture
  glEnable(GL_TEXTURE_2D);
  glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
  glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);


  // Default : lighting

  glEnable(GL_LIGHTING);
  glEnable(GL_LIGHT0);


  // Default : blending
  glEnable(GL_BLEND);
  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

  glEnable(GL_DEPTH_TEST);

  //  glEnable(GL_CULL_FACE);
}