Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 3, 2006, 2:51:12 PM (18 years ago)
Author:
bottac
Message:
 
File:
1 edited

Legend:

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

    r7510 r7511  
    11/*
    22   orxonox - the future of 3D-vertical-scrollers
    3 
     3 
    44   Copyright (C) 2006 orx
    5 
     5 
    66   This program is free software; you can redistribute it and/or modify
    77   it under the terms of the GNU General Public License as published by
    88   the Free Software Foundation; either version 2, or (at your option)
    99   any later version.
    10 
     10 
    1111   ### File Specific:
    1212   main-programmer: bottac@ee.ethz.ch
     
    3636{}
    3737
     38/**
     39 *  Loads a quake3 level (*.bsp)
     40 * @param name the Name of the *.bsp file
     41 */
    3842int BspFile::read(char* name)
    3943{
     
    222226      PRINTF(4)("BSP FILE: Texture 0: %s. \n", &this->textures[8+ 72*i]);
    223227    this->load_textures();
    224 
     228   
    225229    // Load the lightMaps
    226230    this->glLightMapTextures = new GLuint[this->numLightMaps];
    227231    for(int i = 0; i < this->numLightMaps; i++)
    228232      this->glLightMapTextures[i] = this->loadLightMapToGL(this->lightMaps[i]);
    229 
     233   
    230234    //Create white texture for if no lightmap specified
    231235    glGenTextures(1, &this->whiteLightMap);
    232236    glBindTexture(GL_TEXTURE_2D, this->whiteLightMap);
    233         //Create texture
     237        //Create texture
    234238    this->whiteTexture[0]=255;
    235239    this->whiteTexture[1]=255;
    236240    this->whiteTexture[2]=255;
    237 
     241   
    238242    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    239243    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GL_REPEAT);
     
    244248
    245249
    246 
     250 
    247251    /* control the mipmap levels */
    248252    glTexParameterf(GL_TEXTURE_ENV, GL_TEXTURE_MIN_LOD, 5);
     
    252256    glTexImage2D(GL_TEXTURE_2D,
    253257                 0,
    254                  GL_RGBA8,
     258                 GL_RGB,
    255259                 1,
    256260                 1,
     
    260264                 (const GLvoid *)&(this->whiteTexture));
    261265
    262     gluBuild2DMipmaps(  GL_TEXTURE_2D, GL_RGBA8, 1, 1,
     266    gluBuild2DMipmaps(  GL_TEXTURE_2D, GL_RGB, 1, 1,
    263267                       GL_RGB, GL_FLOAT,(const GLvoid *) &(this->whiteTexture));
    264 
    265 
     268   
     269   
    266270
    267271    // Get the number of patches
     
    313317}
    314318
     319/**
     320 *  Called by BspFile::build_tree() only.
     321 */
    315322BspTreeNode*   BspFile::build_tree_rec(int i)
    316323{
     
    324331  float z1 =(((plane *) this->planes) [planeIndex]).z;
    325332  thisNode->leafIndex = 0;
    326   thisNode->d          = (((plane *) this->planes) [planeIndex]).d;
     333  thisNode->d          = (((plane *) this->planes) [planeIndex]).d;
    327334
    328335  thisNode->plane = Vector(x1,y1,z1);
     
    356363}
    357364
     365/**
     366 *  returns the root node of the bsp-tree
     367 */
    358368BspTreeNode* BspFile::get_root()
    359369{
     
    464474      PRINTF(0)("BSP FILE: gefunden . \n");
    465475      this->Materials[i] =this->loadMat(fileName);
    466 
     476     
    467477    }
    468478
     
    480490      continue;
    481491    }
    482     //  Default Material
     492    //  Default Material
    483493    this->Materials[i].mat = new Material();
    484494    this->Materials[i].mat->setDiffuse(0.1,0.1,0.1);
     
    503513  if(this->testSurf != NULL) {
    504514    if(this->testSurf->format->Amask != 0 ) tmpAMat.alpha = true;
    505     else                                       tmpAMat.alpha = false;
     515    else                                       tmpAMat.alpha = false;
    506516  } else   tmpAMat.alpha = false;
    507517
     
    510520  tmp->setAmbient(1.0,1.0,1.0 );
    511521  tmp->setSpecular(1.0,1.0,1.0);
    512   //    tmp->setShininess(.5);
    513   //    tmp->setTransparency(1.0);
     522  //    tmp->setShininess(.5);
     523  //    tmp->setTransparency(1.0);
    514524
    515525  tmp->setDiffuseMap(mat);
     
    539549  scale*=255.0;
    540550  sc*=scale;
    541     ((unsigned char *)(&lightMapTexture))[i] = (unsigned char)sc;
    542 
    543 
     551    ((unsigned char *)(&lightMapTexture))[i] = (unsigned char)sc; 
     552   
     553 
    544554  }
    545 
     555 
    546556  glGenTextures(1, &lightMap);
    547557  glBindTexture(GL_TEXTURE_2D,  lightMap);
     
    569579                   (const GLvoid *)&lightMapTexture);
    570580
    571 
     581   
    572582   // build the MipMaps automaticaly
    573583   errorCode = gluBuild2DMipmaps(GL_TEXTURE_2D,
     
    579589                                 (const GLvoid *)&lightMapTexture
    580590                                );
    581 
     591   
    582592
    583593
     
    587597}
    588598
     599/**
     600 * Generates a vertex-array, a indice-array and a texture-coordinates-array for iface.
     601 * @param iface integer index of face
     602 * @todo cleanup this function, let the user choose the level of tesselation
     603 */
     604 
     605 
    589606void BspFile::tesselate(int iface)
    590607{
     
    715732
    716733
    717           //Vertice[u*(tesselation+1)+v]=       temp[0]*((1.0f-px)*(1.0f-px))+ temp[1]*((1.0f-px)*px*2)+ temp[2]*(px*px);
     734          //Vertice[u*(tesselation+1)+v]=       temp[0]*((1.0f-px)*(1.0f-px))+ temp[1]*((1.0f-px)*px*2)+ temp[2]*(px*px);
    718735          Vertice[u*(level1)+v].position[0]=temp[0].position[0]*((1.0f-px)*(1.0f-px))+temp[1].position[0]*((1.0f-px)*px*2)+temp[2].position[0]*(px*px);
    719736          Vertice[u*(level1)+v].position[1]=temp[0].position[1]*((1.0f-px)*(1.0f-px))+temp[1].position[1]*((1.0f-px)*px*2)+temp[2].position[1]*(px*px);
     
    750767      // Debug Model
    751768      //***********************************************************************************************************************
     769     
    752770      this->VertexArrayModels[this->patchOffset] = new VertexArrayModel();
    753771      VertexArrayModel*  tmp = this->VertexArrayModels[this->patchOffset];
Note: See TracChangeset for help on using the changeset viewer.