} }
//一维图像
for(i = 0; i < 64; i++) }
/* Initialize material property, light source, lighting model, * and depth buffer. */
void init(void) {
GLfloat mat_specular[] = { 0.9, 0.9, 0.9, 1.0 }; GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
GLfloat ambient[] = { 0.4, 0.4, 0.4, 1.0 };
{ }
image1D[i][0]=(GLubyte)((i<=16)?255:0); image1D[i][1]=(GLubyte)((i>16)?0:255); image1D[i][2]=(GLubyte)0; //image1D[i][3]=(GLubyte)255;
int i=0;
GLfloat lmodel_ambient[] = { 0.5, 0.5, 0.5, 1.0 };
glClearColor (0.9, 0.9, 0.9, 0.0); glShadeModel (GL_SMOOTH); glEnable(GL_DEPTH_TEST);
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, diffuseMaterial); glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); glMaterialf(GL_FRONT, GL_SHININESS, 25.0);
glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); glLightfv(GL_LIGHT0, GL_POSITION, light_position); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0);
glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
glEnable(GL_COLOR_MATERIAL);
MakeParabolicSurface();
ComputeVertexNormal();
MakeImage();
{ //add by cxg
m_leftDown=0; m_rotation=0.0; m_clip = 2;
for(i=0;i<3;i++) { }
m_axis[i]=1.0; m_translate[i]=0.0;
//初始化旋转矩阵 for(i=0;i<16;i++) { }
for(i=0;i<4;i++)
m_rotMatrix[i*4+i]=1; m_rotMatrix[i]=0;
m_transMode=ROTATE;
}
}
flag = 0;
void SetLightPos() {
glLoadIdentity(); glPushMatrix();
GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glEnable(GL_LIGHTING); glPopMatrix();
glEnable(GL_LIGHT0); }
void DrawTextureGraph() {
glGenTextures(2,m_texName);
glBindTexture(GL_TEXTURE_2D,m_texName[0]);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT); //glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP); //glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); //glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); //glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D,0,
GL_RGB, 64,64,0,
//texture type,level //internal format //width,height,border //format,type //棋盘作为纹理图像
GL_RGB,GL_UNSIGNED_BYTE, checkImage);
//一维纹理
glBindTexture(GL_TEXTURE_1D,m_texName[1]);
glTexParameteri(GL_TEXTURE_1D,GL_TEXTURE_WRAP_S,GL_REPEAT);
glTexParameteri(GL_TEXTURE_1D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);