轻松学习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. VB打开project时出现冲突名称提示

    在敲机房时因为窗口命名不合适,我就改动了下窗口.可是保存后再打开的时候.却出现以下的提示: 这样的情况出现.通常是因为引用了别人的窗口文件,或者是改动窗口的名字可是就是找不到不论什么冲突的地方.事实上 ...

  2. has实现 更新视图但不重新加载页面原理

    URL中#符号本身以及它的字符称之为hash,可以通过window.location.hash获取.hash具有如下特点: 1.has虽然出现在URL中,但不会被包括在http请求中.因此,改变has ...

  3. luogu2540 斗地主增强版

    题目大意 给你一副手牌,没有飞机带翅膀,按斗地主的规则,求将所有牌打出的最少次数. 题解 先不考虑顺子 我们已经知道花色对牌没有影响,那么如果不考虑顺子,每个牌具体是什么数字我们也用不着知道,我们关心 ...

  4. Bootstrap button源码分析

    /* ======================================================================== * Bootstrap: button.js v ...

  5. go6---slice切片

    package main /* 切片Slice 其本身并不是数组,它指向底层的数组 作为变长数组的替代方案,可以关联底层数组的局部或全部 为引用类型 可以直接创建或从底层数组获取生成 使用len()获 ...

  6. clojure一些笔记

    https://xumingming.sinaapp.com/302/clojure-functional-programming-for-the-jvm-clojure-tutorial/#intr ...

  7. python 视频逐帧保存为图片

    import cv2 import os def save_img(): video_path = r'F:\test\video1/' videos = os.listdir(video_path) ...

  8. Android 网络请求及数据处理

    Android 网络请求: 1.Volley   http://blog.csdn.net/t12x3456/article/details/9221611 2.Android-Async-Http  ...

  9. 大神给你分析HTTPS和HTTP的区别(转)

    http://www.php100.com/html/it/biancheng/2015/0209/8582.html 今天在做雅虎的时候,发现用第三方工具截取不到客户端与服务端的通讯,以前重来没碰到 ...

  10. bzoj 1999: [Noip2007]Core树网的核【树的直径+单调队列】

    我要懒死了,所以依然是lyd的课件截图 注意是min{max(max(d[uk]),dis(u1,ui),dis(uj,un))},每次都从这三个的max里取min #include<iostr ...