Assigning Materials to Nodes in the Scene
 
 
 

A developer may also wish to create materials and assign them to nodes in the scene.

Sample code using many of these functions is available in the .3ds importer plug-in. This code may be found in\MAXSDK\SAMPLES\IMPORT_EXPORT\3DSIMP.CPP.

The code below demonstrates how a 3ds Max Standard material may be assigned to a mesh object. It assigns a material with Red Ambient and Diffuse settings to the first node in the current selection set.

void AssignMtl(Interface *ip)
{
   if (! ip->GetSelNodeCount()) return; // Nothing to assign.
   INode *node = ip->GetSelNode(0);
 
   // Create a new Standard material.
   StdMat *m = NewDefaultStdMat();
 
   // Set its properties...
   m->SetName(_T("Sample"));
   m->SetAmbient(Color(1.0f,0.0f,0.0f),0); // Pure Red
   m->SetDiffuse(Color(1.0f,0.0f,0.0f),0);
   m->SetSpecular(Color(1.0f,1.0f,1.0f),0);
   m->SetShininess(0.5f,0);
   m->SetShinStr(.7f,0);
 
   // Assign it to the node.
   node->SetMtl(m);
   ip->RedrawViews(ip->GetTime());
}