真实的纹理

第二章 标准投影技术 VS 艰苦的UV展开

原著: Leigh van der Byl 编译: ymqworks

  究竟什么是UV? "UV"这里是指u,v纹理贴图坐标的简称(它和空间模型的X, Y, Z轴是类似的). 它定义了图片上每个点的位置的信息. 这些点与3D模型是相互联系的, 以决定表面纹理贴图的位置. 就好像虚拟的"创可贴", UV就是将图像上每一个点精确对应到模型物体的表面. 在点与点之间的间隙位置由软件进行图像光滑插值处理. 这就是所谓的UV贴图.

  那么, 为什么用UV坐标而不是标准的投影坐标呢? 通常给物体纹理贴图最标准的方法就是以planar(平面),cylindrical(圆柱), spherical(球形),cubic(方盒)坐标方式投影贴图. Planar projection(平面投影方式)是将图像沿x,y或z轴直接投影到物体. 这种方法使用于纸张, 布告, 书的封面等 - 也就是表面平整的物体. 平面投影的缺点是如果表面不平整, 或者物体边缘弯曲, 就会产生如图A的不理想接缝和变形. 避免这种情况需要创建带有alpha通道的图像, 来掩盖临近的平面投影接缝, 而这会是非常烦琐的工作. 所以不要对有较大厚度的物体和不平整的表面运用平面投影方式. 对于立方体可以在x, y方向分别进行平面投影, 但是要注意边缘接缝的融合. 或者采用无缝连续的纹理, 并使用cubic投影方式. 多数软件有图片自动缩放功能, 使图像与表面吻合. 显然, 如果你的图像与表面形状不同, 自动缩放就会改变图像的比例以吻合表面. 这通常会产生不理想的效果, 所以制作贴图前先测量你的物体尺寸. Cylindrical projection(圆柱投影方式)是将图像以围绕圆柱的方式投影到模型上. 这对于某种物体很适合--圆柱体. 除此以外别无他用. 制作圆柱投影方式的贴图时, 注意图片的左右两端可以无缝合拢, 如图B. 技巧提示: 要确定边界是否缝合可以用Photoshop的Offset(位移)滤镜(在菜单的Filters/Other/Offset), 位移图像一定的像素, 并打开Wrap Around选项. 如果有接缝就进行修改, 消除接缝后反向offset. Spherical projection(球形投影方式)是将图像沿指定轴从一个极点拉伸到另一个极点, 然后包裹在经纬线上. 就像是把展开的世界地图包裹到球体上制作成地球仪. 同样, 球形投影只能用在球体上. 同时用上文提到的Offset滤镜保证图像两端可以无缝连接. 另一个方法是使用photoshop的Polar Coordinates(极坐标变换)滤镜(在菜单Filters/Distort/Polar Coordinates)并设定为Rectangular to Polar. (注意只是检查图像. 不要保存!) 这样你就知道贴图是否适合球形. 用球形投影方式制作行星的纹理贴图时就可以用以上方法检查是否存在接缝. Cubic projection(立方投影方式)就是将图像在一个立方体模型上每一个面分别贴. 类似于从六个方向进行平面投影. 再次强调, 注意边缘图像不要产生接缝, 除非你需要接缝. 立方投影较适合完全四方的模型物体, 如果是长方体, 会在较长的面上拉伸图像, 在较短的面压扁图像.

  所以, 我们回到了主题, 为什么需要用UV贴图来代替这些贴图方式? 正如你所看到的, 投影方式是有局限性的. 无法胜任非常复杂的模型纹理贴图. 但奇怪的是这些投影经常被当做重要技术而被提到, 人们往往忽略了UV贴图方式. 这是因为纹理图像可以很精确的以标准投影方式贴在模型上, 在整个表面是连续的, 而UV贴图只在特定点有精确的值(通常是多边形的交界), 而在特定点之间是按照线性插值进行贴图的. (插值就是: 对组成连续序列的值, 估计中间值) -- 这里就是模型表面的色彩,色调值, 而插值色彩就成为了图像的一个部分, 它们是根据根据周围点的色彩估算出的色彩点. 当你对模型运用了UV坐标, 拖动这些点就会对整个图像进行拉伸变形.

UV UNWRAPPING(UV展开)

  一旦完成模型(在贴图前完成模型是非常重要的. 确信模型已经100%完成, 否则不要运用UV展开贴图.), 你可以决定模型是否需要UV展开. 暂且假设需要UV展开. 那么就需要决定展开方式(展开是针对X, Y, Z信息转换成的平面UV而言的). 的确展开方式有许多种, 不过不要头痛, 世界正因为复杂而精彩. 以下是UV unwrapping的选项... Planar(平面展开) 这里再次遇到了平面选项. 基本和上文描述的是一样的. 最终的UV坐标就是平面投影到表面上. 需要注意的是, UV一般是正方形的, 所以通常UV展开会被压扁. 只要调整UV展开点的位置而不是模型的结构就能改变贴图的布局. 我个人倾向使用平面展开, 因为这样产生的贴图便于工作. Cylindrical(圆柱展开) 和前面所述的类似. 注意如果你的圆柱物体有顶部, 并且你希望将它也展开, 那么只能在X或Z轴展开, 沿Y轴展开会使顶部变成平面. Spherical(球体展开) 同前. 你也许好奇, 既然UV展开方式和前述的投影方式一样, 为什么还要区别使用? 要知道UV背后的强大功能, 就是让我们可以集中关注模型的点进行修改, 而不会影响模型的形状.

  Atlas (lightwave3D中的术语)这种方式可能在各种3D软件里的名称不同, 或许没有. 简单的说Atlas展开方式提供的UV样本将表面信息转换到UV贴图中, 产生的图像是垂直于表面法向的. 就好比将纸张揉成的团展开为原来的纸. 问题是Atlas展开后的结果通常非常混乱, 会产生分离的多边形, 如图C. 这类展开, 由于需要大量后续修改工作. 所以我个人尽量避免使用. 我喜欢使用平面展开. 理由很明显, 例如角色的身体, 大量多边形需要被展开 (单单角色上半身就有11张不同的平面UV贴图), 由于每张图都是独立文件, 所以经常会看到不同的UV贴图结合处有接缝. 一种解决办法是将有接缝的贴图与不同的UV表面贴图进行blend混合. 还有一种简单的方法: 对于同一个面进行多重展开, 为所有不同UV贴图选择一个基本底色. 然后在绘制不同贴图时, 在接缝处不添加小细节, 这样当所有UV贴图相遇时, 只有基本底色显示, 接缝就消失了. 同样的方法适用于凹凸, 高光等贴图.

  避免细节切断多边形的边缘, 如果你不使用不同UV贴图时结果会很明显. 接着如何处理展开的UV图? 首先, 按需要修改UV展开图. 3D软件会有许多修改展开线框图的工具, 修改线框图不会影响模型. 通常需要对容易出现变形的部分进行修整, 使多边形互相连接贯通. 修改展开图直到确信自己可以在上面进行游刃有余的绘制纹理, 接着附上一张测试图像. 有2种选择... 第1种选择是你已经有了贴图用的图像. 在一个显示在UV视图. 以此图为UV图的背景, 拖动UV图上的点, 使它与纹理图像的相应位置吻合. 这种方法很奇怪, 我个人建议不采用. 第2种方法是将展开图导入Photoshop(或其他平面绘图软件). 可以利用一些Unwrap插件来获得展开图图像, 然后用Photoshop打开. 或者使用抓屏(在键盘上按下PrintScreen键), 进入Photoshop, 新建图像(图像尺寸默认为系统屏幕尺寸), 并Paste(粘贴). 再切割出正方的UV展开图(这是很关键的一步!) 现在准备绘图. 在第1章中提到过, 图像尺寸对于纹理贴图很重要. 回忆回忆: 为了决定贴图的尺寸, 你需要知道最终渲染的图像尺寸.

  纹理贴图一般是最终图像中纹理出现的最大宽度的2倍. 以这个尺寸作为贴图的尺寸, 结果就不会产生模糊或像素化. 例如电视的最终分辨率为720 X 576像素(PAL D1), 那么如果你的贴图会充满整个画面, 那么宽度不应该小于1440像素. 采用正方贴图的尺寸就是至少1440 x 1440像素. 图像设为72 Dpi是安全的, 因为电视和显示器都是72dpi. 缺点是这样大的贴图会减慢渲染的速度. 所以如果你需要为IMAX渲染, 最好配置能处理4000 x 4000像素图像的计算机.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值