ファイルからメッシュをロードする場合,もしファイル中にマテリアル情報が含まれていれば それをもとに自動的にマテリアルがメッシュへ割り当てられます.
手動でメッシュに割り当てるには,AddChildObjectを使います. 以下に例を示します.
// given GRSceneIf* scene, GRFrameIf* frame GRMeshDesc meshDesc; // ... setup discriptor here ... // create mesh and attach it to frame GRMeshIf* mesh = scene->CreateVisual(meshDesc, frame)->Cast(); GRMaterialDesc matDesc0, matDesc1; // ... setup materials here ... GRMaterialIf* mat0 = scene->CreateVisual(matDesc0, frame)->Cast(); GRMaterialIf* mat1 = scene->CreateVisual(matDesc1, frame)->Cast(); // attach materials to mesh mesh->AddChildObject(mat0); //< material no.0 mesh->AddChildObject(mat1); //< material no.1
最初に割り当てられたマテリアルを0番として昇順でマテリアル番号が決まります. 前述のマテリアルリストを用いる場合はこのマテリアル番号を面毎に指定してください.