3ds Max 编程材料类别()
Posted
技术标签:
【中文标题】3ds Max 编程材料类别()【英文标题】:3ds Max Programming Materials Category() 【发布时间】:2021-04-13 11:07:06 【问题描述】:这有点奇怪,但无论我尝试多少次,我创建的所有材质和贴图都会出现在 General 类别材质中。 这是我的材料类别代码。
const TCHAR* Category() return NULL; //_T(""); //GetString(IDS_CATEGORY);
const MCHAR* GetEntryName() const return LuxMixMapFriendlyClassName; //NULL;
const MCHAR* GetEntryCategory() const
HINSTANCE hInst = GetModuleHandle(_T("sme.gup"));
if (hInst)
//Extract a resource from the calling module's string table.
static MSTR category(MaxSDK::GetResourceStringAsMSTR(hInst,
IDS_3DSMAX_SME_MATERIALS_CATLABEL).Append(_T("\\Lux")));
return category.data();
else
return _T("Maps\\Lux");
enter code here
【问题讨论】:
【参考方案1】:最后,我解决了这个问题,老实说,3dsmax 需要更好的文档。 如果其他人是这种情况,只需编写解决方案即可。 所有代码都是完全正确的,但是为了应用,应该调用一个可选的类,但没有它就无法工作。此外,如果您不调用它,也不会出错。 (有点意思)
首先,在 public classDesc2 我添加“public IMaterialBrowserEntryInfo”
class Lux_AddClassDesc : public ClassDesc2, public IMaterialBrowserEntryInfo
在类中添加。
FPInterface* GetInterface(Interface_ID id)
if (IMATERIAL_BROWSER_ENTRY_INFO_INTERFACE == id)
return static_cast<IMaterialBrowserEntryInfo*>(this);
return ClassDesc2::GetInterface(id);
所有其他部分完全相同。
【讨论】:
以上是关于3ds Max 编程材料类别()的主要内容,如果未能解决你的问题,请参考以下文章