前言
#1 为什么设计这节课
UV的基础原理是十分简单的过程,展UV是一个十分重要的环节,模型制作工艺和Shader制作法则是应该相呼应的部分。
UV是什么
UV就是一张二维图像,UV映射就是将二维图像投影到三维模型的表面以进行纹理映射的3D建模过程。
命名为UV的原因是x,y,z被3D用了, 为了和3D区分开, 用了UV
U代表水平方向,V代表垂直方向,所以U和V就代表了2D纹理的轴,而 X,Y,Z 则用于表示三维模型空间中3D对象的轴。
总而言之就是一个展开的过程。
球体的UV在两侧会有明显的拉伸
UV壳
UV壳是指UV映射的形状。
分别用平面、球体、立方体投射在模型上面。
UV的拉伸和打直
网游贴使用的贴图尺寸比较小,需要做UV的拉伸和打直,尽量最大化合理利用空间
次世代使用的贴图尺寸比较大,可以适当的拉伸和打直UV
UV规范和要求
1. 扩边值(溢边值):512-2个像素、1024-4个像素、2048-6至8像素(减少溢色的可能,这个要求会根据不同的项目会有不同的要求规范)
2. uv该打直的必须得打直(这个概念在场景贴图绘制中尤为重要)
3. uv之间一定要有间隔,间隔像素为4-8个之间(这个要求会根据不同的项目会有不同的要求规范)
4. uv除非在能够很大程度上提高利用率的情况下,不允许uv倒着放的情况
5. 同材质uv要尽量的放在相邻位置
6. 相邻uv断开一定要放相邻的位置,并且焊接接线要保持一致
7. 2通道光影uv不允许翻转,叠放。但是在一定程度上允许拉伸
我们可以利用棋盘格来分析UV的拆分质量与缩放
UV通道
1.模型导出会有几套UV?
如果在3d模型中只做了一套uv,将模型导入unity的时候,在导入设置中勾选Generate Lightmap UVs, unity会自动为我们生成用于光照贴图的
uv1,和用于动态光照的uv2
比如Unity自带的物体box,sphere就自带两套uv
第一套是正常的,比如方块可以每个面是同一个uv,
但是第二套需要烘焙光照信息,所以默认是全展开,纹理看出来要小些。
也有一些材质会用到四套UV,比如Unity的speedtree。
2.模型多UV有什么作用
做很多效果时,使用多UV可以避免使用多材质,或者多贴图,性能更好。
其实额外的UV可以替代很多mask贴图实现的效果。
3. 如何自己在模型中添加第二套UV
3DMax和maya等软件都能对模型加多套uv
注意模型在fbx里可以保留多套uv,但是obj里只能保留默认的第一套
另外unity里现在貌似支持最多四套
展UV软件-RizomUV