
在建筑、室内、景观表现里,远景的人和树基本都是贴片——一张带 alpha 的图片竖在场景里。原因很实际:一棵真实的树模型几十万面,一个小场景放二十棵,渲染时间翻倍;而一张 2048 的贴片几乎不占资源,视觉效果在中远景里完全够用。
这个做法在行业里有很多名字:cutout、billboard、image plane、2D people、贴片人。它不是偷懒,是标准的成本控制手段。
但它有一个绕不过去的问题:影子。平面片没有厚度,不参与真实遮挡,渲出来地板上什么都没有。一片树林下面干干净净,一眼就看出是贴上去的。
传统解决方案是后期:渲一张无人的底图,再渲一张带 alpha 的贴片层,在合成软件里画影子。一张图还能忍,一个项目几十张图、每张图几十个贴片,纯体力活,而且改一次场景就得重来。
MaxCutouts 的思路是把这个环节搬回渲染器:让 3ds Max 在渲的时候就按 alpha 通道算出影子。官方的原话是——用这个脚本你可以在一次渲染里就得到带正确阴影的快速预览与最终图,不用后期再把各个元素合起来。
二、高度从文件名末尾读
这是整套机制里最关键的一处设计,值得单独讲。
脚本从文件名的末尾读取图片所代表的真实高度。所以一个 1.8 米高的人,文件名应该以 1.8 结尾;一棵 6 米高的树,文件名以 6 结尾。
为什么这样设计?因为贴片库通常有几百上千张。一张张手动建平面、读取高度、按比例缩放,是不可能的。把高度编码进文件名,整个库就能批量导入——脚本自己知道每张该多高。
对你意味着什么:整理贴片库的时候,文件名要按 高度 结尾命名。如果你手上的库是乱名的,要么改名,要么用面板里的强制高度选项(下面会说)。
这也是为什么这类工具的实用性,很大程度取决于使用者愿不愿意先把资产库规范化。工具本身很快,但前期整理文件名的工夫省不掉。
从数据设计的角度看,这是个有意思的取舍:文件名是唯一所有软件都能读、不需要数据库、拷给别人也不会丢的元数据载体。牺牲的是可读性和扩展性(只能编码一个数值),换来的是零依赖。
三、参数面板里真正有用的是哪些
界面上的参数可以分成四组,按使用频率排序:
第一组,最常动的两个:Scale(整体倍率,宽高同乘)与 Force Height(强制高度覆盖)。前者用来微调大小,后者用于文件名里没写高度的情况——脚本就用面板里的默认高度值。
第二组,对位相关:Auto Offset Image 按 alpha 通道自动算物体的偏移。贴片的「脚」通常不在图片底边正中(人物走路时两脚分开、树有根部扩展),脚本按 alpha 边缘把平面挪到正确的位置,省掉手动对齐。这个功能在批量导入时价值最大——一百张图不可能一张张对位。
第三组,材质与渲染:材质类型选择、位图过滤与模糊(none / 0.01,避免 alpha 边缘被糊掉导致影子边缘发脏)、以及是否强制 RGB level 与 V-Ray multiplier 统一亮度。这几个是「为什么我渲出来贴片比周围亮/暗」这类问题的答案。
第四组,投影控制:Planes 与 Shell 两条路径,各自有分辨率、深度、平滑这些参数。片数/分辨率越高越真实,代价是计算量。
官方描述里还有一项:同一张位图的多个物体会共用同一个材质。远景里同一个人物放二十次,不会生成二十份材质,省内存。
四、系统单位与尺寸
官方明确标注支持毫米、厘米、米、英寸、英尺这五种系统单位。
这一条看着不起眼,实际是这类工具能不能用的分水岭。3ds Max 的场景单位可以设成任意一种,如果脚本把高度 1.8 硬当成「1.8 米」而场景实际是厘米单位,贴片会小到看不见或者巨大无比。
支持五种单位意味着脚本会去读场景的 System Unit Scale,把文件名里的数值换算成场景单位。这是「在别人的场景里也能用」的必要条件——你接手一个英制单位的项目,贴片照样对。
顺便提醒:3ds Max 的 Display Unit 与 System Unit 是两套东西。前者只是显示格式(1.8m 还是 180cm),后者才是真正的内部尺度。工具认的是后者。
实际工作里还要注意:贴片库的「高度」标称通常是包括头发/帽子的总高还是到眼睛?这个没有统一标准,导入后看一眼比例,必要时用 Scale 微调,比纠结文件名可靠。
五、V-Ray 与 Corona 双兼容
官方标注兼容 V-Ray 与 Corona 两个渲染器,这也是建筑表现圈的两大主力。
双渲染器兼容在这类工具里不算小事。材质构建方式、透明处理、自发光与照明贡献的计算方式,在两个渲染器里都不一样:V-Ray 有 Light Material 与 Multiplier 的概念,Corona 有 LightMix 与 emit 的机制。一个工具要同时支持两边,需要在内部为不同渲染器构建不同的材质结构。
实际用起来的差别通常在细节上:比如 Corona 下贴片作为发光体参与照明时,亮度跟 V-Ray 下的对应关系不同;同一张图在两边渲出来的明暗可能差一点。所以换渲染器时,即使脚本两边都支持,也建议重新对一次亮度。
另外这类贴片在场景里容易出问题的场景是:贴片后面紧贴着一面墙(影子会打在墙上但计算不准)、贴片互相重叠(alpha 排序问题)、贴片在相机近处(分辨率不足)。这些问题工具解决不了,靠摆位和库的分辨率。
顺带说一句体积:这个包只有 43 KB 的 rar,解压后 9 个文件 88,021 字节。也就是说它完全靠脚本实现,不带任何贴片素材。贴片库要自己准备——工具负责把它放进去并投影,素材本身不在包里。
六、价格与授权
官方 Gumroad 页面上的结构化数据是 price 10.0(美元),Version 1.0,作者 Wuan Hyu,页面上有 3 条评价(综合 3.7 分),Size 2.03 MB。
授权条款里值得注意的几点:单个 license 可以激活 2 台电脑(Home + Work 各一台);购买包含全部未来更新(这是买断制的好处,不需要按年付订阅);Compatible with 3dsMax 2018 & higher。
这个价格在同类工具里属于低的——$10 一次买断,两台机器。同作者的 ArchvizTools 名下还有 Glass Door、Aluminum Window、Bifold Door、Ocean Waves、Road Markings、Blinds Curtains、Louvre Windows、Roof Window、Swimming Pool Generator 一系列产品,都是这种小工具、低价格、单一功能的定位。
需要说明的是:官网页面上的评价数是 3 条、3.7 分,样本很小,这个分数参考价值有限,不做质量结论。
另外这个包没有官方中文文档,本页的参数说明是从官方页描述与实际 mzp 内容整理的,不是官方中文翻译。
七、包内实际内容
本包 9 个文件,88,021 字节:
MaxCutouts 1.0.mzp —— 安装包主体,解压后是标准的 MAXScript 安装结构。
MaxCutouts.mse —— 加密的主脚本。
MaxCutouts_macro.ms —— 宏脚本,负责注册命令。
Message.ms —— 安装完成后的提示信息。
mzp.run —— 安装脚本。
4 个 .bmp —— 界面按钮图标。
整个包 88 KB,无 dll、无外部依赖、无贴片素材。这是典型的「纯脚本工具」体量。
安装方式是拖 mzp 进视口(标准 MAXScript 安装流程),装完从 Customize > Customize User Interface 里找到对应分类分配按钮。
需要如实说明几点:
一,官方页面上对投影参数(Planes 与 Shell 的具体分辨率、深度、平滑参数)的逐项说明不如同类的 A2Dimage 详细,本页因此只写了这两个模式的存在与大致用途,没有编造具体的参数名与取值范围。
二,官方页没有版本历史表(Gumroad 商品页只显示当前 Version 1.0),所以无法做「包内版本 vs 官方最新版」的对比,也不声称本包落后或领先。
三,这个包的功能描述与作者另一个产品 Dappled Light Generator 的页面结构一致(同为 ArchvizTools 下的 Gumroad 商品页),说明是同一套发布流程。这一点只是观察,不影响使用。
原产品页:https://archviztools.gumroad.com/l/maxcutouts
封面图片来自作者官方产品页。本文为中文整理,功能与兼容性信息以作者官方页面与包内说明为准。资源仅供学习交流,商业使用请购买正版授权。















暂无评论内容