OpenGL
OpenGL OpenGL (Emitted Light) (Ambient Light) (Diffuse Light) (Specular Light)
1. 2. 3. () 4.
()1.glNormal3fv(n0);glVertex3fv(v0); 2. glLightfv(GL_LIGHT0,GL_POSITION,light_position); glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);GL_POSITION(0,0,1,0),Z. 3.. glLightModelfv(GL_LIGHT_MODEL_AMBIENT,lmodel_ambient); glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER,lmodel_viewer). 4.glEnable(GL_LIGHTING);glEnable(GL_LIGHT0); 5. glMaterialfv(GLenum face, GLenum pname, Type* param)GL_AMBIENT, GL_DIFFUSE, GL_AMBIENT_AND_DIFFUSE, GL_SPECULAR, GL_SHINNESS, GL_EMISSION.
1 void glLight{if}[v]( GLenum light , GLenum pname , TYPE param ) light GL_LIGHT0 GL_LIGHT1 GL_LIGHT2 ... ... pname param
1:glLightfv
glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);//0GL_LIGHT0()glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);//0GL_LIGHT0()
glLightfv(GL_LIGHT0,GL_POSITION,light_position);//()
float lightAmbient[] = { 0.2f, 0.0f, 0.0f, 1.0f }; //4 ,1 float lightDiffuse[] = { 0.5f, 0.0f, 0.0f, 1.0f }; //.float lightSpecular[] = { 1.0f, 1.0f, 1.0f, 1.0f };// //
glLight*glLight*
1GL_AMBIENTGL_DIFFUSEGL_SPECULARR, G, B, AGL_AMBIENTGL_DIFFUSEGL_SPECULAR
2GL_POSITIONX, Y, Z, WWWX/W, Y/W, Z/W
1glTranslate*glRotate*
2 OpenGLGL_LIGHT00GL_LIGHT11OpenGL8GL_LIGHT0GL_LIGHT7
GL_LIGHT0 GL_DIFFUSE GL_SPECULAR ( 1.0 ,1.0 ,1.0 ,1.0 ) GL_DIFFUSE GL_SPECULAR ( 0.0 ,0.0 ,0.0 ,1.0 )
2glLightModel*
glLightModel*() glLightModelfv(GL_LIGHT_MODEL_AMBIENT,Imodel_ambient);glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE,Imodel_twoside);
;;;GL_SPECULAR)
GL_LIGHT_MODEL_AMBIENTGL_LIGHT_MODEL_AMBIENTOpenGL0.20.20.21.0 GL_LIGHT_MODEL_LOCAL_VIEWERGL_TRUEGL_FALSE GL_LIGHT_MODEL_TWO_SIDEGL_TRUEOpenGL GL_LIGHT_MODEL_COLOR_CONTROLGL_SINGLE_COLORGL_SEPARATE_SPECULAR_COLORGL_SPECULARGL_SPECULAR.
3 glEnableglEnable :glEnable(GL_LIGHT0);0glDisable OpenGL
:glEnable( GL_LIGHTING ); // glEnable( GL_LIGHT0 ); //
:glMaterialfv
glMaterialfv(GLenum face, GLenum pname, Type* param).
/**/glMaterialfv(GL_FRONT,GL_DIFFUSE,front_mat_diffuse);glMaterialfv(GL_FRONT,GL_SPECULAR,front_mat_specular);glMaterialfv(GL_FRONT,GL_SHININESS,front_mat_shininess);/**/glMaterialfv(GL_BACK,GL_DIFFUSE,back_mat_diffuse);glMaterialfv(GL_BACK,GL_SPECULAR,back_mat_specular);glMaterialfv(GL_BACK,GL_SHININESS,back_mat_shininess);
glLight*glMaterial*
glMaterial*GL_FRONTGL_BACKGL_FRONT_AND_BACKglLight*glMaterial*
1GL_AMBIENTGL_DIFFUSEGL_SPECULARGL_AMBIENTGL_DIFFUSEGL_SPECULARGL_AMBIENTGL_DIFFUSEGL_AMBIENT_AND_DIFFUSEGL_AMBIENTGL_DIFFUSE
2GL_SHININESS0128
3GL_EMISSIONOpenGL
4GL_COLOR_INDEXESRGBA
OpenGL
OpenGL
glShadeModelglShadeModelopenglGL_SMOOTH,GL_FLATOpenGL GL_SMOOTHGL_FLAT
glDepthFuncglDepthFunc()void glDepthFunc(GLenum func) GL_LESS GL_LEQUAL
glDepthFunc
glMatrixModeglMatrixMode void glMatrixMode(GLenum mode) mode ,: GL_MODELVIEWGL_PROJECTIONGL_TEXTURE. glMatrixMode: GL_MODELVIEW,. GL_PROJECTION,. GL_TEXTURE,. glMatrixMode glLoadIdentity() glLoadIdentity(): glLoadIdentity()glMatrixMode(GL_MODELVIEW)
glColorMaterial glColor*()glColor void glColorMaterial(GLenum face,GLenum mode) face: GL_FRONT GL_BACK GL_FRONT_AND_BACK mode: GL_AMBIENT GL_DIFFUSE GL_AMBIENT_AND_DIFFUSE GL_SPECULAR GL_EMISSION
glColorMaterialglEnable(GL_COLOR_MATERIAL);glColorglColor*Enable
// glColorMaterial(GL_FRONT,GL_AMBIENT); //glEnable(GL_COLOR_MATERIAL); glMaterialfv(GL_FRONT,GL_DIFFUSE,material_diffuse); glMaterialfv(GL_FRONT,GL_SPECULAR,material_specular); glMaterialfv(GL_FRONT,GL_SHININESS,high_shininess); glMaterialfv(GL_FRONT,GL_EMISSION,no_mat);
// glColorMaterial(GL_FRONT,GL_AMBIENT); //glEnable(GL_COLOR_MATERIAL); GLfloat no_mat[]={0.0,0.0,0.0,1.0};GLfloat mat_grey_ambient[]={0.5,0.5,0.5,1.0};GLfloat mat_red_ambient[]={0.0,0.0,1.0,1.0};
GLfloat light_position[]={0.0,3.0,6.0,0.0};//GLfloat material_diffuse[]={0.8,0.2,0.5,1.0};//GLfloat material_specular[]={1.0,1.0,1.0,1.0};//
GLfloat material_diffuse[]={0.0,0.0,0.5,1.0};//
glColorMaterial() glMaterial*()
1
. . . .. .OpenGL.
2OpenGL. R,G,BR,G,B. . .
3OpenGL
(0.0,0.0,0.0,1.0). (1.0,1.0,1.0,1.0). GL_LIGNT0GL_SPECULAR(1.0,1.0,1.0,1.0)(0.0,0.0,0.0,0.0).GL_SPECULARGL_DIFFUSE. . (0.2,0.2,0.2,1.0)0.0GL_FALSE,GL_LIGHT_MODEL_TWO_SIDE0.0GL_FALSE()GL_LIGHT_MODEL_COLOR_CONTROLGL_SINGLE_COLOR. GL_AMBIENT (0.2,0.2,0.2,1.0); GL_DIFFUSE (0.8,0.8,0.8,1.0); GL_SPECULAR (0.0,0.0,0.0,1.0); GL_SHINNESS 0.0; GL_EMISSION (0.0,0.0,0.0,1.0).
gluLookAt():void gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,GLdouble centerx,GLdouble centery,GLdouble centerz,GLdouble upx,GLdouble upy,GLdouble upz); gluLookAt() GL_MODELVIEWgluPerspectiveGL_PROJECTION gluPerspective
()face:GL_FRONTGL_BACKGL_FRONT_AND_BACK, suneyex,eyey,eyezcenterxcenterycenterzupxupyupz
Top Related