Установка диффузной карты материала в 3ds max с помощью C++
Я разрабатываю служебный плагин для 3dsMax 2013 и 2014 на C++. В этом мне нужно установить растровое изображение на диффузную карту материала текущего выбранного объекта. Я попробовал следующий код, имя файла отображается рядом с диффузной картой в редакторе материалов, но изображение не применяется к материалу, а также при нажатии кнопки "Просмотр изображения" в свитке "Параметры растрового изображения" также не отображается изображение.
Bitmap* bmap;
BitmapInfo bmap_info(L"D:\\misc\\licenseplates.jpg");
// Load the selected image
BMMRES status;
bmap = TheManager->Load(&bmap_info, &status);
for( int i = 0; i < GetCOREInterface()->GetSelNodeCount(); ++i )
{
INode *node = GetCOREInterface()->GetSelNode(i);
// Get the material from the node
Mtl *m = node->GetMtl();
if (!m) return; // No material assigned
StdMat* std = (StdMat *)m;
// Access the Diffuse map
BitmapTex *tmap = (BitmapTex *)std->GetSubTexmap(ID_DI);
// No map assigned
if (!tmap)
{
tmap = (BitmapTex*)NewDefaultBitmapTex();
}
tmap->SetBitmap(bmap);
tmap->SetBitmapInfo(bmap_info);
tmap->ReloadBitmapAndUpdate();
tmap->fnReload();
std->SetSubTexmap(ID_DI,tmap);
std->SetTexmapAmt(ID_DI,1.0f,0);
std->EnableMap(ID_DI, TRUE);
}
Нужно ли устанавливать некоторые другие параметры, чтобы установить карту?