我正在使用C ++为3dsMax 2013和2014开发实用程序插件。在这里,我需要将位图设置为当前所选对象材质的漫反射贴图。我尝试了以下代码,文件名显示在材质编辑器中的漫反射贴图附近但图像未应用于材质以及单击“位图参数”中的“查看图像”按钮时,卷展栏也未显示任何图像。
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);
}
我是否还需要设置一些其他参数来设置地图?