Unity渲染路径 Rendering Paths_1_Deferred Lighting 延时光照

Deferred Lighting 延时光照

延时光照是有着最高保真度的光照和阴影的渲染路径。如果你有很多实时灯光,最好是使用延时光照。它需要一定水平的硬件支持,仅在 Unity Pro可用,移动设备上不支持。

延迟光照是一种当前最高级的能实现光线和阴影保真的渲染路径

  • 对于能影响任何物体的光线数量没有上限
  • 完全采用以每像素的方式评估光线,这等于意味着全部将以正常贴图的方式正确的和物体交互
  • 所有光线都能拥有信息缓存
  • 所有的光线都能产生阴影

延迟光照的优点:

  • 光照的开销与屏幕的光线尺寸成正比,不用担心光线所照射的物品的数量,少量光线 等价于 廉价的花费
  • 一致性,所有的光线的光照采用按像素为计算分割单位来计算。比如,不会有在大规模三角形情况下光照计算使计算性能发生崩溃的情况发生。

缺点:

  • 没有实时抗锯齿支持
  • 延迟光照不能处理半透明物体,也不能用在哪些使用前向渲染的物体之上
  • 有限的光照模式支持(Blinn-Phong)。所有光照以同样的方式计算,你不能够在不同的物体上采用完全不同的光照模式
  • 没有对接收阴影特征的支持和对光线遮罩剔除有限的支持

延时光照的需求:

  • 需要Unity专业版
  • 显示卡支持Shader Model 3.0(或更高),深度纹理渲染和双面模板缓冲特性。许多2004年后的显卡都支持:如Geforce Fx或更高,Radeon X1300或更高 Intel 965/ GMA X3100 或更高
  • 目前在移动平台不支持。

性能注意事项:

  • 延迟光照中实时光线的开销和光线照亮的像素值的数量成正比。而不取决于场景的复杂性。微小的点光源和聚光灯光源非常容易渲染。点光源或者完全或者部分被场景物体遮挡的聚光灯光源所照射的像素则被GPU所跳过,因此更加廉价。
  • 当然,拥有阴影的光源比没有阴影的光源要昂贵许多。使用延迟光照,光影投射器仍然需要为每个阴影投射渲染一次或者多次。而且产生阴影的光线着色器也比不产生阴影的光线着色器要昂贵许多。

实现细节:

当延迟光照生效时,在Unity中发生的渲染过程如下:

  • 基本渲染:被渲染的对象产生带有深度,法线,和反射量的屏幕空间缓冲
  • 光照渲染:使用上一步的缓冲计算出光照。结果放入另一个屏幕空间缓存
  • 最后渲染:物体再次渲染。取来已经计算好的光线和颜色纹理混合在一起,然后再加上环境光以及散射光照。

不能采用延迟光照技术的带阴影的物体在延迟光照渲染完后使用前向渲染路径处理。

Base Pass 基本渲染阶段

  • 基本渲染将每个物体都渲染一次。视图空间法线和高光强度被渲染进单一的ARGB32渲染纹理(法线在RGB通道,高光强度在A通道)中。如果平台和硬件支持将Z缓冲按纹理读取,那么深度不会被明确的渲染。如果Z缓冲不能被以纹理的方式访问,那么深度将在额外的渲染处理中被使用着色器替代技术渲染。
  • 基本渲染的结果是被屏幕内容填满的Z缓冲和带有法线和高光强度的渲染纹理。

Lighting Pass 光照渲染阶段

  • 光照渲染基于深度,法线和高光强度计算光照。光照是被屏幕空间被计算的,因此和屏幕复杂性无关。光照缓冲是一个单一的ARGGB32渲染纹理,纹理的RGB通道带有漫反射的光照信息,在A通道带有单一特定颜色的光照。光照值采用对数值编码以产生比通常ARGB32纹理所能达到的动态扩展范围。
  • 光照模式固定为Blinn-Phong。
  • 不能跨越临近平面的点光源和聚光灯光源被作为带有开启测试场景的Z缓冲3D形状渲染,这部分和完全屏蔽的点光源和聚光灯光源可以非常廉价的渲染。 跨越临近区域的平行光或者点光源能作为全屏四边形。
  • 如果一个带有阴影的光源生效,在这个处理过程中会被很好的渲染。注意阴影并不免费,阴影投射器需要开销来渲染,同时一个更加复杂的光线着色器需要应用。

Final Pass 最后渲染阶段

  • 最终渲染阶段产生最后渲染后的图像,到这一步,所有的对象都将被再次渲染,其中着色器将混合前一步生成的光源和纹理以及所有自发光照明。
  • 在最后渲染阶段光照贴图也被应用。靠近相机,使用实时光照,并仅烘焙间接光照。
时间: 2024-10-07 02:44:40

Unity渲染路径 Rendering Paths_1_Deferred Lighting 延时光照的相关文章

Unity渲染路径 Rendering Paths_3_Vertex Lit 顶点光照

Vertex Lit 顶点光照 顶点光照(Vertex Lit) 是最低保真度的光照.不支持实时阴影的渲染路径.最好是用于旧机器或受限制的移动平台上. 顶点照明渲染路径通常在一个通道中渲染物体,所有光源的照明都是在物体的顶点上进行计算的. 顶点照明渲染路径是最快的渲染路径并且有最广泛的硬件支持(然而,请记住:它无法工作在游戏机上). 由于所有的光照都是在顶点层级上计算的,此渲染路径不支持大部分的逐像素渲染效果:如,阴影.法线贴图.灯光遮罩.高精度的高光.

Unity渲染路径 Rendering Paths_2_Forward Rendering 正向渲染

Forward Rendering 正向渲染 正向渲染一个基于着色器的渲染路径.它支持逐像素计算光照(包括法线贴图和灯光Cookies)和来自一个平行光的实时阴影.在默认设置中,少数最亮的灯光在逐像素计算光照模式下渲染.其余的灯光计算对象顶点的光照. 根据影响物体的光源的不同,正向渲染路径用单个或多个通道来渲染物体.在正向渲染中,光源本身也会根据他们的设置和强度受到不同的对待. 实现细节 在正向渲染中,影响物体的最亮的几个光源使用逐像素光照模式.接下来,最多有4个点光源会以逐顶点渲染的方式被计算

Unity3D光照前置知识——Rendering Paths(渲染路径)及LightMode(光照模式)译解

简述 Unity supports different Rendering Paths. You should choose which one you use depending on your game content and target platform / hardware. Different rendering paths have different performance characteristics that mostly affect Lights and Shadows

Unity渲染路径

Unity支持不同的渲染路径.您应具体取决于你的游戏内容和目标平台/硬件来选择使用哪一个.不同的渲染路径有不同的特点和性能特点,主要影响灯光和阴影 如果图形卡不能处理选定的渲染路径,Unity将自动使用一个较低保真度的设置.因此,在GPU上不能处理延迟照明(Deferred Lighting),将使用正向渲染(Forward Rendering ).如果不支持正向渲染(Forward Rendering ),将使用顶点光照(Vertex Lit). Deferred Lighting延迟光照 延

RenderingPath 渲染路径

http://blog.csdn.net/lichaoguan/article/details/42554821 Deferred Lighting 延时光照 延时光照是有着最高保真度的光照和阴影的渲染路径.如果你有很多实时灯光,最好是使用延时光照.它需要一定水平的硬件支持,仅在 Unity Pro可用,移动设备上不支持. 更多细节见延时光照页面. ForwardRendering 正向渲染 正向渲染一个基于着色器的渲染路径.它支持逐像素计算光照(包括法线贴图和灯光Cookies)和来自一个平行

untiy 3d ShaderLab_第8章_3_ 单光贴图和Forward 渲染路径

8.3 单光贴图和Forward 渲染路径 8.3.1单光照贴图在VertexLit和Forward下面的不同表现 在单光照贴图的情况下,Camera的RenderingPath为VertexLit时,有一个不理想的地方就是被烘焙过的静态物体,默认的材质不会受到实时光照的影响.当然,可以通过提供自定义的材质改变这一行为,但是很麻烦.在RenderingPath为Forward时,这种麻烦就不会存在了,经过烘焙物体,Unity的默认材质会继续受到实时Pixel光源的影响. 8.3.2 准备可应用于

前向渲染路径细节 Forward Rendering Path Details

正向渲染路径细节 Forward Rendering Path Details Forward Rendering path renders each object in one or more passes, depending on lights that affect the object. Lights themselves are also treated differently by Forward Rendering, depending on their settings and

[Unity Shader笔记]渲染路径--Forward渲染路径

[Unity Shader笔记]渲染路径--Forward渲染路径 (2014-04-22 20:08:25) 转载▼ 标签: shader unity renderingpath forward 游戏 分类: UnityShader *ForwardBase.ForwardAdd的LightMode只能运行在Came为Forward.DeferredLighting的渲染模式下 *ForwardAdd这个Pass需要和ForwardBase一起使用,否则会被Unity忽视掉 * Forward

【Unity】12.2 通过Lighting Window设置相关参数

分类:Unity.C#.VS2015 创建日期:2016-05-19 一.简介 Unity 5.3.4的Lighting Window有3个选项卡:Object.Scene.Lightmaps. 二.Object(对象选项卡) 利用该选项卡,可以在场景中选择对象的子集并更改其设置,即选择哪些对象应该参与 GI 计算.这些选项设置将会始终应用于你选择的对象组. 1.All 选项卡的顶部是一组场景筛选按钮,即在层次视图中显示哪些类型 ︰ 灯光,渲染,地形.选择[All]将显示所有类型.如果选择其他按