原文链接

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(一):选择一个光照系统的更多相关文章

  1. Unity 5 中的全局光照技术详解

    貌似是某位好人翻译的 https://unity3d.com/cn/learn/tutorials/topics/graphics/unity-5-lighting-and-rendering#rd? ...

  2. Unity 5 中的全局光照技术详解(建议收藏)

    本文整理自Unity全球官方网站,原文:UNITY 5 - LIGHTING AND RENDERING (文章较长,请耐心阅读)简介全局光照,简称GI,是一个用来模拟光的互动和反弹等复杂行为的算法, ...

  3. Unity Lighting(一)光照练习

    Unity 2018.1.2f1 原文链接:https://www.youtube.com/watch?v=VnG2gOKV9dw Unity Lighting练习最终效果 眼睛.光源与物体 光学基础 ...

  4. 超强教程:如何搭建一个 iOS 系统的视频直播 App?

    现今,直播市场热火朝天,不少人喜欢在手机端安装各类直播 App,便于随时随地观看直播或者自己当主播.作为开发者来说,搭建一个稳定性强.延迟率低.可用性强的直播平台,需要考虑到部署视频源.搭建聊天室.优 ...

  5. 如何设计一个RPC系统

    版权声明:本文由韩伟原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/162 来源:腾云阁 https://www.qclou ...

  6. 选择一个利于SEO的空间

    大家好.今天蜗牛将给大家分享怎么选择一个利于SEO的站点空间. 一.什么是站点空间? 站点空间,是用来存你的站点的HTML,.图片.文件等的一个远程硬盘空间(就像你的电脑里面的空间一回事儿).依据不同 ...

  7. 如何设计一个 RPC 系统

    本文由云+社区发表 RPC是一种方便的网络通信编程模型,由于和编程语言的高度结合,大大减少了处理网络数据的复杂度,让代码可读性也有可观的提高.但是RPC本身的构成却比较复杂,由于受到编程语言.网络模型 ...

  8. Confluence 6 选择一个外部数据库

    注意: 选择一个合适的数据库通常需要花费很多时间.同时 Confluence 自带的 XML 数据备份和恢复功能通常也不适合合并和备份有大量数据的数据库.如果你想在系统运行后进行数据合并,你通常需要使 ...

  9. Unity Jobsystem 详解实体组件系统ECS

    原文摘选自Unity Jobsystem 详解实体组件系统ECS 简介 随着ECS的加入,Unity基本上改变了软件开发方面的大部分方法.ECS的加入预示着OOP方法的结束.随着实体组件系统ECS的到 ...

随机推荐

  1. (转)es6中object.create()和object.assign()

    今天学习javascript面向对象,在学习Obejct方法时了解到create方法,偶像想起之前使用的assign方法,顺带查找一番,感觉这篇博客讲解详细,遂转载. 先简单提一下装饰器函数,许多面向 ...

  2. 阿里云ecs使用补充说明

    前置文章:http://www.cnblogs.com/newbob/articles/5400495.html 阿里云ecs使用心得的一些个人补充部分 一.在yum安装node/npm的过程中出现的 ...

  3. 《Java编程思想》读书笔记-类与对象

    欢迎各位读者关注我的微信公众号,共同探讨Java相关技术.生命不止,学习不休! 也许你慢慢地对程序有了这样的认识:程序只是一些列带有方法的对象的组合,这些方法以其它对象为参数,可在任何地方返回,并发送 ...

  4. java-16习题

    编写程序,产生10组彩票的“35选7”玩法的7个随机数.(-)随机数不能重复. 范围[,) import java.util.Iterator; import java.util.Random; im ...

  5. PAT乙级考前总结(三)

    特殊题型 1027 打印沙漏 (20 分) 题略,感觉有点像大学里考试的题.找规律即可. #include <stdio.h>#include <iostream>using ...

  6. [Java Web学习]JSP中uri="http://java.sun.com/jsp/jstl/core"报红错误

    在官网下载jstl.jar和standard.jar,问题解决.

  7. P1181 数列分段Section I

    题目描述(跳转) 对于给定的一个长度为NN的正整数数列A_iAi​,现要将其分成连续的若干段,并且每段和不超过MM(可以等于MM),问最少能将其分成多少段使得满足要求. 输入输出格式 输入格式: 第1 ...

  8. 8. Security-oriented operating systems (面向安全的操作系统 5个)

    这款出色的可启动live CD的Linux发行版来自于Whax和Auditor的合并. 它拥有各种各样的安全和取证工具,并提供丰富的开发环境. 强调用户模块化,所以用户可以轻松地定制以包括个人脚本,附 ...

  9. 发送ajax步骤

    1.创建异步对象  一般命名为xhr     var xhr = new XMLHttpRequest();   2. 设置请求行 open(请求方式,请求url)     1.get 需要在url后 ...

  10. html基础学习笔记1

    <!DOCTYPE html> 声明为 HTML5 文档  <html> 元素是 HTML 页面的根元素 <head> 元素包含了文档的元(meta)数据,如 &l ...