真喜悦之泪吧 关注:15贴子:311
  • 11回复贴,共1
@真喜悦之泪 你上次说生成纹理后可以直接给球贴图,没效果啊


1楼2013-07-04 12:16回复

    。。。
    glBindTexture(GL_TEXTURE_2D, texture[0]);
    glutSolidSphere(6960, 100, 100);
    。。。
    这样


    2楼2013-07-04 12:17
    回复
      AUX_RGBImageRec *LoadBMP(char *Filename)// 载入位图图象
      {
      ifstream fin;fin.open(Filename,ios::in);return auxDIBImageLoad(Filename);// 载入位图并返回指针
      }
      int LoadGLTextures()// 载入位图)并转换成纹理{
      int Status=FALSE;
      AUX_RGBImageRec *TextureImage[1];
      memset(TextureImage,0,sizeof(void *)*1);
      LoadBMP("C:\\new\\sun2.bmp");
      if (TextureImage[0]=LoadBMP("C:\\new\\sun2.bmp"))
      {
      Status=TRUE;// 将 Status 设为 TRUEglGenTextures(1, &texture[0]);
      glBindTexture(GL_TEXTURE_2D, texture[0]);
      glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);
      glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);// 线形滤波
      glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);// 线形滤波
      }
      if (TextureImage[0])
      {
      if (TextureImage[0]->data)
      {
      free(TextureImage[0]->data);
      }
      free(TextureImage[0]);
      }
      return Status;
      }
      int InitGL(GLvoid) {
      if (!LoadGLTextures()) { return FALSE; }
      glEnable(GL_TEXTURE_2D);
      glShadeModel(GL_SMOOTH);
      glClearDepth(1.0f);
      glEnable(GL_DEPTH_TEST);
      glDepthFunc(GL_LEQUAL);
      glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);
      return TRUE; }
      int day=70;
      。。。
      bool mydisplay{
      ...//画图
      }


      3楼2013-07-04 12:21
      收起回复
        int DrawGLScene(GLvoid)// 从这里开始进行所有的绘制
        {
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        gluPerspective(75, 1, 1, 40000); //指定透视角度75,纵横比1:1,近距1,远距40000000 glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        gluLookAt(0, -20000, 20000, 0, 0, 0, 0, 0, 1);
        { GLfloat sun_light_position[] = {0.0f, 0.0f, 0.0f, 1.0f};
        GLfloat sun_light_ambient[] = {0.0f, 0.0f, 0.5f, 1.0f};
        GLfloat sun_light_diffuse[] = {1.0f, 1.0f, 1.0f, 1.0f};
        GLfloat sun_light_specular[] = {1.0f, 1.0f, 1.0f, 1.0f};
        glLightfv(GL_LIGHT0, GL_POSITION, sun_light_position);
        glLightfv(GL_LIGHT0, GL_AMBIENT, sun_light_ambient);
        glLightfv(GL_LIGHT0, GL_DIFFUSE, sun_light_diffuse);
        glLightfv(GL_LIGHT0, GL_SPECULAR, sun_light_specular);
        glEnable(GL_LIGHT0); glEnable(GL_LIGHTING); }//光
        {
        glBindTexture(GL_TEXTURE_2D, texture[0]); glutSolidSphere(6960, 100, 100); }//太阳
        。。。。。
        }


        4楼2013-07-04 12:27
        回复


          5楼2013-07-04 12:29
          回复
            没事了,忘了 glEnable(GL_TEXTURE_GEN_S);....................................
            话说这图丑的一比



            6楼2013-07-04 12:36
            回复


              来自Android客户端7楼2013-07-08 08:00
              收起回复