Toturial OpenGL

Just To show You how to import .3ds File To OpenGL

____________________________________________________________________________________________________________

:: Fungsi "ProcessNextMaterialChunk( )" :

  1. i. Fungsi ini mengendali semua mklumat yang berkaitan dengan materiel(texture), Baik adik-adik hanya perlu copy dan paste sahaja fungsi da hanya per lu sedikit perubahan jika nama bagi nama pemboleh ubah yang digunakan. Aturcaranya adalah seperti dibawah :-

        1. void CLoad3DS::ProcessNextMaterialChunk(t3DModel *pModel, tChunk *pPreviousChunk)
          {

          //chunk semasa
          tChunk currentChunk = {0};


          //teruskan baca chunks sehingga sub chunk berakhir
          while (pPreviousChunk->bytesRead < pPreviousChunk->length)
          {

          //baca chunk seterusnya
          ReadChunk(&currentChunk);


          //semak chunk yg dibaca
          switch (currentChunk.ID)
          {
          case MATNAME: //chunk memegang nama bagi material

          // disini tempat dimana kita membaca nama material
          currentChunk.bytesRead += fread(pModel->pMaterials[pModel->numOfMaterials - 1].strName, 1, currentChunk.length - currentChunk.bytesRead, m_FilePointer);
          break;

          case MATDIFFUSE: // ia memegang warna R G B bagi objek
          ReadColorChunk(&(pModel->pMaterials[pModel->numOfMaterials - 1]), &currentChunk);
          break;

          case MATMAP: // ini merupakan pengepalaan bagi maklumat texture

          // proses membaca maklumat metarial
          ProcessNextMaterialChunk(pModel, &currentChunk);
          break;

          case MATMAPFILE: // menyimpan fail nama bagi material

          //tempat membaca membaca semua fail material
          currentChunk.bytesRead += fread(pModel->pMaterials[pModel->numOfMaterials - 1].strFile, 1, currentChunk.length - currentChunk.bytesRead, m_FilePointer);
          break;

          default:

          // baca atau abaikan chunks yang tidak dikenali
          currentChunk.bytesRead += fread(gBuffer, 1, currentChunk.length - currentChunk.bytesRead, m_FilePointer);
          break;
          }

          // meletakkan bacaan byte daripada chunk yang terakhir kedalam chunk yang sebelumnya
          pPreviousChunk->bytesRead += currentChunk.bytesRead;
          }
          }

 

__________________________________________________________________________________________________

<Next Step Tutorial>
Hosted by www.Geocities.ws

1