如果你现在正对着SketchUp里一个贴图花到不能看的方盒子发愁——正面木纹是正的,侧面却斜着拉成一条条,顶面干脆糊成一片色块,那问题多半不是出在材质本身,而是出在UV投影方式上。SketchUp默认给物体贴图时用的是平面投影,相当于拿一台投影仪从某个方向把图片打在模型上,模型表面一旦不垂直于投影方向,纹理就会被拉伸变形。标题里提到的BOX-UV投影,也就是立方体投影,就是专门解决这种“三维物体贴图乱套”问题的办法:它把模型想象成一个方盒子,从X、Y、Z三个轴的方向分别投影,让每个面都朝自己的贴图方向投射。
这段时间总有朋友来问类似的问题,有人给柜子贴木纹,有人给建筑体块贴砖墙,最后都卡在“侧面纹理被拉变形”这一步上。这篇文章就从原理、操作到各种坑,把BOX-UV投影彻底讲明白,适合所有用SketchUp建模、贴图、做渲染的人参考。
1. 贴图一经过三维物体就乱套:平面投影的局限和BOX投影的原理
1.1 一句话说清SketchUp里的UV投影到底是什么
先把这个概念说透。UV投影里的U和V,代表贴图图片的横纵两个方向,你可以把一张贴图想象成一块印着图案的橡皮膜,而UV投影就是决定“这块膜怎么蒙到三维模型表面”的规则。模型上的每一个点,都要通过这套规则找到图片上对应的一个点,颜色才能准确地显示出来。
SketchUp和3ds Max、Blender这类软件不一样,它没有单独的面板让你手动展开UV坐标,而是把映射规则简化成了几种内置的投影方式:平面、立方体、球体、圆柱体。你不需要自己去摆弄UV点,只需要选一种合适的“蒙法”。BOX-UV投影,就是专为“盒子状物体”设计的那一种蒙法,英文界面通常叫Box,中文界面直接显示为“立方体”。
1.2 为什么默认的平面投影会让侧面和顶面变形
SketchUp默认使用的平面投影,可以理解成拿一个手电筒去照一张幻灯片:光线沿一个固定方向射出,碰到什么面,就把图案投上去。如果被投射的物体恰好是一堵墙、一块地板这种平面,效果会非常完美,纹理贴上去跟印刷的一样。
可一旦遇到一个方盒子,问题立刻出现。正对着光线的那一面没啥问题,但侧面是被斜射过去的,图案会顺着斜面方向拉长,原本方方正正的砖块会变成平行四边形;顶面更惨,光线几乎贴着表面滑过去,图案会被压成一条一条的颜色带,完全看不出原来的样子。
更麻烦的是,SketchUp默认的平面投影方向很多时候是世界坐标的某个轴,未必正好对着你选中的面。这就导致你贴完材质,经常还需要手动去转方向、调大小,不然纹理就是歪的。所以只要模型是三维体块,继续用平面投影就是在给自己挖坑。
1.3 BOX投影的真正原理:三台投影仪各管一面
BOX-UV投影的本质,就是同时在X、Y、Z三个轴方向各放一台投影仪。系统会自动判断当前这个面的法线方向最接近哪个轴,然后用对应的那台投影仪去投射。
对于标准的
