最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

光照探針代理體 (Light Probe Proxy Volume) 組件

2020-06-12 10:01 作者:unity_某某師_高錦錦  | 我要投稿


光照探針代理體


光照探針代理體?(LPPV) 組件允許不能使用烘焙光照貼圖的大型動(dòng)態(tài)游戲?qū)ο螅ɡ?,大型粒子系統(tǒng)或蒙皮網(wǎng)格)使用更多光照信息。

默認(rèn)情況下,探針光照渲染器從插入于場(chǎng)景內(nèi)周?chē)庹仗结樦g的單個(gè)光照探針接受光照。因此,游戲?qū)ο笤谡麄€(gè)表面上具有恒定的環(huán)境光照。此光照使用球諧函數(shù),因此具有旋轉(zhuǎn)漸變,但沒(méi)有空間漸變。在更大的游戲?qū)ο蠡蛄W酉到y(tǒng)上,這一點(diǎn)更明顯。游戲?qū)ο笊系墓庹张c錨點(diǎn)處的光照相匹配,如果游戲?qū)ο罂缭焦庹諠u變,游戲?qū)ο蟮哪承┎糠挚赡芸雌饋?lái)不正確。

__光照探針代理體__組件在包圍體內(nèi)生成插值光照探針的 3D 網(wǎng)格。可以在該組件的 UI 中指定此網(wǎng)格的分辨率。插值光照探針的球諧函數(shù) (SH) 系數(shù)將上傳到 3D 紋理中。隨后在渲染時(shí)會(huì)對(duì)包含 SH 系數(shù)的 3D 紋理進(jìn)行采樣以便計(jì)算對(duì)漫射環(huán)境光照的影響。這會(huì)向探針光照游戲?qū)ο筇砑涌臻g漸變。

標(biāo)準(zhǔn)著色器支持此功能。為了將此功能添加到自定義著色器,請(qǐng)使用?ShadeSHPerPixel?函數(shù)。要了解如何實(shí)現(xiàn)此函數(shù),請(qǐng)參閱本頁(yè)底部的粒子系統(tǒng)示例著色器代碼示例。

何時(shí)使用該組件

Unity 中的大多數(shù)渲染器組件都包含光照探針。光照探針有三個(gè)選項(xiàng):

  • __Off__:渲染器不使用任何插值光照探針。

  • __Blend Probes__(默認(rèn)值):渲染器使用一個(gè)插值光照探針。

  • __Use Proxy Volume__:渲染器使用插值光照探針的 3D 網(wǎng)格。

將?Light Probes?屬性設(shè)置為?Use Proxy Volume?時(shí),游戲?qū)ο蟊仨氁堰B接__光照探針代理體__ (LPPV) 組件??梢栽谕挥螒?qū)ο笊咸砑?LPPV 組件,也可通過(guò)?Proxy Volume Override?屬性使用(借用)來(lái)自另一個(gè)游戲?qū)ο蟮?LPPV 組件。如果 Unity 無(wú)法在當(dāng)前游戲?qū)ο蠡?Proxy Volume Override 游戲?qū)ο笾姓业?LPPV 組件,則會(huì)在渲染器的底部顯示一條警告消息。

示例

使用光照探針代理體組件的簡(jiǎn)單網(wǎng)格渲染器的示例

在以上場(chǎng)景中,地板上有兩個(gè)平面使用發(fā)出大量光線(xiàn)的材質(zhì)。請(qǐng)注意:

  • 使用 LPPV 組件時(shí),環(huán)境光會(huì)在幾何體上發(fā)生變化。應(yīng)使用一個(gè)插值光照探針在幾何體的每一側(cè)創(chuàng)建一個(gè)恒定顏色。

  • 幾何體沒(méi)有使用靜態(tài)光照貼圖,球體表示插值光照探針。它們是?Gizmo Renderer?的一部分。

如何使用該組件

生成插值光照探針 3D 網(wǎng)格的區(qū)域受?Bounding Box Mode?屬性的影響。

Bounding Box Mode

有三個(gè)可用選項(xiàng):

Bounding Box Mode:????????????????????????????????????????????????????????功能:

Automatic Local__(默認(rèn)值)| 此模式下將計(jì)算局部空間包圍盒。在此包圍盒內(nèi)生成插值光照探針位置。如果渲染器組件未附加到游戲?qū)ο?,則會(huì)生成默認(rèn)包圍盒。包圍盒計(jì)算圍繞當(dāng)前渲染器進(jìn)行,并將沿著層級(jí)視圖往下的所有渲染器的?Light Probes__ 屬性設(shè)置為?Use Proxy Volume

Automatic World?????????????????????????????此模式下圍繞當(dāng)前渲染器計(jì)算包圍盒,且沿著層級(jí)視圖往下的所有渲染器的?Light Probes?屬性均設(shè)置為?Use Proxy Volume。該包圍盒采用世界空間。

Custom????????????????????????????????????????????此模式下使用自定義包圍盒。在游戲?qū)ο蟮木植靠臻g中指定包圍盒。提供了包圍盒編輯工具。可以修改 UI 中的?Size?和?Origin?值來(lái)手動(dòng)編輯包圍體。

Editor

Automatic Local?與?Automatic World?之間的主要區(qū)別在于,在?Automatic Local?中,大型層級(jí)視圖中的游戲?qū)ο笫褂脕?lái)自父游戲?qū)ο蟮南嗤?LPPV 組件時(shí),包圍盒的計(jì)算需要耗費(fèi)更多資源。然而,生成的包圍盒大小可能更小,這意味著光照數(shù)據(jù)更緊湊。

包圍體內(nèi)的插值光照探針的數(shù)量受?Proxy Volume Resolution?屬性的影響。有兩個(gè)選項(xiàng):

  • __Automatic__(默認(rèn)值)- 使用指定的單位面積的插值光照探針數(shù)量以及包圍盒大小來(lái)計(jì)算每個(gè)軸上的分辨率。

  • Custom?- 允許在每個(gè)軸上指定不同分辨率(見(jiàn)下文)。

Setting

注意:每個(gè)軸上的最終分辨率必須是 2 的冪,并且分辨率的最大值為 32。

Probe Position Mode?指定插值光照探針相對(duì)于單元格中心的位置。在某些插值光照探針穿過(guò)墻壁或其他幾何體并導(dǎo)致光照泄漏時(shí),此選項(xiàng)可能很有用。以下示例使用 4x4 網(wǎng)格分辨率來(lái)顯示 2D 視圖中的?Cell Corner?與?Cell Center?之間的區(qū)別:

Probe Position Mode

比較圖像

1.使用標(biāo)準(zhǔn)著色器的簡(jiǎn)單網(wǎng)格渲染器:

![具有光照探針代理體(分辨率:4x1x1)](../uploads/Main/LightProbeProxyVolumeExample1.png) ![沒(méi)有光照探針代理體](../uploads/Main/LightProbeProxyVolumeExample2.png)

2.使用標(biāo)準(zhǔn)著色器的帶蒙皮的網(wǎng)格渲染器:

![具有光照探針代理體(分辨率:2x2x2)](../uploads/Main/LightProbeProxyVolumeExample3.png) ![沒(méi)有光照探針代理體](../uploads/Main/LightProbeProxyVolumeExample4.png)


使用 ShadeSHPerPixel 函數(shù)的粒子系統(tǒng)示例著色器

Shader "Particles/AdditiveLPPV" {?

Properties { ? ?

_MainTex ("Particle Texture", 2D) = "white" {} ? ?

_TintColor ("Tint Color", Color) = (0.5,0.5,0.5,0.5)?

}?

Category { ? ?

Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }

Blend SrcAlpha One

ColorMask RGB ? ?

Cull Off Lighting Off ZWrite Off ? ? ? ?

SubShader { ? ? ? ?

Pass {

CGPROGRAM ? ? ? ? ? ?

#pragma vertex vert ? ? ? ? ? ?

#pragma fragment frag ? ? ? ? ? ?

#pragma multi_compile_particles ? ? ? ? ? ?

#pragma multi_compile_fog ? ? ? ? ? ?

// 指定目標(biāo) ? ? ? ? ? ?

#pragma target 3.0 ? ? ? ? ? ? ? ? ? ? ? ?

#include "UnityCG.cginc" ? ? ? ? ? ? ? ? ? ? ? ?

// 必須包含此頭才能訪(fǎng)問(wèn) ShadeSHPerPixel ? ? ? ? ? ?

#include "UnityStandardUtils.cginc" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

fixed4 _TintColor; ? ? ? ? ? ?

sampler2D _MainTex; ? ? ? ? ? ? ? ? ? ? ? ?

struct appdata_t { ? ? ? ? ? ? ? ?

float4 vertex : POSITION; ? ? ? ? ? ? ? ?

float3 normal : NORMAL; ? ? ? ? ? ? ? ?

fixed4 color : COLOR; ? ? ? ? ? ? ? ?

float2 texcoord : TEXCOORD0; ? ? ? ? ? ? ? ? ? ? ? ? ? ?

}; ? ? ? ? ? ?

struct v2f { ? ? ? ? ? ? ? ?

float4 vertex : SV_POSITION; ? ? ? ? ? ? ? ?

fixed4 color : COLOR; ? ? ? ? ? ? ? ?

float2 texcoord : TEXCOORD0; ? ? ? ? ? ? ? ?

UNITY_FOG_COORDS(1) ? ? ? ? ? ? ? ?

float3 worldPos : TEXCOORD2; ? ? ? ? ? ? ? ?

float3 worldNormal : TEXCOORD3; ? ? ? ? ? ?

}; ? ? ? ? ? ? ? ? ? ? ? ?

float4 _MainTex_ST; ? ? ? ? ? ?

v2f vert (appdata_t v){ ? ? ? ? ? ? ? ?

v2f o; ? ? ? ? ? ? ? ?

o.vertex = UnityObjectToClipPos(v.vertex); ? ? ? ? ? ? ? ?

o.worldNormal = UnityObjectToWorldNormal(v.normal); ? ? ? ? ? ? ? ?

o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; ? ? ? ? ? ? ? ?

o.color = v.color; ? ? ? ? ? ? ? ?

o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);?

?UNITY_TRANSFER_FOG(o,o.vertex);?

return o;?

} ? ? ? ? ? ? ? ? ? ? ? ?

fixed4 frag (v2f i) : SV_Target {

half3 currentAmbient = half3(0, 0, 0);

half3 ambient = ShadeSHPerPixel(i.worldNormal, currentAmbient, i.worldPos);

?fixed4 col = _TintColor * i.color * tex2D(_MainTex, i.texcoord);

col.xyz += ambient;

UNITY_APPLY_FOG_COLOR(i.fogCoord, col, fixed4(0,0,0,0));?

// 根據(jù)混合模式,霧效變?yōu)楹谏? ? ? ? ? ? ? ? ?

return col;

} ? ? ? ? ? ?

ENDCG ? ? ? ?

}}}}

硬件要求

該組件至少需要 Shader Model 4 圖形硬件和 API 支持,包括對(duì)具有 32 位浮點(diǎn)格式和線(xiàn)性過(guò)濾的 3D 紋理的支持。

要正常工作,場(chǎng)景需要通過(guò)__光照探針組__組件來(lái)包含光照探針。如果未滿(mǎn)足要求,則渲染器或光照探針代理體組件檢視面板將顯示一條警告消息。


光照探針代理體 (Light Probe Proxy Volume) 組件的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
温州市| 昌都县| 北川| 巨鹿县| 平江县| 合作市| 泊头市| 长葛市| 临海市| 玉门市| 潞城市| 东源县| 汝阳县| 库伦旗| 澳门| 莱阳市| 民和| 汝州市| 荔浦县| 三原县| 库车县| 白城市| 贡嘎县| 外汇| 阳新县| 万荣县| 斗六市| 高尔夫| 晋宁县| 杨浦区| 辉县市| 大理市| 准格尔旗| 长岭县| 辽中县| 红河县| 栖霞市| 桐城市| 衡山县| 游戏| 延寿县|