void CLoad3DS::ReadObjectMaterial(t3DModel
*pModel, t3DObject *pObject, tChunk *pPreviousChunk)
{
char strMaterial[255] = {0}; //
memegang nama meteriel objek
<info>"apa
itu materiel???
- ia merupakan textyre map(kulit rupabentuk permukaaan) bagi objek,
ia mengandungi maklumat brightness, shine, dan bemacam-macam lagi.
tapi ia tidak berapa penting., Ynag kita perlua adalah warna atau
pun nama fail bagi texture map
/* disini kita membaca nama metariel
yang mana telah diumpukkan kepada objek ysedia ada.*/
pPreviousChunk->bytesRead += GetString(strMaterial);
<Info>" buat masa sekrang anda telah memiliki nama
bagi metariel, kita perlu lalui seluruh metariel untuk untuk menguji
nama bagi setiap metariel.jika menjumpai metariel itu didalam
metariel list kita perlu membandingkan untuk menbagi objek kepada
material index. Kamu akan diberitahu jika ia masuuk kedalam model
fungsiIn kerana kita memerlukan bilangan texture"
// melalui keseluruhan texture
for(int i = 0; i < pModel->numOfMaterials; i++)
{
//jika nama meteriel yang dibaca
sepada dalam texture list
if(strcmp(strMaterial, pModel->pMaterials[i].strName) == 0)
{
// umpukkan material ID kepada
nilai index 'i' dan menghentikan pengujian
pObject->materialID = i;
//sudah jumper materiel maka kenal
pasti agar ia adalah texture map
//jika strFile mempunyai panjang string =1
if(strlen(pModel->pMaterials[i].strFile) > 0) {
//umpukkan flag objek
pObject->bHasTexture = true;
}
break;
}
else
{
//umpukkan materialID = -1 untuk
memberitahu bahawa tidak texture map bagi objek tersebut
pObject->materialID = -1;
}
}
pPreviousChunk->bytesRead += fread(gBuffer, 1, pPreviousChunk->length
- pPreviousChunk->bytesRead, m_FilePointer);
}