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的到 ...
随机推荐
- L2-022 重排链表 (25 分)
L2-022 重排链表 (25 分) 给定一个单链表 L1→L2→⋯→Ln−1→Ln,请编写程序将链表重新排列为 Ln→L1→Ln−1→L2→⋯.例 ...
- Datediff的使用(统计本日,昨日,本周,本月)
//统计本日,昨日,本周,本月添加的产品总数 //日期 DateTime DT = DateTime.Now; string day=DT.Date.ToS ...
- css内外边距属性
盒子模型: 所有HTML元素可以看作盒子,在CSS中,"box model"是用来设计和布局时 使用. CSS盒模型本质上是一个盒子, 封装周围的HTML元素, 它包括:边距,边框 ...
- linux服务器ssh免密登录
环境:两台服务器,Park01.Park02,配置ssh免密登录 在Park01执行:ssh-keygen 然后一直回车 生成节点的公钥和私钥,生成的文件会自动放在/root/.ssh目录下 然后 ...
- scrapy学习笔记之hello world
1. 创建项目文档 在目标路径下,打开命令行,使用如下命令创建项目,例如项目名称为 "tutorial": scrapy startproject tutorial - 创建项目时 ...
- AI之旅(5):正则化与牛顿方法
前置知识 导数,矩阵的逆 知识地图 正则化是通过为参数支付代价的方式,降低系统复杂度的方法.牛顿方法是一种适用于逻辑回归的求解方法,相比梯度上升法具有迭代次数少,消耗资源多的特点. 过拟合与欠 ...
- JVM 性能调优 -Xmx、-Xms、-Xss
1. -Xmx 设置应用程序(不是JVM)内存可用大小 ( 如果程序要花很大内存的话,可以修改缺省配置,但是不能超过机器的内存),即最大可用Heap的大小. 2. -Xms 设置初始Heap的大小 ...
- MySQL-01-基础
大纲 1)mysql存储结构: 数据库 -> 表 -> 数据 sql语句 2)管理数据库: 增加: create database 数据库 default character utf8 ...
- 寒假作业 pta编程总结3
实验代码: 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C),或者什么也不放(X).捕 ...
- zabbix安装源
使用zabbix安装源可以避免版本不同的问题,自己根据自己的需求选择对应的版本即可 http://repo.zabbix.com/zabbix/