Unity3D光照贴图烘焙知识详解
今天简单地跟大家分享一下Unity5.0里面的光照贴图烘焙技术。由于时间只有20分钟,所以只能给大家一些概要性的介绍,没有办法深入,等到Unity5.0版本正式推出之后,我会给大家一些更详细的介绍。
接下来我会分3个部分跟大家讲解,第一部分讲解一下在以往的Unity版本中所采用的光照烘焙方法,以及Unity5.0中为什么会采用一套全新的光照 贴图烘焙方法。第二部分讲解Imagination的PowerVR Ray Tracing方法。第三部分讲解Geomerics的Enlighten方法。后两种方法都会被引入到Unity 5.0版本当中去。
首先我们来介绍Unity在4.X版本里面使用光照烘焙的方法。我们采用的是Autodesk的Beast,而我们在5.0版本中可能会把它彻底移除。 这是为什么呢?我们先介绍一下Beast的弱点吧。Beast只能烘焙静态的光照贴图,而不支持动态光照。一般而言,使用Beast的工作流程是:先建造 一个场景,然后在场景中布置各种光源,进而点击Bake操作键,接下来大家就可以喝喝咖啡,或者直接下班回家了,因为整个烘焙过程可能需要几分钟、几小 时,甚至是更长的时间。这样的过程还不一定得到正确的结果,如果发现前面的烘焙结果存在问题,还要重新返回到第一步,直至得到满意的烘焙结果。这样的过程 对于广大开发者来说肯定是一个不太友好的过程,势必会影响大家的工作效率。
那么既然我们说原来的方法存在着一定的问题,那么理想的光照方案是什么样的呢?第一,理想的方法不需要任何的预计算时间;第二,它能够让场景中所有与光 照有关的信息都能够实现动态改变,比如说动态改变光源、改变材质、改变环境光照,甚至改变场景中几何体的形状;第三,这样的一套方法还需要做到实时渲染, 这不仅包括Console设备,也包括我们手中的移动设备。可惜的是,这样一套理想的方案在目前是不存在的。很多的游戏开发厂商,甚至是硬件开发厂商,都 做过一些实践或者尝试,但是最终都失败了,都没能同时实现刚才所说的这几个目标。但是有一种绕行的方式,可以达到近似的效果。这就是Unity5.0当中 所采用的方法,我们会舍弃掉Beast,取而代之的是两种方案的结合,这就是PowerVR Ray Tracing和Enlighten的结合。
为什么要使用这两个方案的结合呢,我先给大家一个简要的概括:这两种方案都可以实现全局的GI,但是相比较而言的话,PowerVR Ray Tracing的特点是不需要烘焙过程,速度非常快,但是它的效果不是非常理想;而Enlighien的特点仍然需要一定的烘焙过程,但是效果非常好。更 具体一点说,我们会在Unity编辑器环境下采用PowerVR Ray Tracing方案,从而利用它快速实时的特点,你可以在场景中随时动态调整任何的东西,都能及时地看到调整的效果;一旦你把这个效果调整到了一个比较理 想的状态之后,就可以采用Enlighten来进行预处理和烘焙,从而达到更好的实时渲染效果。特别地,Enlighten具有很好的跨平台特性,能够在 从移动到Console等多个平台上实时地运行。
在Unity 5.0中,PowerVR Ray Tracing还有一个特点,就是它能够实现渐进式的效果过渡,一开始显示比较粗糙的、类似于马赛克式的效果,然后逐步迭代求精,可能在若干毫秒之后,就 会呈现出非常完美的效果。大家可能还会有一个问题,如果说我在Editor的模式下,采用PowerVR Ray Tracing调整出了一个比较好的效果,那么我怎么保证它和Enlighten最终取得的效果是近似相同的,如果完全不同,那我们就白花时间调整了!这 个肯定是大家不希望见到的结果。所以我们在Unity中引入PowerVR Ray Tracing时是进行了调整和改变的,使PowerVR Ray Tracing和Enlighten的输入是一致的,然后尽量使他们的输出也是一样的。
接下来我们来看一段视频,来看看PowerVR Ray Tracing在Unity编辑器中的使用方法。大家可以看到,我们可以动态地改变沙发的材质,并实时地预览到调整效果。此外,还可以动态调整场景中的体 积光源,也可以动态调整方向光的照射方向,以及聚光灯的位置,都可以实时地观看到调整结果。
再说一下Enlighten,它能够实现动态光照,也支持传统的烘焙过程,并能把两者无缝的拼接起来,最终保证在画面上面不会有任何的走样效果。这里, 我们也可以通过一个视频看看光照效果。这个场景中是一个太空舱,太空舱外面有一个环境光照,还有一个探视口,从外面有光线射进来。这个场景总的光照条件是 非常非常复杂的,有来自于窗外的环境光照,有一些直接的方向光源,有动态材质还有一些粒子效果,所有这些东西都可以动态地叠加起来,对于周围环境的影响也 是实时的。 文章出处【狗刨学习网】。
我们刚才简单地介绍了Unity5.0中将会采用的光照贴图烘焙方法,最后我来做一个简单的总结:在Unity的以往版本中,我们使用了Beast;在 5.0版本中,我们会舍弃Beast,进而采用PowerVR Ray Tracing和Enlighten的结合;PowerVR负责编辑器中的编辑模式,即所见即所得的模式;而Enlighten会负责游戏内的实时渲染。 最后,大家可能还有一个疑问,就是Enlighten会问会不会有效率问题。我们说,在一些相对中高端的设备上,Enlighten的运行效率是非常高 的;而在一些低端的设备上,Enlighten同时支持与Beast相似的静态光照贴图方式,因而也可以保证运行效率。
Unity3D光照贴图烘焙知识详解相关推荐
- Unity教程||Unity 渐进式光照贴图烘焙详解
随着各大计算平台的算力稳步增长,特别是GPU技术的不断进化,原先可望而不可及的技术比如实时光线追踪技术开始逐步走入玩家的视野.一些先锋厂商甚至已经超出Demo的范畴,开始正式推出支持实时光追的游戏. ...
- 不带头节点的链表有哪些缺点_23张图!万字详解「链表」,从小白到大佬!
链表和数组是数据类型中两个重要又常用的基础数据类型. 数组是连续存储在内存中的数据结构,因此它的优势是可以通过下标迅速的找到元素的位置,而它的缺点则是在插入和删除元素时会导致大量元素的被迫移动,为了解 ...
- 最全 VxLAN 知识详解
什么是VXLAN VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization o ...
- 趣谈网络协议-第二模块-底层网络知识详解:4陌生的数据中心2CDN和数据中心
趣谈网络协议-第二模块-底层网络知识详解:4陌生的数据中心2CDN和数据中心 1:CDN:你去小卖部取过快递么? 使用"中间仓库"来优化 网络中的"就近配送" ...
- 网络管理之基础知识详解
网络管理之基础知识详解 目录 3.1 网络的特征 3.2 拓扑结构 4.1 OSI简介 4.2 数据传输过程 4.3 分层作用 4.4 PDU 5.1 单播 5.2 多播 5.3 广播 5.4 三种通 ...
- WWDG 窗口看门狗 知识详解
目录 1. WWDG简介 2. WWDG功能框图解析 3. 启动方式 (1)软件启动 (2)硬件启动 4. WWDG超时图解及超时时间计算 1. WWDG简介 独立看门狗(Independent Wa ...
- GraphicsLab Project之光照贴图烘焙(一)
作者:i_dovelemon 来源:CSDN 日期:2018-05-19 主题:Radiosity Algorithm, Global Illumination, Barycentric Coordi ...
- Unity灯光烘焙设置详解
游戏场景中灯光照明的构成 现实生活中的光线是有反射.折射.衍射等特性的.对这些基本特性的模拟一直以来都是计算机图形图像学的重要研究方向. 在CG中,默认的照明方式都是不考虑这些光线特性的,因此出来的效 ...
- 网站流量日志系统知识详解----【点击流事件详解】
网站流量日志数据分析系统知识详解 1. 点击流数据模型 1.1 点击流概念 点击流(Click Stream)是指用户在网站上持续访问的轨迹.可以通过对网站日志的分析可以获得用户的点击流数据. 1.2 ...
最新文章
- 【学习笔记】超简单的多项式三角函数(含全套证明)
- Python --金字塔
- 图像超分辨率近两年几篇优秀论文及代码
- ThinikPhp 将数据库模型的增、删、改操作写入日志
- 2014-05-08 总结(补充)
- nmake错误:VC\bin\cl.EXE: 返回代码“0xc0000135“
- javaweb学习总结五(内省、beanUtils工具包)
- mysql ssl jdbc_【MySQLSSLJAVA】关于MySQL开启SSL后,jdbc的配置
- tcp udp区别优缺点_TCP和UDP的区别
- 《解析几何》吕林根,徐子道第四版 习题 1.4.7,1.4.8,1.4.9
- 图像处理——打开DICOM图像
- 西门子系列PLC教学视频资源4——S7-1200
- 跑腿源码之外卖人v9.1_9.2的升级过程For 9.0及小程序及(客户端,配送端,商户端)的二次编译方法
- ps一点等于多少厘米_ps像素和厘米换算(ps100像素等于多少厘米)
- nginx 连接php
- 人类的智能是如何产生的
- 微信公众平台 html,微信公众平台.html
- 有种音乐的名字叫做周杰伦
- web前端 html+css+javascript游戏网页设计实例 (网页制作课作业)
- 学习编程技术七个常见的疑问,你了解过吗?
热门文章
- GDB 调试遇到??的问题
- CCF-201512-4
- 2017第八届蓝桥杯C/C++ B组参赛题解
- MATLAB 的绘图:二维和三维
- 鸿蒙渊boss,鸿蒙异动 云光复生!《天下3》全新云光殿副本奥秘重重
- 如何在word中插入代码块
- 仿qq空间源码_【每日源码】一个Go语言编写的百度网盘客户端,强力推荐
- docker 操作mysql
- 大牛服务器超时位置模拟失败,大牛模拟定位掉线怎么办 | 手游网游页游攻略大全...
- css下拉菜单出现下划线,超帅的CSS菜单导航(当前项带下划线)