轻松学习Blender基础入门之九:UV-1

2017-06-21 14:24:49|  分类: Blender |举报 |字号 订阅

 
【前言】

         使用多边形方式建立的模型,如果要赋予模型纹理材质或者要绘制纹理。在做这件事情之前,一个重要的环节必须首先考虑 ,那就是“模型UV展开”(Unwrapping)
         如果渲染模型的时候,该模型不涉及纹理贴图,比如纯玻璃、纯瓷器和完美的金属等等,原则上就不用考虑处理模型的UV,仅调整赋予该模型材质的各种属性,就可以完成逼真的渲染。
        但是,如果涉及纹理贴图等渲染,那就必须考虑模型的UV处理问题了。因为这涉及贴图纹理通过UV坐标,如何将贴到模型哪个部位的问题。
关于多边形模型与UV的关系,我在博客已经写了很多了,不需要再赘述了。这里主要想研究一下Blender是如何轻松、方便展开UV的。
 
【研究】
一个三维模型,每个点对应的三维坐标是XYZ,它的对应二维UV坐标(U,V)。模型的每个独立面对应UV的相应的“面”,模型和UV是对应的关系。把一个模型的UV展开,就像把一个立体的物体,在一些地方适当地剪开,然后,平摊到平的桌面上一样。
       Blender展开模型UV的方法有很多种,但最基本的就是手工选择缝合线(Steam)和模型的边缘,然后展开。这篇,首先用一个立方体演示一下流程。
 

一、设置编辑界面:

1、默认为3D视图。
 

2、点击右上角图标,拉出一个新的窗体,两个都是3D视图。

3、选择左侧窗口,改为UV/图像编辑器。

4、选择两个窗口,按T和N隐藏掉工具和属性面板,形成编辑UV的布局。

5、其实,这种编辑UV的窗口布局,系统本来就有,你可以选择UV Editing就可以切换。

 二、选择“剪开线“(中文翻译为缝合边)
1、右键选中立方体模型,按TAB进入编辑模式。
2、选择边模式:按SHIFT键+鼠标右键加选下面的边。(你想象一下把它如何剪开,才能平整铺到桌面上)

3、按CTRL+E 调出边编辑菜单,选择---“标记缝合线”,实际上就是把选中的边,当做UV的剪开线(不是模型的剪开线,模型也没有裁剪开)

4、当按A 取消选择时,充当UV剪开线(缝合边),变成红色(当然,你也可以清除这些缝合边)

5、注意:按U键, 选择--展开(Unwrap)这个命令,就是按照剪切边(缝合线)把UV剪开并向平面摊开。

6、看左侧的“UV/图像编辑”视窗,立方体的UV就完美地展开了。

 

小结:模型的UV展开以后,当你保存的时候,模型的UV就会存储在模型文件中。如果你把模型以FBX 或OBJ导出,模型的UV数据也包含在模型之中。 

 
三、导出UV栅格贴图

1、选择下面菜单--UV, 导出UV布局图命令。
2、选择哪个盘,文件名字叫什么?

3、设置导出的UV栅格贴图文件格式,UV线的透明度、贴图文件大小(虽然你可以随意设置,没有特殊要求,建议你按规矩来:设置1024,2048,4096等)

4、这是导出的UV栅格贴图。

5、我们可以使用ps进行编辑。建立一个新的图层,放到UV的下面。

6、我们按照UV半透明的格线为参考,绘制下面的数字(简单说明问题)

7、现在我们要输出这张纹理作为贴图,注意,关闭隐藏UV图层。

8、把这个图像输出保存。

小结:如果你想绘制比较复杂的纹理贴图(颜色、反射、法线贴图等),你可以不用输出UV栅格贴图。使用专业的纹理贴图绘制软件在三维模型上直接绘制和制作,比如使用Substance
painter 或Quixel suit等,它们要求输入的三维模型的UV必须是展开的。
 
四、导入纹理贴图渲染:
这个内容不是重点,但也必须谈谈。
1、我们选择"Blender渲染"。这个渲染引擎,有点像3DSMAX的线扫描渲染器,效果一般,没有全局光功能,但渲染速度很快。
2、如何设置材质呢?Blender的材质不是拖拽赋予模型的,而是选中要设置材质的对象,选择“材质”编辑面板。点击新建。

3、建立一个材质,那么这个材质就自动赋予这个对象了。这个材质的名称可以更改。

4、如何赋予模型贴图呢? 选择贴图面板。(两者相邻啊)

5、建立一个新的贴图连接。选择“图像、影片”--点击下面的打开按钮。

6、选择绘制好的贴图。注意:“映射”----坐标选择UV 。就是告诉贴图以UV坐标方式把这个贴图,通过材质贴到模型上。

7、Blender的好处就是:可以实时渲染。选择3D视图的--渲染模式。

你可以随时转动,实时渲染,速度很快。
8、我们发现左侧发黑。这是因为“BLENDER渲染“渲染引擎类似线扫描渲染器,光照到的地方就亮,照不到的地方就暗。不像全局光渲染那样,有光线粒子反弹,没有对比强烈的地方,接近自然真实。BLENDER渲染没有办法,就是理论化的模拟,怎么办呢?
9、转回实体模式,我们发现场景中只有一盏灯光,我们右键选择它,按SHIFT+D再复制一个,把它拖到左侧。

10、转回“渲染模式”,在两边的灯光照射下,模型全部照亮了。
11、也可以按“F12”,进行最终渲染。渲染的图像,显示在左侧的“UV/图像编辑”窗口中。

blender_(uv应用)................http://digitalman.blog.163.com/blog/static/23874605620174172058299/的更多相关文章

  1. http://love3400wind.blog.163.com/blog/static/7963080120132794359703/

    http://love3400wind.blog.163.com/blog/static/7963080120132794359703/

  2. 组合,关联,聚合的区别(转自http://jimmyleeee.blog.163.com/blog/static/9309618200932014422932/)

    类间关系 在类图中,除了需要描述单独的类的名称.属性和操作外,我们还需要描述类之间的联系,因为没有类是单独存在的,它们通常需要和别的类协作,创造比单独工作更大的语义.在UML类图中,关系用类框之间的连 ...

  3. GRIB格式转换心得(转自博客:http://windforestwing.blog.163.com/blog/static/19545412007103084743804/)

    1.wgrib的使用 在cmd命令行下键入wgrib后即可察看wgrib相关命令参数,简要介绍如下: l        Inventory/diagnostic–output selections 详 ...

  4. http://qurtyy.blog.163.com/blog/static/5744368120130221419244/

    我们先来看它的思路:把控制不透明度和控向上移动的动画分别存储在两个队列中,控制向上移动的队列按默认情况进行(在2000毫秒内完成),而不透明度的控制在1000毫秒内执行,但这个队列要晚于默认队列100 ...

  5. node.js(API解读) - process (http://snoopyxdy.blog.163.com/blog/static/60117440201192841649337/)

    node.js(API解读) - process 2011-10-28 17:05:34|  分类: node |  标签:nodejs  nodejsprocess  node.jsprocess  ...

  6. 转发真阿当老师的一片文章 受益匪浅 (出处:http://cly84920.blog.163.com/blog/static/24750013320158203575958/)

    忽悠程序员做一辈子程序员,以白胡子白头发hacker为目标的人有两种: 1,自己不写程序,但需要有将才为自己打下手的人,这种人往往看他资质和勤奋均平平,却成了你领导.别不服,这种人虽不见得有帅才的能力 ...

  7. 二叉树——根据遍历结果,画出对应的二叉树 转载至:http://canlynet.blog.163.com/blog/static/255013652009112602449178/

    这道题目很经典,具体如下: 已知遍历结果如下,试画出对应的二叉树: 前序:A B C E H F I J D G K 中序:A H E C I F J B D K G 解题要点: 1.前序.中序.后序 ...

  8. http://blog.163.com/zhangmihuo_2007/blog/static/27011075201392685751232/

    http://blog.163.com/zhangmihuo_2007/blog/static/27011075201392685751232/

  9. http://blog.163.com/eugeneheen_chen@126/blog/static/120812157201291994916866/

    http://blog.163.com/eugeneheen_chen@126/blog/static/120812157201291994916866/

随机推荐

  1. HDU1236 排名 题解

    Problem Description 今天的上机考试尽管有实时的Ranklist,但上面的排名仅仅是依据完毕的题数排序,没有考虑  每题的分值,所以并非最后的排名.给定录取分数线.请你敲代码找出最后 ...

  2. String,StringBuffer,StringBuilder三者有什么异同?

    相同点: 1.三者都是Java平台提供的三种类型得到字符串,它们可以储存和操作字符串. 不同点: 1.String是final修饰的,也就意味着String引用的字符串内容是不能被改变的.而Strin ...

  3. initial ram filesystem

    1 制作最简单的initramfs 1.1 创建init #include <stdio.h> int main() { printf ("\n"); printf ( ...

  4. gradle使用笔记

    1 gradle user home 默认情况下是-/.gradle目录.可以使用gradle -g [directory]修改. 1.1 ./gradle/caches gradle下载的所有的依赖 ...

  5. JavaScript中的string interpolation

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals var a = 5; var b ...

  6. FileStream StreamWriter StreamReader BinaryReader

    FileStream vs/differences StreamWriter? http://stackoverflow.com/questions/4963667/filestream-vs-dif ...

  7. iOS中打包.a静态库

    1.新建.a静态库工程 需要选择Static Library静态库工程模板新建工程,如下图: 新建静态库工程 实现需要打包的类,如下图: 实现需要打包的类 2.设置需要暴露的头文件 添加Headers ...

  8. POJ 1330 LCA裸题~

    POJ 1330 Description A rooted tree is a well-known data structure in computer science and engineerin ...

  9. [Codeforces 425A] Sereja and Swaps

    [题目链接] https://codeforces.com/contest/425/problem/A [算法] 枚举最终序列的左端点和右端点 , 尝试用这段区间中小的数与区间外大的数交换 时间复杂度 ...

  10. python-----opencv读视频、循环读图片显示进度条

    功能:opencv读视频,显示进度条,推动进度条快进.后退,按q退出.代码如下: import os import cv2 def nothing(emp): pass def jindu(name, ...