unity3d collider自动调整大小_Maya模型在Unity3d中的快速烘焙【2020】

本文小姐姐将以一个Maya的室内小客厅场景为例,和童鞋们一起讨论Unity3d快速烘焙Maya室内模型光照的方法,一方面是对前面知识的综合应用,另一方面满足一下做室内设计童鞋的学习需求。

话不多说,开工!这个例子的Maya场景模型如下图所示:

0f5dab8e26496733e08ff7bad13387fd.png

在Maya中拆分好的UV如下图所示:

0997524faa28ffc453b7631df1bb066f.png

导入Unity3d后的场景情况如下图所示:

84b0efb13f2065cb137f22371f11a793.png

这个场景比较简单,一个窗户、一个沙发、一个茶几、一个书柜、两个落地灯、一个墙面装饰、还有一个挂画、茶几上一个杯子、两盆绿植,这里我们设想将场景烘焙成阴天的白昼气氛,也就是没有直射太阳光,室外光线完全是大气折射的太阳光,所以我们确定这个场景的主光源为从窗户投射的光线,可以使用Unity3d的面光源置于窗户附近,但我们这里选用Unity3d的材质灯光,也就是将某个模型的材质勾选“自发光”,这个模型就成了灯光了。选中窗户玻璃,勾选其材质中的自发光(Emission),将自发光强度设为1.5,发光颜色设为白色,如下图所示:

1a5c2c5b54e55d4c202bf3c8693db351.png

因为这个场景不可能有运动物体,光线也不会变化,所以选用静态灯光下的静态物体的方式烘焙场景,所以将自发光材质的Global Illumination(全局光照)设为Baked,勾选光照面板中的“Baked Global Illumination”,然后烘焙,得到如下图所示的结果(烘焙用时5分钟):

a00905a3fc315429eb081d88515bd861.png

421d6d133c6095501eefca03585de6ed.png

从上图可见,场景太暗,但明暗关系已经有了,如果反复烘焙,太浪费时间,我们设想通过photoshop来调色,需要说明的是,这里所说的调色不是简单的图片调色,而是对整个场景调色。如下图所示,将一个特殊的色带文件与相机关联起来,对这个文件调整,就会调整相机中的场景,这样我们将这个文件(png图片)用ps打开,然后截取一张相机视图的图片,按照图片调色的方法,对截取的图片调色,然后将图片调整的参数应用于那个色带文件,保存色带文件后,Unity3d的场景就回作相应的调整,关系就是这样

092e31be0c41ee0ccc88623a6c8595ca.png

下面我们就来调色,首先抓取相机视图的图片,然后在ps中打开,同时也将刚所说的色带文件也用ps打开,如下图:

6aff272bdc3a54d53306a1262b393ab3.png

7ba8211ca7fb1fd647696d688a40e002.png

首先调一下截取的相机视图图片的亮度和对比度,亮度88,对比度-50,如下图所示:

4679f7a84b63662a9506c966f06e3323.png


然后对色带也做这样的调整,如下图所示:

6aff272bdc3a54d53306a1262b393ab3.png

然后保存色带文件,Unity的相机视图就会作相应的调整,调整后如下图所示:

8c2f7eae01e07d9725eb3b1a0c8a9753.png

原理大家都明白了吧,这样就是以用ps灵活地为Unity3d场景调色了,只要Unity3d烘焙出场景的明暗关系,剩下的就交给ps了,这样可以节省大量反复测试烘焙的时间。按照上面的方法对相机视图进行色相饱和度、色彩平衡等调整后,相机视图的场景如下:

5399c85a675475df09af3bca4d403a06.png

abcb0c10838a3716e5a19bc1690e68b8.png

好了,场景调色就到这里。

木地板应该有反射,所以我们需要引用Unity3d的“Reflection Probe(反射探测器)”,在层级面板空白处右键单击,在弹出的菜单中选择light下的“Reflection Probe”命令,场景中会出现一个四面体线框,如下图所示,在反射探测器的检视面板中按下节点命令,四面体的四个面上会出现黄色下把手,拖动可以调节探测器的大小,按下探测器检视面板中的移动按钮,可以调整探测器的位置,用这两个命令配合,将探测器调至和房间一样大,或者说让探测器完全包络这个房间,烘焙的时候,会将整个房间烘焙成一个比较小的全景图贴在探测器上,供具有反射的材质映射来实现真实反射。这里说明一下,当场景比较复杂时,可以用多个反射探测器拼合来满足场景的外形,场景中不需要反射的地方,就不需要布置反射探测器了。

49fb4eddffc291c417b305565610ebda.png

反射探测器布置好后,需要重新烘焙,反射数据是通过烘焙获得的。如果熟悉了,烘焙之前就布置好反射探测器,免得重复烘焙。烘焙之后结果如下:

d8b9630103d1682f478405c878e02f01.png

上图反射效果不太好,下面我们为木地板加一个实时反射,效果如下:

abb99470051a9326e1d25740c87ff5f4.png

现在我们将玻璃的材质灯光关闭,用平行光来模拟阳光,重新烘焙(用时6分钟左右)并开启反射后效果如下:

83f67beb08f6ee0271802dd6a09f239c.png

在这个例子中引入了ps的后处理调色,以避免为达到好的色调和颜色及明暗对比反复烘焙浪费很多时间,好了,这个例子就讨论到这,本例只是简单介绍了Maya场景导入Unity后的简单美工流程,仅仅是抛砖引玉而已,要真正掌握Unity的美工来为自己的作品增加颜值和卖相,没人指导,单靠自己摸索几乎是不可能的,若有什么疑问可随时V询(qtpl_wx)小姐姐,如果您觉得小姐姐讲的有道理,恳请您给小姐姐的Unity模型预处理布光烘焙后处理特效美工场景优化实战视频教程一些支持,希望小姐姐的文章对使用Maya建模的用户了解Unity3d基本美工流程有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

angualarjsdemo

AngularJs学习笔记--Forms 原版地址:http://code.angularjs.org/1.0.2/docs/guide/forms 控件(input、select、textarea)是用户输入数据的一种方式。Form(表单)是这些控件的集合,目的是将相关的控件进行分组…

Java中Comparator比较器的使用以及使用lamba简化代码

代码例子&#xff1a; /*** 测试Comparator*/Testpublic void test17() {//原始方法Comparator<Integer> comparator new Comparator<Integer>() {Overridepublic int compare(Integer o1, Integer o2) {return Integer.compare(o1, o2);}};int compare1 compara…

数据库技术基础:数据库管理系统的功能介绍笔记

1、DBMS功能介绍1.1 数据定义数据库定义语言&#xff08;DDL&#xff09;&#xff1a;可以对数据库结构描述&#xff0c;包括外模式、模式、内模式的定义&#xff1b;数据库完整性定义&#xff1b;安全保密定义比如口令、级别和存取权限。这些定义存储在数据字典中是DBMS运行的…

charles乱码_基于iOS的Charles抓包实践

奇技指南在应用开发过程中&#xff0c;通过抓包调试服务端接口的场景时常出现。Charles和Wireshark是开发过程中最常用的两款软件。那么今天&#xff0c;让我们以iOS为例&#xff0c;聊一聊Charles抓包。本文来自360奇舞团QiShare团队投稿。在日常开发中&#xff0c;我们无法看…

那些程序员爆笑段子,扎心了…

1、特殊“2020是属于程序员的一年。”“怎么说&#xff1f;”“2020-1024996。”2、真相“你们程序员是不是没见过下班时候的太阳&#xff1f;”“也不是啦&#xff0c;夏天的时候还是能看到的。”“哦哦&#xff0c;夏天黑得比较晚。”“不是&#xff0c;是天亮得比较早。”3、…

lambda中sorted排序

准备工作&#xff0c;新建一个User类 使用stream排序操作&#xff08;默认ASC排序) stream倒序排序操作 sorted(Comparator.reverseOrder()) 代码例子&#xff1a; /*** lambda* sorted排序*/Testpublic void test19() {List<Integer> list new ArrayList<>();…

python中的括号不是西文吗_二级Python---python语言的基本语法元素(Day1)

一、基本输入输出函数Python中有三个重要的基本输入、输出函数&#xff0c;用于输入、转换和输出&#xff0c;分别是input()、eval()、print()。1.print()作用&#xff1a;输出运算结果&#xff1b;根据输出内容的不同&#xff0c;有三种用法。①、仅用于输出字符串&#xff0c…

chart.js 饼图显示百分比_实战PyQt5: 135-数据可视化之QChart绘制饼图

饼图是数据可视图表的基本类型&#xff0c;在QChart中&#xff0c;QPieSeries, QPieSlice处理饼图的绘制。QPieSeriesQPieSeries类以饼图形式显示数据。饼图系列由定义为QPieSlice对象的切片组成。切片可以具有任何值&#xff0c;因为QPieSeries对象计算切片的百分比与系列中所…

lambda中使用filter过滤

单一条件过滤 /*** 测试filter*/Testpublic void testFilter() {List<User> user new ArrayList<>();user.add(new User(1L, 18, "小明"));user.add(new User(2L, 20, "小王"));user.add(new User(3L, 28, "小刚"));user.add(new U…

Silverlight 打印

摘自&#xff1a;http://www.cnblogs.com/jiajiayuan/archive/2012/04/13/2444246.html Silverlight中的打印只有一个类&#xff0c;那就是PrintDocment这个对象来实现。下面我用两种方法来实现Silverlight的打印&#xff1a;第一种&#xff1a; private void btnPrint_Click(o…

数据库系统的体系结构知识笔记

1、集中式数据库系统分时系统环境下的集中式数据库系统结构诞生于20世纪60年代中期。当时的硬件和操作系统决定了分时系统环境下的集中式数据库系统构成早期的数据库技术的首选结构。数据和数据管理都是集中的&#xff0c;数据库系统的所有系统&#xff0c;从形式的用户到DBMS核…

mysql2014授权设置_mysql权限管理(2014-09-15)

本文比较碎片化&#xff0c;不过以问答的形式比较容易理解。如何查看mysql的当前登录的用户&#xff1f;select user();mysql -hlocalhost -uroot 与root192.168.11.100 区别&#xff1f;mysql -hlocalhost -uroot只能在本地进行登录&#xff0c;而root192.168.11.100不能在本…

python网站后台_Python 网站后台扫描脚本

Python 网站后台扫描脚本1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #!/usr/bin/python #codingutf-8 import sys import urllib import time url "http://123.207.123.228/" txt open(r"C:\Users\ww\Desk…

数据库系统的三级模式结构知识笔记

1、数据抽象的三个层次数据库系统利用三个层次划分来抽象来对用户屏蔽系统的复杂性、简化用户与系统的交互。1.1 物理层物理层属于最低级层次的抽象&#xff0c;描述数据在存储器上如何进行存储的。物理层会详细描述复杂的底层结构。1.2 逻辑层逻辑层属于中间层&#xff0c;用来…

Arrays.sort()排序

/*** Arrays.sort()排序* 默认升序*/Testpublic void test(){Integer[] result {1,4,7,9};Arrays.sort(result);for (int i 0;i<result.length;i)System.out.println(i);}

import package的问题

在新建class的时候除了名字还可以选择包名&#xff1a; 新建2个包名&#xff0c;然后在不同的包里写2个同名的类&#xff0c; 程序中导入另外一个包 package com.hs;import com.hy.Father; 当直接使用Father的时候提示是引用的com.hy.Father public static void main(String[] …

数据库技术基础:常见基本模型介绍笔记

1、层次模型层次模型采用树型结构表示数据与数据间的联系。层次模型中每个节点表示一个实体&#xff0c;实体之间的联系用节点之间的连线表示&#xff0c;并且除了根节点以外&#xff0c;其他节点有且仅有一个双亲节点。层次模型特点&#xff1a;记录之间的联系通过指针实现&am…

升序

/*** 升序*/Testpublic void test25() {List<Integer> array Stream.of(1, 8, 5, 3).collect(toList());// 升序排序array.sort(Integer::compareTo);System.out.println(array);}

数据库技术:数据存储和查询知识笔记

1、存储管理器存储管理器作用&#xff1a;负责数据库中数据的存查询和更新。存储管理器负责和文件系统交互&#xff0c;将不同的DML语句翻译成底层文件系统命令&#xff0c;通过这种方式原始数据就通过文件系统存储在磁盘上。存储管理器是存储底层数据和应用程序、以及向数据库…

lambda中orElse(null)使用

如果取得第一个元素&#xff0c;则用findFirst() 最后提取元素的时候&#xff0c;可以用&#xff1a;get或者orElse(null) 这里要注意的是&#xff0c;规范用法是orElse(null) 用get方法&#xff0c;如果filter中获取的是null&#xff0c;那么用get方法会抛出异常&#xff1…