万网免费网站,个人年终总结ppt模板下载,云南餐饮网站建设,php企业公司网站源码前言 笔者处理模型时下载到一个pbr材质库贴图包#xff0c;手动每次创建材质过于麻烦#xff0c;因此计划使用自动化脚本根据贴图名自动创建材质。 3dsmax的原本脚本使用的是maxscript#xff0c;语法有点奇怪懒得学#xff0c;发现也支持使用python编写脚本#…前言 笔者处理模型时下载到一个pbr材质库贴图包手动每次创建材质过于麻烦因此计划使用自动化脚本根据贴图名自动创建材质。 3dsmax的原本脚本使用的是maxscript语法有点奇怪懒得学发现也支持使用python编写脚本但是python脚本的开发资料太少官方文档的举例使用的是标准standard材质pbr材质很多接口没有找到试了很久发现名称应该是与英文3dsmax一致这里简单记录一下。 一、思路
1. 根据文件夹名确定材质名称 2. 根据文件夹下贴图的名称确定各输入贴图 3. 将贴图赋予pbr材质的各位置 二、代码
import os
import pymxsdef get_files_in_folder(folder_path):file_paths []for root,dirs,files in os.walk(folder_path):for file in files:file_path os.path.join(root,file)file_paths.append(file_path)return file_pathsif __name__ __main__:rt pymxs.runtimefolder_path XXXX # 文件夹路径subdirectories [d for d in os.listdir(folder_path) if os.path.isdir(os.path.join(folder_path, d))]for subdir in subdirectories:physical_material rt.PhysicalMaterial() # 创建一个物理材质physical_material.name subdirt rt.sphere() # 创建赋予材质的物体t.material physical_materialmat_path folder_path \\ subdirtexture_paths get_files_in_folder(mat_path)for path in texture_paths:textureName path.split(\\)[-1]if diffuse in textureName: # 漫反射贴图——基础色贴图bitmap_texture rt.BitmapTexture()bitmap_texture.filename folder_path \\ subdir \\ textureName physical_material.BaseColorMap bitmap_textureelif glossiness in textureName: # 光泽度贴图——粗糙度贴图bitmap_texture rt.BitmapTexture()bitmap_texture.filename folder_path \\ subdir \\ textureNamephysical_material.RoughnessMap bitmap_textureelif normal in textureName: # 法线贴图——凹凸贴图bitmap_texture rt.BitmapTexture()bitmap_texture.filename folder_path \\ subdir \\ textureNamephysical_material.BumpMap bitmap_textureelif reflection in textureName: # 反射贴图——反射贴图bitmap_texture rt.BitmapTexture()bitmap_texture.filename folder_path \\ subdir \\ textureNamephysical_material.ReflColorMap bitmap_textureelif height in textureName: # 高度贴图——置换贴图bitmap_texture rt.BitmapTexture()bitmap_texture.filename folder_path \\ subdir \\ textureNamephysical_material.DisplacementMap bitmap_texture
三、说明 physical_material后的属性参照上图去除空格保留大小写
在3dsmax中选择脚本——运行脚本选择python脚本运行即可