每当材质需要替换贴图时都要一个个打开材质,比较麻烦,这里直接选择模型进行一个贴图的替换,主要针对mtlstandard和VRAY材质的diffuse和normal贴图的替换
废话不多说直接上代码
/*先定义一个函数用来收集VRay材质和MTLstandard材质*/
fn ti_huan=
(
--bitmap_path=getopenfilename caption:"" filename:"" types:"JPEG (*.jpg)|*.jpg|TIFF(*.tif)|*.tif|BMP (*.bmp)|*.bmp|Targa (*.tga)|*.tga|PNG (*.png)|*.png"--gets
global m_mat=#()
global v_mat=#()
d=for b in selection where classof b.material==standardmaterial collect b--vraymtl材质
v=for b in selection where classof b.material==vraymtl collect b
)
rollout boss "替换贴图" width:200 height:300 rolledup:on
(button but1"替换漫反射贴图" pos:[10,10] width:100 height:20
checkbutton but2"显示贴图"pos:[115,10] checked:false
on but1 pressed do undo on
(
ti_huan()
bitmap_path=getopenfilename caption:"" filename:"" types:"JPEG (*.jpg)|*.jpg|TIFF(*.tif)|*.tif|BMP (*.bmp)|*.bmp|Targa (*.tga)|*.tga|PNG (*.png)|*.png"
if bitmap_path!=undefined do
(
for f=1 to d.count do
(
append m_mat d[f]
m_mat[f].material.diffusemap=bitmaptexture filename:bitmap_path
)
for p=1 to v.count do--VRAy材质贴图
(
append v_mat v[p]
v_mat[p].material.texmap_diffuse=bitmaptexture filename:bitmap_path