淺談Unity 5.4新功能:Light Probe Proxy Volume
原文連結
Unity 5.4進入到Beta的階段。当中一個特別的功能是光照探頭代理Light Probe Proxy Volume(LPPV)。本篇會向大家介紹什麼是LPPV,並介紹它怎样運作
對Unity5.4beta有興趣能够從這裡下載,必須有Pro的序號才干使用。
什麼是光照探頭代理
LPPV是一個能幫無法用烘焙光照的超大動態物件(Dynamic object)把很多其它光照資料轉出的元件,像是皮網格或者粒子系統。沒錯! 代表烘焙光照能烘粒子系統的資訊。讚吧?

怎样使用LPPV元件
使用LPPV元件必須要跟著一組光探頭組(Light Probe Group)。能够從 Component -> Rendering -> Light Probe Proxy Volume找到它,在預設情況下。這個元件看起來是這樣:

這個元件须要加到像是有網格甚至光照探頭組的遊戲物件中,想要用到LPPV的物件须要有MeshRenderer或者Renderer元件。並將Light Probes屬性設為“Use Proxy Volume”。

你能够透過指定Proxy Volume Override來使用其他GameObject上的LPPV元件。仅仅需拖放這個物件到不论什么你想要使用它的Renderer元件的屬性裡。
比如:將LPPV元件加到光照探頭組物件中,那麼你就能够透過Proxy Volume Override屬性在全部Renderer元件中共用它:

設定邊界:
- Automatic Local
- Automatic World
- Custom
Automatic Local:預設屬性,邊界會在本地空間內計算,插值光探頭位置將在這個範圍內產生。計算包括Renderer和它底下階層全部有設定Use Proxy Volume的Renderer元件,Automatic World也是一樣算法。

這兩種選項應該與Proxy Volume Override屬性配合使用在其他的Renderer元件上。另外你也能够將同一個LPPV元件指定到最上層的父物件來使全部下層的物件使用這個LPPV元件。
World和Local的區別在於,在Local模式下當一個階層太多的子物件嘗試使用父物件的LPPV元件會在計算邊界時比较耗效能,但計算出來的邊界尺寸也許會更小,那麼光照資料就會更確實。
Custom:這個模式能用工具來自訂邊界,從場景裡直接編輯或是從inspector介面來改动大小。這個模式邊界是在物件的本地空間中設定的,所以你须要確定全部帶有Renderer元件的物件都要在LPPV的範圍內。

設置解析度/密度:
設定完邊界之後,你還须要考慮代理的密度和解析度。在Resolution Mode底下有兩個選項:
Automatic:自動 - 預設屬性。用來給密度設定一個值,比如每單位的探頭數量。每單位在X,Y,Z軸上的探頭數量計算,數量取決於邊界大小。
Custom:自訂 - 用下拉式功能表來設定X,Y,Z軸上解析度的值。值從1开始以2的次方遞增最大到32,所以你最多能够有32x32x32 個內插(Interpolation)探頭

使用LPPV時效能的考量:
請記住每批64個內插光探頭的內插計算大概须要0.15毫秒的CPU運算(i7-4Ghz)(用Profiler觀察的數據)。光探頭內插計算能够是多執行緒的,但不论什么小於或等於64個內插光照探頭不會用多緒而仅仅在主執行緒中執行。
所以當你使用Unity內建的Profiler在Timeline視圖你會看到BlendLightProbesJob在主執行緒上,假设你將內插光探頭數量添加到超過64個,你就會在工作執行緒上看到BlendLightProbesJob:

當仅仅有一批次的64個內插光探頭時將仅仅會在主執行緒上計算,當有多個批次(大於64)的時候仅仅會在主執行緒上計算一批,其他的會分配到工作執行緒上。但這個行為仅仅針對單個LPPV。
假设你有多個LPPV,並且都少於64個內插光探頭的話。那他們都會主執行緒上運作。
硬體需求:
使用ShadeSHPerPixel的粒子系統著色器的範例:
Unity的標準著色器是支援這個功能的。但假设你想使用自訂Shader。能够用ShadeSHPerPixel函式。
這個範例說明怎样使用這個函式:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
Shader"Particles/AdditiveLPPV"Properties{ _MainTex"Particle,"white" _TintColor"Tint,}Category { Tags"Queue"="Transparent"="True"="Transparent"} Blend ColorMask Cull SubShader { Pass { CGPROGRAM #pragma #pragma #pragma #pragma // #pragma #include // #include fixed4 sampler2D struct { float4 float3 fixed4 float2 }; struct { float4 fixed4 float2 UNITY_FOG_COORDS(1) float3 float3 }; float4 v2f { v2f o.vertex o.worldNormal o.worldPos o.color o.texcoord UNITY_TRANSFER_FOG(o,o.vertex); return } fixed4 { half3 half3 fixed4 >col.xyz UNITY_APPLY_FOG_COLOR(i.fogCoord,// return } ENDCG } } }} |
淺談Unity 5.4新功能:Light Probe Proxy Volume的更多相关文章
- Light Probe Proxy Volume
[Light Probe Proxy Volume] The Light Probe Proxy Volume (LPPV) component allows you to use more ligh ...
- Unity User Group 北京站:《Unity5.6新功能介绍以及HoloLens开发》
时间一转眼从春天来到了初夏,Unity User Group(以下简称UUG)活动也迎来了第七期.我们面向Unity3D开发从业者以及未来想从事Unity3D开发的学生群体的UUG活动这次仍然在海淀 ...
- unity5.0新功能
原作者 只待苍霞 章节1: 先来两个最关心的新功能, 第一章先讲PBS, 第二章讲光影GI.说到PBS, 首先应该想到的是Unity自带的两个新的Shader, 分别是Standard以及Standa ...
- unity5.0新功能-布料、动画系统
原作者:只待苍霞 这一章讲一下布料系统, 这次的布料系统有很大的改良.Unity4中, 需要对SkinnedMeshRenderer使用SkinnedCloth, 或者对Cloth Renderer使 ...
- Unity5 新功能解析--物理渲染与standard shader
Unity5 新功能解析--物理渲染与standard shader http://blog.csdn.net/leonwei/article/details/48395061 物理渲染是UNITY5 ...
- 看了一下unity5.6的新功能 以及Timeline
3月31日unity5.6发布,然而timeline(前sequence模块)被delay到unity 2017.上个星期官方又发布了unity 2017的beta版本 抽空看了下 (unity5.6 ...
- 【Linux】Ubuntu18.04镜像下载,新功能介绍
一.Ubuntu18.04镜像下载 官方下载地址:http://releases.ubuntu.com/18.04/ 官方64位iso下载地址:http://releases.ubuntu.com/1 ...
- 代码演示C#各版本新功能
代码演示C#各版本新功能 C#各版本新功能其实都能在官网搜到,但很少有人整理在一起,并通过非常简短的代码将每个新特性演示出来. 代码演示C#各版本新功能 C# 2.0版 - 2005 泛型 分部类型 ...
- 从淘宝 UWP 的新功能 -- 比较页面来谈谈 UWP 的窗口多开功能
前言 之前在 剁手党也有春天 -- 淘宝 UWP ”比较“功能诞生记 这篇随笔中介绍了一下 UWP 淘宝的“比较”新功能呱呱坠地的过程.在鲜活的文字背后,其实都是程序员不眠不休的血泪史(有血有泪有史) ...
随机推荐
- url传递中文的解决方案总结
File文件控件,选中文件(图片,flash,视频)即立即预览显示 .Net刷新页面的几种方式 Attributes.Add用途与用法(C#) url传递中文的解决方案总结 byte[] bytes ...
- apache-maven-3.0.4-bin.zip
http://zhidao.baidu.com/share/2a8974fd1546ef5f11ad9cccb3cabf88.html apache-maven-3.0.4-bin.zip
- ORA-12012 Error on auto execute of job "SYS"."ORA$AT_OS_OPT_SY_<NN> in 12.2.0 Database
报错如下:ORA-12012: error on auto execute of job "SYS"."ORA$AT_OS_OPT_SY_88"ORA-2000 ...
- Java经典算法案例
笔试中的编程题3 JAVA经典算法40例[程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? ...
- vue.js中compted与model的区别
在p便签内写的{{reversemessage}}方法,若js里对应的函数为computed则不需要加上括号 若js里对应的函数为model则应该将{{reversemessage}}改为{{reve ...
- Java Web学习总结(21)——http协议响应状态码大全以及常用状态码
http协议响应状态码大全以及常用状态码 当我们在浏览网页或是在查看服务器日志时,常会遇到3位数字的状态码,这3位数字是什么意思呢?其实,这3位数字是HTTP状态码,用来表示网页服务器HTTP响应状态 ...
- Java Web学习总结(10)——Session详解
摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术.本文将详细讨论session的工作机制并且对在Java ...
- DataGirdView 常用操作
1.将数据源的某列添加到已有DataGirdView的列 例如:将文件夹下所有文件名添加到DataGirdView 的文件名一列,图片如下: 首先在datagridview把文件名列的DATAPROP ...
- Volley简单学习使用五—— 源代码分析三
一.Volley工作流程图: 二.Network 在NetworkDispatcher中须要处理的网络请求.由以下进行处理: NetworkResponse networkResponse = ...
- UVa 10101 - Bangla Numbers
题目:将数字数转化成数字加单词的表示形式输出. 分析:数论.简单题.直接分成两部分除10000000的商和余数,分别输出就可以. 说明:注意输入为数字0的情况,还有long long类型防止溢出. # ...