使用C ++在3ds max中设置材质的漫反射贴图

时间:2013-11-07 06:31:22

标签: plugins bitmap 3dsmax material

我正在使用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);
}

我是否还需要设置一些其他参数来设置地图?

enter image description here

enter image description here

0 个答案:

没有答案