Maxscript中渲染中文版Vray完成貼圖(VrayCompleteMap)的方法


Objbakeproperties = $.INodeBakeProperties; --選定對象的烘培節點

Prjbakeproperties = $.INodeBakeProjProperties;

Objbakeproperties.removeAllBakeElements(); --移除所有渲染元素

Objbakeproperties.bakeEnabled = true -- 烘培開關
Objbakeproperties.bakeChannel = 3 -- 烘培的通道
Objbakeproperties.nDilations = 3 -- 拓展像素
BakeElem = VRay_完成貼圖(); --中文版的貼圖名稱是中文的,不如知道名稱可以先在對話框里添加一個,然后用$.INodeBakeProperties.getBakeElement(1)來獲取
BakeElem.elementname = "VRay-完成貼圖"
BakeElem.enabled = true --開啟貼圖的烘培開關
BakeElem.outputSzX = 2048 --烘培輸出尺寸
BakeElem.outputSzY = 2048
BakeElem.filterOn = true --抗鋸齒

BakeElem.filenameUnique = True --防止輸出重名
BakeElem.filename = url+"\\"+$.name+".png" --貼圖路徑
BakeElem.fileType = ".png" --文件類型


Objbakeproperties.addBakeElement BakeElem --將上面配置好的BakeElem貼圖對象添加到烘培設置

 

 

 

另外再記錄一下,有時會需要把貼圖通道從自動展開的3通道切換到1通道,可以這么做

假設修改器只有1個“自動展開UVs”或者“Uvw展開”修改器,那么代碼是

 

$.modifiers[1].unwrap.setMapChannel 0
$.modifiers[1].unwrap2.setFreeFormMode on

 

多個對象的時候可以判斷一下,防止出錯

 

for i in selection do (
  if classof(i.modifiers[1]) == Unwrap_UVW then (
    i.modifiers[1].unwrap.setMapChannel 0
    i.modifiers[1].unwrap2.setFreeFormMode on
  )
)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM