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

本文介绍了Unity3D中的不同渲染路径,包括Deferred Shading和Forward Rendering,详细阐述了它们的概述、性能特点、硬件要求以及应用场景。 Deferred Shading提供最佳光照效果,但对硬件要求较高,适合复杂光照场景;而Forward Rendering适用于移动设备和对性能敏感的项目。
摘要由CSDN通过智能技术生成

简述

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. See render pipeline for technical details.

U3D支持不同的Rendering Path(渲染路径),开发者应该根据游戏内容和目标平台,硬件等来选择使用哪个Rendering Path。不同的Rendering Path具有不同的表现效果,这些不同之处多体现在光照和阴影方面。查阅Render Pipeline获取更多的细节。

The rendering Path used by your project is chosen in Player Settings. Additionally, you can override it for each Camera.

可以在Player Setting中设置默认的Rendering Path,也可以针对单独的Camera进行设置。
Player Setting中的Rendering Path设置

Camera中的Rendering Path设置

If the graphics card can’t handle a selected rendering path, Unity will automatically use a lower fidelity one. For example, on a GPU that can’t handle Deferred Shading, Forward Rendering will be used.

如果目标平台的显卡不能处理所选择的硬件,那么Unity会自动过渡至低保真档次Rendering Path去。比如有的GPU不能处理Deferred Shading,那就会自动采用Forward Rendering。


下面按从高效果至低效果的顺序开始讲解不同的Rendering Path。

Deferred Shading Rendering Path

概述

由于在移动开发中并不常用Deferred Shading,故本节不细述。

Shader中使用的LightMode Pass Tag: Deferred

Deferred Shading拥有最佳的光照和阴影效果。当场景中存在许多的实时光照时,使用Deferred Shading也是最佳的方案。当然Deferred Shading对硬件的要求稍高。

Deferred Shading是一种屏幕空间着色技术,之所以叫做Deferred(延迟的,延期的),是因为Shading的时机不是发生在第一个Pass的Vertex和Pixel/Fragment函数内,而是存在延迟,直到第二Pass的时候才执行。

Deferred Shading对影响物体的光源数量没有限制,所有的光源都是Per-Pixel(逐像素)光照,即所有光源都可以正确的和法线贴图得到正确的计算结果。另外,所有的光源都可以有Light Cookie和阴影。其性能开销与光源数量成正比,这意味着可以通过控制光照面积,减少单个物体受到光照影响的数量来获得性能方面的提升。Deferred Shading的另一个优点是结果能够很方便的预测,被个光源都是逐像素光照,具有一致的光照计算过程。

缺点在于,其不能真正的支持抗锯齿以及半透明物体(半透明物体是用 Forward Rendering 渲染路径)。同时也不支持Unity3D中的Mesh Renderer组件的Receive Shadows功能,对Culling Masks的支持也不完善,最多能使用四个Culling Mask。

Q: 什么是Light Cookie?
A: Light Cookie又被称作Cucoloris。是一种应用在电影摄制时的小技巧,如下两张图,具体的解释可以查看Wiki,Unity3D中的应用可以查看Unity3D Cookies手册Unity3d Spot Light Cookie,Unity3D中的实现视频过程可以点击这里
这里写图片描述这里写图片描述

要求

显卡应支持Multiple Render Target

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值