[原创]3dsmax脚本应用

  VR建模中由于对模型材质等要求较为规范,所以不可避免需要整理场景,脚本就发挥作用了。

最近一次VR项目中用到几个:

  多维子材质分离:有的VR引擎不支持多维子材质必须分离,而用这个工具正好可以整理材质,将因为合并多个场景导致的材质重复给清理掉。

  随机选取变换:大面积种树的时候,有时可以用Forest达到随机,但有时场景情况比较多,这个脚本就很好用了。

  自己写了个材质清理:防止3dsmax软件中的一些设置在不同引擎中表现不一致。

--材质清理
global allMtls=sceneMaterials
for i=1 to allMtls.count do
(
    local curMtl=allMtls[i]
    if (classof curMtl==Standardmaterial) then
    (
        curMtl.ambient = color 150 150 150
        curMtl.Diffuse = color 150 150 150
        curMtl.Specular = color 230 230 230
    )
    if (classof curMtl==Multimaterial) then
    (
        for j=1 to curMtl.materialList.count do
        (
            curMtl.materialList[j].ambient = color 150 150 150
            curMtl.materialList[j].Diffuse = color 150 150 150
            curMtl.materialList[j].Specular = color 230 230 230)        
    )
)

改贴图后缀:

--将场景中所有贴图后缀改为dds,绝对路径改为相对路径
global allMtls=sceneMaterials
for i=1 to allMtls.count do
(
    local curMtl=allMtls[i]
    if (classof curMtl==Standardmaterial) then
    (--标准材质
        curFilePath=curMtl.diffuseMap.fileName--"c:\xxx.jpg"
        curFileName=getFilenameFile curFilePath--"xxx"        
        curDif=curMtl.diffuseMap
        curOpc=curMtl.opacityMap        
        curDif.fileName=curFileName+".dds"                    
        if curOpc!=undefined then
        (    
            curOpc.fileName=curFileName+".dds"
        )
    )
    if (classof curMtl==Multimaterial) then
    (--多维子材质
        for j=1 to curMtl.materialList.count do
        (
            curFilePath=curMtl.materialList[j].diffuseMap.fileName
            curFileName=getFilenameFile curFilePath
            curDif=curMtl.materialList[j].diffuseMap
            curOpc=curMtl.materialList[j].opacityMap        
            curDif.fileName=curFileName+".dds"                    
            if curOpc!=undefined then
            (    
                curOpc.fileName=curFileName+".dds"
            )
        )        
    )
)
posted on 2012-09-02 09:44 一飞秒的爱 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/yifeimiao/archive/2012/09/02/maxscript.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值