Changeset 6472 in orxonox.OLD for branches/height_map
- Timestamp:
- Jan 11, 2006, 2:11:16 PM (19 years ago)
- Location:
- branches/height_map/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/height_map/src/lib/graphics/importer/height_map.cc
r6329 r6472 29 29 #include <SDL/SDL_image.h> 30 30 #endif 31 32 Tile::Tile(int i1, int j1, int i2, int j2, HeightMap* hm ) 33 { 34 35 PRINTF(0)("Tile Constructor\n"); 36 highResModel = new VertexArrayModel(); 37 lowResModel = new VertexArrayModel(); 38 39 this->load(i1,j1,i2,j2,hm,highResModel,4); 40 this->load(i1,j1,i2,j2,hm,lowResModel, 32); 41 } 42 43 Tile::Tile() 44 { 45 PRINTF(0)("ooops *********************************************************************************************************************************************************************************************************** \n"); 46 } 47 48 Tile::~Tile() 49 { 50 delete highResModel; 51 delete lowResModel; 52 } 53 54 void Tile::draw() 55 { 56 lowResModel->draw(); 57 } 58 59 void Tile::drawHighRes() 60 { 61 highResModel->draw(); 62 } 63 64 void Tile::drawLowRes() 65 { 66 lowResModel->draw(); 67 } 68 69 /* 70 */ 71 void Tile::load(int i1, int j1, int i2, int j2, HeightMap* hm, VertexArrayModel* model, int Res) 72 { 73 74 #define heightMap hm->heightMap 75 #define colours hm->colours 76 #define scaleX hm->scaleX 77 #define scaleY hm->scaleY 78 #define scaleZ hm->scaleZ 79 #define shiftX hm->shiftX 80 #define shiftY hm->shiftY 81 #define shiftZ hm->shiftZ 82 #define normalVectorField hm->normalVectorField 83 84 int sampleRate = Res; 85 86 unsigned char height = 0; 87 int offset = 0; 88 89 float r = 0.0; 90 float g = 0.0; 91 float b = 0.0; 92 93 94 PRINTF(0)("loadin * \n"); 95 96 if(heightMap != NULL && heightMap->format->BitsPerPixel == 8 ) 97 98 SDL_LockSurface(heightMap); 99 100 for(int i = i1 ; i <= i2 ; i +=sampleRate) 101 { 102 int w = 0; 103 104 105 106 if(hm->hasColourMap) 107 { 108 r = (float)colours[3*w+2 + 3*i*(heightMap->w )]; 109 g = (float)colours[3*w+1 + 3*i*(heightMap->w)]; 110 b = (float)colours[3*w+0 + 3*i*(heightMap->w)]; 111 } 112 113 w = j1; 114 model->addVertex(scaleX*(heightMap->h -i)+ shiftX,shiftY,scaleZ*(w)+ shiftZ); // Top Right 115 model->addNormal(normalVectorField[i][w].y,normalVectorField[i][w].z,normalVectorField[i][w].x); 116 model->addTexCoor((((w -sampleRate)/sampleRate)%4)/4.0,(((i-sampleRate)/sampleRate)%4)/4.0); 117 model->addColor(r/255.0,g/255.0,b/255.0); 118 119 for(int j = j1 ; j <= j2 ; j += sampleRate) 120 { 121 122 123 // To be fixed 124 if(hm->hasColourMap) 125 { 126 r = (float)colours[3*j+2 + 3*i*(heightMap->w )]; 127 g = (float)colours[3*j+1 + 3*i*(heightMap->w)]; 128 b = (float)colours[3*j+0 + 3*i*(heightMap->w)]; 129 } 130 height = hm->heights[j+sampleRate + i*(heightMap->w )]; 131 model->addVertex(scaleX*(heightMap->h -i) + shiftX ,((double)(height)*scaleY) + shiftY ,scaleZ*(j) + shiftZ); // Top Right 132 model->addNormal(normalVectorField[i][j].y,normalVectorField[i][j].z,normalVectorField[i][j].x); 133 model->addTexCoor(((j/sampleRate)%texRate)/texRatef,((i/sampleRate)%texRate)/texRatef, ((j/sampleRate)%heightMap->w)/float(heightMap->w),((i/sampleRate)%heightMap->h)/float(heightMap->h)); 134 135 model->addColor(r/255.0,g/255.0,b/255.0); 136 137 138 w = j; 139 } 140 141 142 model->addVertex(scaleX*(heightMap->h -i)+ shiftX,shiftY,scaleZ*(w)+ shiftZ); // Top Right 143 model->addNormal(normalVectorField[i][w].y,normalVectorField[i][w].z,normalVectorField[i][w].x); 144 model->addTexCoor((((w+sampleRate)/sampleRate)%4)/4.0,(((i+ sampleRate)/sampleRate)%4)/4.0); 145 model->addColor(r/255.0,g/255.0,b/255.0); 146 147 } 148 149 150 151 152 153 SDL_UnlockSurface(heightMap); 154 int cnt = 0; 155 for(int i = i1 ; i < i2 ; i +=sampleRate) 156 { 157 158 for(int j = j1-sampleRate ; j < j2 + 2*sampleRate ; j += sampleRate) 159 { 160 161 model->addIndice(cnt); 162 model->addIndice(cnt + (j2 -j1 + 3* sampleRate )/ sampleRate ); 163 cnt++; 164 165 } 166 167 168 169 model->newStripe(); 170 171 172 } 173 cnt += (j2 -j1 + 3* sampleRate)/ sampleRate; 174 175 for(int j = j1 ; j <= j2 ; j += sampleRate) 176 { 177 int i = i1; 178 179 // To be fixed 180 if(hm->hasColourMap) 181 { 182 r = (float)colours[3*j+2 + 3*i*(heightMap->w )]; 183 g = (float)colours[3*j+1 + 3*i*(heightMap->w)]; 184 b = (float)colours[3*j+0 + 3*i*(heightMap->w)]; 185 } 186 187 model->addVertex(scaleX*(heightMap->h -i) + shiftX , shiftY ,scaleZ*(j) + shiftZ); // Top Right 188 model->addNormal(normalVectorField[i][j].y,normalVectorField[i][j].z,normalVectorField[i][j].x); 189 model->addTexCoor(((j/sampleRate)%texRate)/texRatef,(((i - sampleRate)/sampleRate)%texRate)/texRatef, ((j/sampleRate)%heightMap->w)/float(heightMap->w),(((i - sampleRate) /sampleRate)%heightMap->h)/float(heightMap->h)); 190 model->addColor(r/255.0,g/255.0,b/255.0); 191 192 } 193 194 for(int j = j1 ; j <= j2 ; j += sampleRate) 195 { 196 int i = i1; 197 height = hm->heights[j+sampleRate + i*(heightMap->w )]; 198 model->addVertex(scaleX*(heightMap->h -i) + shiftX , ((double)(height)*scaleY) +shiftY ,scaleZ*(j) + shiftZ); // Top Right 199 model->addNormal(normalVectorField[i][j].y,normalVectorField[i][j].z,normalVectorField[i][j].x); 200 model->addTexCoor(((j/sampleRate)%texRate)/texRatef,(((i)/sampleRate)%texRate)/texRatef, ((j/sampleRate)%heightMap->w)/float(heightMap->w),(((i)/sampleRate)%heightMap->h)/float(heightMap->h)); 201 model->addColor(r/255.0,g/255.0,b/255.0); 202 203 } 204 205 206 207 for(int j = j1 ; j <= j2 ; j += sampleRate) 208 { 209 int i = i2; 210 211 // To be fixed 212 if(hm->hasColourMap) 213 { 214 r = (float)colours[3*j+2 + 3*i*(heightMap->w )]; 215 g = (float)colours[3*j+1 + 3*i*(heightMap->w)]; 216 b = (float)colours[3*j+0 + 3*i*(heightMap->w)]; 217 } 218 219 model->addVertex(scaleX*(heightMap->h -i) + shiftX , shiftY ,scaleZ*(j) + shiftZ); // Top Right 220 model->addNormal(normalVectorField[i][j].y,normalVectorField[i][j].z,normalVectorField[i][j].x); 221 model->addTexCoor(((j/sampleRate)%texRate)/texRatef,(((i- sampleRate)/sampleRate)%texRate)/texRatef, ((j/sampleRate)%heightMap->w)/float(heightMap->w),(((i - sampleRate)/sampleRate)%heightMap->h)/float(heightMap->h)); 222 model->addColor(r/255.0,g/255.0,b/255.0); 223 224 } 225 226 227 for(int j = j1 ; j <= j2 ; j += sampleRate) 228 { 229 int i = i2; 230 height = hm->heights[j+sampleRate + i*(heightMap->w )]; 231 model->addVertex(scaleX*(heightMap->h -i) + shiftX , ((double)(height)*scaleY) +shiftY ,scaleZ*(j) + shiftZ); // Top Right 232 model->addNormal(normalVectorField[i][j].y,normalVectorField[i][j].z,normalVectorField[i][j].x); 233 model->addTexCoor(((j/sampleRate)%texRate)/texRatef,((i/sampleRate)%texRate)/texRatef, ((j/sampleRate)%heightMap->w)/float(heightMap->w),((i/sampleRate)%heightMap->h)/float(heightMap->h)); 234 model->addColor(r/255.0,g/255.0,b/255.0); 235 236 } 237 238 239 240 241 // link Boarder Stripe 242 for(int j = j1-sampleRate ; j < j2 ; j += sampleRate) 243 { 244 245 model->addIndice(cnt); 246 model->addIndice(cnt + (j2 -j1 + sampleRate )/ sampleRate ); 247 cnt++; 248 249 } 250 251 cnt++; 252 253 model->newStripe(); 254 255 256 257 258 259 cnt += (j2-j1)/ sampleRate; 260 261 // link 2nd BoarderStripe 262 for(int j = j1-sampleRate ; j < j2 ; j += sampleRate) 263 { 264 265 model->addIndice(cnt); 266 model->addIndice(cnt + (j2 -j1 + sampleRate )/ sampleRate ); 267 cnt++; 268 269 } 270 271 272 273 model->finalize(); 274 275 276 277 278 #undef heightMap 279 #undef colours 280 #undef scaleX 281 #undef scaleY 282 #undef scaleZ 283 #undef shiftX 284 #undef shiftY 285 #undef shiftZ 286 #undef normalVectorField 287 288 } 31 289 32 290 HeightMap::HeightMap() … … 86 344 generateNormalVectorField(); 87 345 88 346 colourMap=NULL; 89 347 if(colour_map_name != NULL) 90 348 { 91 349 colourMap = IMG_Load(colour_map_name); 350 } 92 351 if(colourMap != NULL) 93 352 { … … 102 361 PRINTF(0)("Gmask: %i\n", colourMap->format->Gmask); 103 362 } 104 else PRINTF( 4)("oops! couldn't load %s for some reason.\n", colour_map_name);363 else PRINTF(0)("oops! couldn't load colorMap for some reason.\n"); 105 364 106 365 … … 114 373 115 374 116 shiftX = 0; 117 shiftY = 0; 118 shiftZ = 0; 119 } 375 heights = (unsigned char*) heightMap->pixels; 120 376 121 377 … … 129 385 { 130 386 131 unsigned char height = 0; 132 int offset = 0; 133 int g = 0; 134 135 136 137 heights = (unsigned char*) heightMap->pixels; 138 139 140 141 142 if(heightMap != NULL && heightMap->format->BitsPerPixel == 8 ) 143 144 SDL_LockSurface(heightMap); 145 146 147 for(int i = 0 ; i < heightMap->h -sampleRate ; i +=sampleRate) 148 { 149 int j = 0; 150 151 float r; 152 float g; 153 float b; 154 for(int j = 0 ; j < heightMap->w -sampleRate ; j += sampleRate) 155 { 156 // To be fixed 157 r = (float)colours[3*j+2 + 3*i*(heightMap->w )]; 158 g = (float)colours[3*j+1 + 3*i*(heightMap->w)]; 159 b = (float)colours[3*j+0 + 3*i*(heightMap->w)]; 160 161 height = heights[j+sampleRate + i*(heightMap->w )]; 162 this->addVertex(scaleX*(heightMap->h -i) + shiftX ,((double)(height)*scaleY) + shiftY ,scaleZ*(j+sampleRate) + shiftZ); // Top Right 163 164 165 this->addNormal(normalVectorField[i][j+sampleRate].y,normalVectorField[i][j+sampleRate].z,normalVectorField[i][j+sampleRate].x); 166 this->addTexCoor(((j/sampleRate)%texRate)/texRatef,((i/sampleRate)%texRate)/texRatef); 167 168 this->addColor(r/255.0,g/255.0,b/255.0); 169 170 171 } 172 173 174 j = (heightMap->w/sampleRate - sampleRate); 175 176 this->addVertex(scaleX*(heightMap->h -i)+ shiftX,-1000.0,scaleZ*(j+sampleRate)+ shiftZ); // Top Right 177 178 this->addNormal(normalVectorField[i][j+sampleRate].y,normalVectorField[i][j+sampleRate].z,normalVectorField[i][j+sampleRate].x); 179 this->addTexCoor(((j/sampleRate)%4)/4.0,((i/sampleRate)%4)/4.0); 180 this->addColor(0.1,0.1,0.9); 181 182 183 184 185 } 186 187 SDL_UnlockSurface(heightMap); 188 189 190 int cnt = 0; 191 for(int i = 0 ; i < heightMap->h - 2*sampleRate ; i +=sampleRate) 192 { 193 194 for(int j = 0 ; j < heightMap->w - sampleRate ; j += sampleRate) 195 { 196 197 this->addIndice(cnt); 198 this->addIndice(cnt + (heightMap->w)/ sampleRate ); 199 cnt++; 200 201 } 202 203 cnt++; 204 this->newStripe(); 205 206 387 //Create a Dynamicly sized 2D-Array for Tiles 388 tiles = new Tile** [heightMap->h/tileSize]; 389 for(int i=0;i < heightMap->h/tileSize ; i++) 390 tiles [i]= new (Tile* [heightMap->w /tileSize ]); 391 392 //SetUp Arrays 393 for(int i = 0; i < (heightMap->h - tileSize )/ tileSize; i ++) 394 { 395 for(int j = 0; j < (heightMap->w - tileSize )/ tileSize; j ++) 396 { 397 398 tiles[i][j] = new Tile( i*tileSize , j*tileSize , (i+1)*tileSize, (j+1)*tileSize , this ) ; 207 399 } 208 209 this->finalize(); 210 211 212 } 213 214 215 216 400 } 401 402 } 403 404 405 void HeightMap::draw() 406 { 407 const PNode* camera = State::getCamera(); 408 Vector v = camera->getAbsCoor(); 409 410 int i_min = 1; 411 int i_max = (heightMap->h - tileSize)/ tileSize; 412 int j_min = 1; 413 int j_max= (heightMap->w - tileSize) / tileSize; 414 415 // calc i_min , i_max j_min and j_maxt 416 417 int centerX = (int)((heightMap->h - ((v.x - shiftX)/ (float)scaleX ))/ tileSize); 418 int centerY = (int)((v.z - shiftZ)/ (float)scaleZ )/ tileSize; 419 //PRINTF(0)("i_max %i \n" , i_max); 420 //PRINTF(0)("CENTERY %i \n ",centerY ); 421 i_min = max(centerX -1, i_min); 422 i_max = min(centerX +2 , i_max ); 423 424 j_min = max(centerY -1,1); 425 j_max = min(centerY +2, j_max); 426 427 428 for(int i = 1; i < i_min ; i ++) 429 { 430 for(int j = 1; j < j_max ; j++) 431 { 432 433 tiles[i][j]->drawLowRes(); 434 } 435 } 436 for(int i = i_min; i < i_max ; i ++) 437 { 438 for(int j = j_min; j < j_max ; j++) 439 { 440 441 tiles[i][j]->drawHighRes(); 442 } 443 } 444 445 for(int i = i_max; i < (heightMap->h -tileSize)/tileSize ; i ++) 446 { 447 for(int j = 1; j < j_max ; j++) 448 { 449 450 tiles[i][j]->drawLowRes(); 451 } 452 } 453 454 455 for(int i = 1; i < (heightMap->h -tileSize)/tileSize; i++ ) 456 { 457 for(int j = 1; j < j_min; j++) 458 { 459 tiles[i][j]->drawLowRes(); 460 } 461 } 462 for(int i = 1; i < (heightMap->h -tileSize)/tileSize; i++) 463 { 464 for(int j = j_max; j < (heightMap->w -tileSize)/tileSize; j++ ) 465 { 466 tiles[i][j]->drawLowRes(); 467 } 468 } 469 470 } 217 471 void HeightMap::generateNormalVectorField() 218 472 { … … 227 481 228 482 229 // !!! Does not yet calculate any normals forsome border points!!!!!483 // !!! Does not yet calculate the normals of some border points!!!!! 230 484 231 485 if(heightMap != NULL && heightMap->format->BitsPerPixel == 8 ) -
branches/height_map/src/lib/graphics/importer/height_map.h
r6329 r6472 16 16 #include "vertex_array_model.h" 17 17 18 #define sampleRate 4 19 #define texRate 4 20 #define texRatef 4.0f 18 19 #define texRate 4 20 #define texRatef 4.0f 21 #define tileSize 64 21 22 22 23 class SDL_Surface; … … 25 26 class PNode; 26 27 class Texture; 28 class HeightMap; 29 30 class Tile 31 { 32 public: 33 void draw(); 34 void drawHighRes(); 35 void drawLowRes(); 36 int getRes(); 37 int setHighRes(bool b); 38 Tile(int i1, int j1, int i2, int j2, HeightMap* hm ) ; 39 Tile(); 40 ~Tile(); 41 42 43 44 private: 45 VertexArrayModel* highResModel; 46 VertexArrayModel* lowResModel; 47 int highRes; 48 int lowRes; 49 void load(int i1, int j1, int i2, int i2, HeightMap* hm, VertexArrayModel* model, int Res); 50 }; 27 51 28 52 class HeightMap : public VertexArrayModel 29 53 { 30 54 public: 31 55 void draw(); 32 56 void load(); 33 57 void load(int Mode); … … 41 65 ~HeightMap(); 42 66 67 friend class Tile; 43 68 44 69 private: … … 47 72 unsigned char* heights; 48 73 unsigned char* colours; 74 49 75 void generateNormalVectorField(); 50 76 void drawRect(int xBottomLeft, int yBottomLeft, int xTopRight, int yTopRight ); 51 77 void fixBoarder(int xBottomLeft, int yBottomLeft, int xTopRight, int yTopRight); 52 78 Vector ** normalVectorField ; 79 Tile *** tiles; 53 80 Vector camCoords; 54 81 Material * tmp_mat; … … 71 98 return val; 72 99 } 73 100 inline int max(int x, int y) 101 { 102 return (x>y)? x:y; 103 } 104 inline int min(int x, int y) 105 { 106 return (x<y)? x: y; 107 } 74 108 }; -
branches/height_map/src/lib/graphics/importer/static_model.cc
r6072 r6472 227 227 void StaticModel::draw () const 228 228 { 229 230 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 231 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 232 229 233 PRINTF(4)("drawing the 3D-Models\n"); 230 234 ModelGroup* tmpGroup = this->firstGroup; … … 246 250 void StaticModel::draw (int groupNumber) const 247 251 { 252 253 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 254 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 255 248 256 if (unlikely(groupNumber >= this->groupCount)) 249 257 { … … 278 286 void StaticModel::draw (char* groupName) const 279 287 { 288 289 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 290 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 291 280 292 if (groupName == NULL) 281 293 return; -
branches/height_map/src/lib/graphics/importer/texture.cc
r5863 r6472 252 252 glBindTexture(GL_TEXTURE_2D, texture); 253 253 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 254 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );254 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); 255 255 // build the Texture 256 256 glTexImage2D(GL_TEXTURE_2D, … … 271 271 surface->pixels); 272 272 glBindTexture(GL_TEXTURE_2D, 0); 273 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 274 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 275 273 276 return texture; 274 277 } -
branches/height_map/src/lib/graphics/importer/vertex_array_model.cc
r6267 r6472 17 17 18 18 #include "vertex_array_model.h" 19 19 #include "texture.h" 20 20 #include "stdlibincl.h" 21 21 #include <stdarg.h> … … 33 33 VertexArrayModel::VertexArrayModel() 34 34 { 35 36 this->tex1 = new Texture("pictures/ground.tga"); 37 this->tex1->setName("test1"); 38 this->tex2 = new Texture("pictures/heightmapHelloCM.bmp"); 39 this->tex2->setName("test2"); 40 41 42 35 43 this->setClassID(CL_MODEL, "VertexArrayModel"); 36 44 … … 67 75 { 68 76 PRINTF(4)("drawing 3D-VertexArrayModel %s\n", this->getName()); 77 //1glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ); 78 79 glPushAttrib(GL_ALL_ATTRIB_BITS); 80 81 // glEnable(GL_LIGHTING); 82 glColorMaterial ( GL_FRONT_AND_BACK, GL_EMISSION ) ; 83 glEnable (GL_COLOR_MATERIAL) ; 84 85 86 87 // glBindTexture(GL_TEXTURE_2D, this->tex1->getTexture()); 88 89 // glEnable(GL_TEXTURE_2D); 90 91 92 93 94 95 96 97 glEnableClientState(GL_TEXTURE_COORD_ARRAY ); 98 glTexCoordPointer(2, GL_FLOAT, 0, &this->texCoords1[0]); 99 100 101 69 102 glEnableClientState(GL_VERTEX_ARRAY ); 70 glEnableClientState(GL_TEXTURE_COORD_ARRAY);103 glVertexPointer(3, GL_FLOAT, 0, &this->vertices[0]); 71 104 glEnableClientState(GL_NORMAL_ARRAY ); 105 glNormalPointer(GL_FLOAT, 0, &this->normals[0]); 72 106 glEnableClientState(GL_COLOR_ARRAY ); 73 74 75 glVertexPointer(3, GL_FLOAT, 0, &this->vertices[0]);76 glNormalPointer(GL_FLOAT, 0, &this->normals[0]); 77 glTexCoordPointer(2, GL_FLOAT, 0, &this->texCoords[0]); 78 glColorPointer(3, GL_FLOAT, 0, &this->colors[0]);107 glColorPointer(3, GL_FLOAT, 0, &this->colors[0]); 108 //glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ); 109 110 111 112 79 113 80 114 for (GLuint i = 1; i < this->stripes.size(); ++i) … … 85 119 &this->indices[this->stripes[i-1]] ); 86 120 } 121 122 123 glPopAttrib(); 87 124 } 88 125 … … 141 178 * If a TextureCoordinate line is found this function will inject it into the TextureCoordinate-Array 142 179 */ 180 void VertexArrayModel::addTexCoor(float u, float v, float w, float x) 181 { 182 this->texCoords1.push_back(u); 183 this->texCoords1.push_back(v); 184 this->texCoords2.push_back(w); 185 this->texCoords2.push_back(x); 186 this->pModelInfo.numTexCoor++; 187 } 143 188 void VertexArrayModel::addTexCoor(float u, float v) 144 189 { 145 this->texCoords.push_back(u); 146 this->texCoords.push_back(v); 190 this->texCoords1.push_back(u); 191 this->texCoords1.push_back(v); 192 this->texCoords2.push_back(0.0); 193 this->texCoords2.push_back(0.0); 147 194 this->pModelInfo.numTexCoor++; 148 195 } … … 291 338 this->vertices.size()/3, 292 339 this->normals.size()/3, 293 this->texCoords .size()/2,340 this->texCoords1.size()/2, 294 341 this->colors.size() )/3; 295 342 for (GLuint i = 1; i < this->stripes.size(); ++i) -
branches/height_map/src/lib/graphics/importer/vertex_array_model.h
r6267 r6472 15 15 /* Forward Declaration */ 16 16 class Material; 17 17 class Texture; 18 18 19 19 ///////////// … … 37 37 void addVertex(float x, float y, float z); 38 38 void addNormal(float x, float y, float z); 39 void addTexCoor(float u, float v); 39 void addTexCoor(float u, float v, float w, float x); 40 void addTexCoor(float u, float v); 40 41 void addColor(float r, float g, float b); 41 42 … … 58 59 std::vector<GLfloat> vertices; //!< The Array that handles the Vertices. 59 60 std::vector<GLfloat> normals; //!< The Array that handles the Normals. 60 std::vector<GLfloat> texCoords; //!< The Array that handles the VertexTextureCoordinates. 61 std::vector<GLfloat> texCoords1; //!< The Array that handles the VertexTextureCoordinates. 62 std::vector<GLfloat> texCoords2; //!< The Array that handles the VertexTextureCoordinates. 61 63 std::vector<GLfloat> colors; //!< The Array that handles Colors. 62 64 … … 64 66 65 67 std::vector<GLuint> stripes; //!< A lsit of Stripes of this Model. 66 68 69 Texture* tex1; 70 Texture* tex2; 71 67 72 }; 68 73 -
branches/height_map/src/world_entities/terrain.cc
r6329 r6472 58 58 tmp_mat->specularTexture = NULL; 59 59 60 const char* texture_name = "pictures/ground 1.tga";60 const char* texture_name = "pictures/ground.tga"; 61 61 tmp_mat->setDiffuseMap(texture_name); 62 62 tmp_mat->setAmbientMap(texture_name); … … 67 67 char* colourmapName = ResourceManager::getFullName("pictures/heightmapHelloCM.bmp"); 68 68 hm = new HeightMap(heightmapName, colourmapName); 69 hm->scale(Vector( 43.0f,1.10f,43.0f));70 hm->shift(Vector(-1000.0,- 1500.0,-1000.0));69 hm->scale(Vector(23.0f,0.7f,23.0f)); 70 hm->shift(Vector(-1000.0,-90.0,-4000.0)); 71 71 hm->load(); 72 72 this->model=hm; … … 235 235 236 236 this->tmp_mat->select(); 237 237 238 hm->draw(); 238 239 /* if (this->objectList)
Note: See TracChangeset
for help on using the changeset viewer.