Unity Graphics(一):选择一个光照系统
原文链接
Choosing a Lighting Technique
https://unity3d.com/learn/tutorials/topics/graphics/choosing-lighting-technique?playlist=17102
Realtime Lighting(实时光照)
默认情况下,Unity中的光源都是实时的(realtime),实时光源向场景中投射直接光照(direct light)并且每帧更新。
光线从实时光源发出,与物体相交后不会反弹。为了创建一个更真实的场景,我们需要使用全局光照(Global Illumination)技术。
Baked GI Lighting(烘焙全局光照)
烘焙lightmap,光源在静态物体上的光照效果预先计算好并且保存到光照贴图中。
光照贴图(lightmaps)同时包含直接光照(direct light)和间接光照(indirect light)效果。
在游戏运行中,lightmaps不可更改。
Precomputed Realtime GI Lighting(预计算实时全局光照)
传统的方法,在场景中改变光照条件时静态lightmaps不会有反应。Precomputed Realtime GI技术支持交互式更改场景中的光照条件。
使用此技术,可以创建丰富的全局光照环境,支持实时更改光照条件。举个例子:Time of day Lighting system,光源的位置和颜色随时间变化,传统的Baked GI无法实现此功能。
将耗时的光照计算过程从游戏过程中剥离,预先计算好。这称之为离线计算过程(offline process)
在创建真实感场景时,我们非常希望将间接光照(indirect light)保存到lightmap当中。更好的光照细节(比如效果很棒的阴影)需要更多的性能开销。假设我们不需要如此复杂的光照细节表现,就可以大大降低GI分辨率。
减少细节表现,降低GI分辨率,同时也减少游戏运行中的运算量。当我们实时修改光源位置、颜色、强度,甚至物体表面属性时,可以更快速地更新GI。
为了加速Precomputing,Unity不直接处理texels,而是先将场景中的静态物体转换为低分辨率的近似模型,此过程叫:集群(clusters)
传统方法在计算GI时,会追踪光线在场景中弹来弹去。这是一个非常耗时的计算过程,无法进行实时运算。取而代之,Unity在预计算中有一个阶段称之为:Light Transport,Unity使用光线追踪算法计算物体表面集群之间的关系。通过将三维场景世界简化为一个关系网络,在性能关键的游戏运行时我们不再需要光线追踪计算。
我们把三维世界转化为一个简化的数学模型,同时在游戏过程中可以传入不同的光照等参数。这意味着在游戏过程中,我们可以修改光源位置、颜色、强度或者物体表面属性,并且可以快速看到GI效果。
Unity Graphics(一):选择一个光照系统的更多相关文章
- Unity 5 中的全局光照技术详解
貌似是某位好人翻译的 https://unity3d.com/cn/learn/tutorials/topics/graphics/unity-5-lighting-and-rendering#rd? ...
- Unity 5 中的全局光照技术详解(建议收藏)
本文整理自Unity全球官方网站,原文:UNITY 5 - LIGHTING AND RENDERING (文章较长,请耐心阅读)简介全局光照,简称GI,是一个用来模拟光的互动和反弹等复杂行为的算法, ...
- Unity Lighting(一)光照练习
Unity 2018.1.2f1 原文链接:https://www.youtube.com/watch?v=VnG2gOKV9dw Unity Lighting练习最终效果 眼睛.光源与物体 光学基础 ...
- 超强教程:如何搭建一个 iOS 系统的视频直播 App?
现今,直播市场热火朝天,不少人喜欢在手机端安装各类直播 App,便于随时随地观看直播或者自己当主播.作为开发者来说,搭建一个稳定性强.延迟率低.可用性强的直播平台,需要考虑到部署视频源.搭建聊天室.优 ...
- 如何设计一个RPC系统
版权声明:本文由韩伟原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/162 来源:腾云阁 https://www.qclou ...
- 选择一个利于SEO的空间
大家好.今天蜗牛将给大家分享怎么选择一个利于SEO的站点空间. 一.什么是站点空间? 站点空间,是用来存你的站点的HTML,.图片.文件等的一个远程硬盘空间(就像你的电脑里面的空间一回事儿).依据不同 ...
- 如何设计一个 RPC 系统
本文由云+社区发表 RPC是一种方便的网络通信编程模型,由于和编程语言的高度结合,大大减少了处理网络数据的复杂度,让代码可读性也有可观的提高.但是RPC本身的构成却比较复杂,由于受到编程语言.网络模型 ...
- Confluence 6 选择一个外部数据库
注意: 选择一个合适的数据库通常需要花费很多时间.同时 Confluence 自带的 XML 数据备份和恢复功能通常也不适合合并和备份有大量数据的数据库.如果你想在系统运行后进行数据合并,你通常需要使 ...
- Unity Jobsystem 详解实体组件系统ECS
原文摘选自Unity Jobsystem 详解实体组件系统ECS 简介 随着ECS的加入,Unity基本上改变了软件开发方面的大部分方法.ECS的加入预示着OOP方法的结束.随着实体组件系统ECS的到 ...
随机推荐
- python小白的自述
python语言作为目前受用面比较广泛的一种语言,具有简单易学,功能强大的特点.初次接触python完全是由于好奇心,正是因为python的出现,才让我觉得编程不是那么的神秘了.不过作为一个编程小白来 ...
- eclipse使用技巧心得分享
eclipse使用技巧心得分享 习惯了eclipse开发java程序,公司最近的项目都是idea开发的,同时android studio也是idea原型开发的,在学android开发,所以脱离ec ...
- Findout之为什么公司内部不能使用SSH协议连接外网服务器
今天在公司学习Linux的过程中,想试着像在Windows中操作Github一样对代码进行克隆,只不过是使用命令行的方式.根据一篇博文(Linux下初次使用Github配置)进行了配置,当我进行到第二 ...
- Linux 文件恢复
可以恢复,使用系统自还工具debugfs来还原删除的文件 步骤详解 1. 查看一下当前系统版本号,及文件系统格式 [root@localhost ~]# df -T Filesystem Type 1 ...
- 七、Django模型基础第二节——常用查询
1 常用的模型字段类型 官方文档链接: https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-types 常用的字段类型 模型字 ...
- Ubuntu 16.04 环境下配置apache2.4 + php5.6
相信用惯了Windows的朋友一开始接触Linux是很崩溃的,因为很多东西都是通过命令行来完成的,包括安装绝大多数的开发工具以及环境,那么在Ubuntu下其实可以直接通过apt-get指令来安装apa ...
- Python学习之路基础篇--10Python基础,函数进阶
1 命名空间 对于Python 来说命名空间一共有三种 1 内置命名空间 —— Python 解释器 就是Python 解释器一启动就可以使用的名字,储存在内置命名空间中.内置的名字在启动解释器的时候 ...
- 禁止用su切换到root
http://jie388.blog.51cto.com/1433454/920492
- Java程序第一次作业
public class yjj { public static void main(String[] args) { System.out.println("Hello Java" ...
- Spring配置之标签的三两事
今天看到项目的配置,看后就当是复习了.懵懵懂懂工作两年,感觉虽然自己一直在使用spring作为工具,但是也没有涉及到spring的方方面面,今天的研究从一次无意的自动补全开始,还是那句话,不爱研究的程 ...