原文链接

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. 1077 Eight

    Eight Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 37738   Accepted: 15932   Special ...

  2. Python SyntaxError: invalid token

    python命名不能以数字开头,import时会报错

  3. 我与java的故事

    前奏 2012年开始接触java,当时还是大二因为博客园的原因我选择了java这门语言进行深入的学习.一开始看的是<动力节点>的教学视频,请原谅我已经忘记那个讲师叫什么名字.但是的项目叫E ...

  4. expdp用户10迁移到新环境11之正式实施

    expdp迁移源端数据库:cu    源端IP:   源端schema: xxx目标数据库:ora 目标IP:xxx操作流程:31日凌晨应用停,随后使用数据泵迁移,两套库迁移,迁移一套,迁移完毕应用确 ...

  5. 免app下载笔趣阁小说

    第一次更新:发现一个问题,就是有时候网页排版有问题的话容易下载到多余章节,如下图所示: 网站抽风多了一个正文一栏,这样的话就会重复下载1603--1703章节. 解决办法: 于是在写入内容前加了一个章 ...

  6. Ubuntu19.04配置SS+pac非全局代理

    1.先安装shadowsocks-qt5 sudo apt install shadowsocks-qt5 2.因为ss是sock5代理,而shell不支持socks5代理,只支持http/https ...

  7. ios 当margin-left margin-right 超过设备宽度

    ios 当margin-left  margin-right过长,相加超过  超过设备宽度时,导致页面不能上下滚动,目前尚未找到解决办法,记录一下

  8. 实现react路由动态加载的组件

    import React, { Component } from 'react'; import Loading from '../../base/nc_Loading'; /* * date: 20 ...

  9. mysql _触发器

    MySQL 触发器 MySQL包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行. 1.创建触发器在MySQL ...

  10. 一、Flask路由介绍

    Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是So ...