Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 1, 2006, 9:08:19 PM (18 years ago)
Author:
bottac
Message:

Experimental lightmapping. Screenshots: http://people.ee.ethz.ch/~bottac/lightmap_test/

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/bsp_model/src/lib/graphics/importer/bsp_manager.cc

    r7395 r7465  
    8787  this->checkCollision(this->root, &this->cam);   //!< Test Collision Detection
    8888
    89   if ((((int *)(this->bspFile->header))[35] == 0)  || viscluster < 0)  //!< if (sizeof(Visdata) == 0)
     89  if (true /*(((int *)(this->bspFile->header))[35] == 0 )  || viscluster < 0*/)  //!< if (sizeof(Visdata) == 0)
    9090  {
    9191    /** Do Frustum culling and draw 'em all **/
    9292
    93     // Iterate through all Leafs
     93    // Iterate through all Leafspublic final double readLEDouble()
    9494    for(int i = 0; i <  this->bspFile->numLeafs   ; i++ )
    9595    {
     
    103103        if (f >=0 && !this->isAlreadyVisible(f)) {
    104104          this->alreadyVisible[f] = true;
    105           /*    if(ActLeaf->leafIndex == i)
     105          /*    if(ActLeaf->leafIndex == i)public final double readLEDouble()
    106106                {
    107107                        this->alreadyVisible[i] = false;
     
    190190  if(curFace.type == 3) return;
    191191  // if(this->bspFile->Materials[curFace.texture] != NULL)
    192   if(this->lastTex != curFace.texture) {
    193     this->bspFile->Materials[curFace.texture].mat->select();
    194     this->lastTex = curFace.texture;
    195   }
     192  //if(this->lastTex != curFace.texture) {
     193    this->bspFile->Materials[curFace.texture].mat->select0();
     194  //   this->lastTex = curFace.texture;
     195  //}
     196   
     197    if(curFace.lm_index < 0)
     198    {
     199      glActiveTextureARB(GL_TEXTURE1_ARB);
     200      glBindTexture(GL_TEXTURE_2D, this->bspFile->glLightMapTextures[this->bspFile->whiteLightMap]);
     201      glEnable(GL_TEXTURE_2D);
     202    }
     203    else
     204    {
     205    glActiveTextureARB(GL_TEXTURE1_ARB);
     206    glBindTexture(GL_TEXTURE_2D, this->bspFile->glLightMapTextures[curFace.lm_index]);
     207    glEnable(GL_TEXTURE_2D);
     208    }
     209   
     210    glColor4f(3.0,3.0,3.0,0.9);
    196211  glEnableClientState(GL_VERTEX_ARRAY );
    197   glEnableClientState(GL_TEXTURE_COORD_ARRAY );
     212  //glEnableClientState(GL_TEXTURE_COORD_ARRAY );
    198213  glEnableClientState(GL_NORMAL_ARRAY );
    199214  //  glEnableClientState(GL_COLOR_ARRAY);
     
    201216
    202217  glVertexPointer(3, GL_FLOAT, stride, &(curVertex[offset].position[0]));
    203   // glClientActiveTextureARB(GL_TEXTURE0_ARB);
     218 
     219  glClientActiveTextureARB(GL_TEXTURE0_ARB);
    204220  glTexCoordPointer(2, GL_FLOAT, stride, &(curVertex[offset].texcoord[0]));
    205   // glClientActiveTextureARB(GL_TEXTURE1_ARB);
    206   // glTexCoordPointer(2, GL_FLOAT, stride, &(curVertex[offset].texcoord[1]));
    207 
    208 
     221  glEnableClientState(GL_TEXTURE_COORD_ARRAY);
     222 
     223  glClientActiveTextureARB(GL_TEXTURE1_ARB);
     224  glTexCoordPointer(2, GL_FLOAT, stride, &(curVertex[offset].texcoord[1]));
     225  glEnableClientState(GL_TEXTURE_COORD_ARRAY);
     226
     227 
    209228  glNormalPointer( GL_FLOAT, stride, &(curVertex[offset].normal[0]));
    210229  // glColorPointer(4, GL_BYTE, stride, &(curVertex[offset].color[0]));
     
    212231                 GL_UNSIGNED_INT, &(((meshvert *)this->bspFile->meshverts) [curFace.meshvert]));
    213232
    214 
     233  glDisableClientState(GL_TEXTURE0_ARB);
     234  glDisableClientState(GL_TEXTURE1_ARB);
    215235  glDisableClientState(GL_VERTEX_ARRAY );
    216   glDisableClientState(GL_TEXTURE_COORD_ARRAY );
     236  //glDisableClientState(GL_TEXTURE_COORD_ARRAY );
    217237  glDisableClientState(GL_NORMAL_ARRAY );
    218238  // glDisableClientState(GL_COLOR_ARRAY);
     
    247267  //glEnableClientState(GL_COLOR_ARRAY);
    248268  // glEnableClientState(GL_VERTEX_ARRAY );
    249 
     269  glClientActiveTextureARB(GL_TEXTURE0_ARB);
    250270  glVertexPointer(3, GL_FLOAT, stride, &(curVertex[offset].position[0]));
     271  glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    251272  // glClientActiveTextureARB(GL_TEXTURE0_ARB);
     273  glClientActiveTextureARB(GL_TEXTURE1_ARB);
    252274  glTexCoordPointer(2, GL_FLOAT, stride, &(curVertex[offset].texcoord[0]));
     275  glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    253276  // glClientActiveTextureARB(GL_TEXTURE1_ARB);
    254277  // glTexCoordPointer(2, GL_FLOAT, stride, &(curVertex[offset].texcoord[1]));
     
    265288{
    266289  if(this->lastTex != Face->texture) {
    267     this->bspFile->Materials[Face->texture].mat->select();
     290    this->bspFile->Materials[Face->texture].mat->select0();
    268291    this->lastTex = Face->texture;
    269292  }
    270 
     293 
     294 
     295 
     296  if(Face->lm_index < 0)
     297  {
     298    glActiveTextureARB(GL_TEXTURE1_ARB);
     299    glBindTexture(GL_TEXTURE_2D, this->bspFile->glLightMapTextures[this->bspFile->whiteLightMap]);
     300    glEnable(GL_TEXTURE_2D);
     301  }
     302  else
     303  {
     304    glActiveTextureARB(GL_TEXTURE1_ARB);
     305    glBindTexture(GL_TEXTURE_2D, this->bspFile->glLightMapTextures[Face->lm_index]);
     306    glEnable(GL_TEXTURE_2D);
     307}
     308    glColor4f(3.0,3.0,3.0,0.9);
     309 
     310  glEnable( GL_AUTO_NORMAL);
     311  glEnableClientState(GL_VERTEX_ARRAY );
     312  glEnableClientState(GL_TEXTURE_COORD_ARRAY );
    271313  for(int i = 0; i < Face->n_meshverts  ; i++) {
    272     //glFrontFace(GL_CW);
     314    glFrontFace(GL_CW);
    273315    //PRINTF(0)("BSP Manager: Face->size[0]: %i . \n", Face->size[0]);
    274     glEnableClientState(GL_VERTEX_ARRAY );
    275     glEnableClientState(GL_TEXTURE_COORD_ARRAY );
     316 
     317 
    276318    glEnableClientState(GL_NORMAL_ARRAY );
    277319
    278320    glVertexPointer(3, GL_FLOAT,44, &((((BspVertex*)(this->bspFile->patchVertice))[8*8*(Face->meshvert+i)]).position[0]));
     321   
     322   
     323    glClientActiveTextureARB(GL_TEXTURE0_ARB);
    279324    glTexCoordPointer(2, GL_FLOAT, 44, &((((BspVertex*)(this->bspFile->patchVertice))[8*8*(Face->meshvert+i)]).texcoord[0][0]));
     325    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
     326
     327   
     328    glClientActiveTextureARB(GL_TEXTURE1_ARB);
     329    glTexCoordPointer(2, GL_FLOAT, 44, &((((BspVertex*)(this->bspFile->patchVertice))[8*8*(Face->meshvert+i)]).texcoord[1][0]));
     330    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
     331
     332   
    280333    glNormalPointer( GL_FLOAT, 44,&((((BspVertex*)(this->bspFile->patchVertice))[8*8*(Face->meshvert+i)]).normal[0]) );
    281334
     
    291344                     & (     (((GLuint*)  (this->bspFile->patchIndexes))[7*8*2*(Face->meshvert+i)+ row*2*8]  ))  );
    292345    }
    293 
    294     //glFrontFace(GL_CCW);
    295   }
    296 
     346   
     347    glFrontFace(GL_CCW);
     348  }
     349  glDisableClientState(GL_TEXTURE0_ARB);
     350  glDisableClientState(GL_TEXTURE1_ARB);
     351  glDisable(GL_AUTO_NORMAL);
     352  glDisableClientState(GL_VERTEX_ARRAY );
     353  glDisableClientState(GL_TEXTURE_COORD_ARRAY );
     354 
     355  glBegin(GL_QUADS);
     356 
     357  glEnd();
    297358}
    298359
     
    408469  glNormal3f( 1.0f, 0.0f, 0.0f);  glColor4f(0.2,0.2,0.9,.25);
    409470
    410   glTexCoord2f(0.995f, 0.005f); glVertex3f(cam->x+ 1.0f,cam->y -1.0f, cam->z -1.0f);
     471  glTexCoord2f(0.995f, 0.005f); glVertex3f(cam->x+ 1.0f, cam->y -1.0f, cam->z -1.0f);
    411472  glTexCoord2f(0.995f, 0.995f); glVertex3f(cam->x+ 1.0f, cam->y+ 1.0f, cam->z -1.0f);
    412473  glTexCoord2f(0.005f, 0.995f); glVertex3f(cam->x+ 1.0f, cam->y+ 1.0f, cam->z + 1.0f);
Note: See TracChangeset for help on using the changeset viewer.