Files
VR-GAME/Library/Artifacts/9b/9b359ab120e4b76c0c7315cbe1d5c2b2

587 lines
61 KiB
Plaintext
Raw Normal View History

2026-04-25 12:12:07 +07:00
[<5B><00><>\ 0.0.0<00><><EFBFBD><EFBFBD>H<00><>Ğ<EFBFBD>-Z<><58><D7AA>a<EFBFBD>4]<5D>=7<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><><00>E<00> <00><00>$<00>.<00>-<00>6a<00> <00><00>$<00>.<00>-<00><00><00>r<00> <00><00>$ <00>.<00>-
<00>H<00><><00><><EFBFBD><EFBFBD><EFBFBD> <01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD> @<00><00><00> Q<00>j<00><00><00>K<00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><00>Tj<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00>q<00><00><><00><00><><00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><00><00>j<00><><EFBFBD><EFBFBD><EFBFBD><00>H<00><><00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00> Q<00>j<00><00><00><><00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><00> <00><00><00> <00>j<00><><EFBFBD><EFBFBD><EFBFBD> <00>
<00><00><><00><><EFBFBD><EFBFBD>!<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>"@ <00><00><00># <00><00>j<00>$
<00><00><><00><><EFBFBD><EFBFBD>%<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>&<00> <00><00><00>' <00>j<00><><EFBFBD><EFBFBD><EFBFBD>(<00> H<00><><00><><EFBFBD><EFBFBD>)<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>*@<00><00><00>+Q<00>j<00>, H<00><00><><EFBFBD><EFBFBD>-<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>.@<00><00><00>/Q<00>j<00>0 <00><00>1 <00><00>2 <00><00>*3 <00><00>74
<00><00>?<00><><EFBFBD><EFBFBD>5<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>6<00> <00><00><00>7 <00>j<00><><EFBFBD><EFBFBD><EFBFBD>8<00> H<00><><00><><EFBFBD><EFBFBD>9<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>:@<00><00><00>;Q<00>j<00>< H<00><00><><EFBFBD><EFBFBD>=<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>>@<00><00><00>?Q<00>j<00>@ <00><00>A <00><00>B <00><00>*C <00><00>7D
<00><00>H<00><><EFBFBD><EFBFBD>E<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>F@ <00><00><00>G Xj<00>H <00><00>tI <00><00>J
<00><00>|<00><><EFBFBD><EFBFBD>K<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>L<00> <00><00><00>M <00>j<00><><EFBFBD><EFBFBD><EFBFBD>N<00> H<00><><00><><EFBFBD><EFBFBD>O<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>P@<00><00><00>QQ<00>j<00>R H<00><00><><EFBFBD><EFBFBD>S<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>T@<00><00><00>UQ<00>j<00>V <00><00>W <00><00>X <00><00>*Y <00><00>7Z
<00><00><><00><><EFBFBD><EFBFBD>[<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>\<00> <00><00><00>] <00>j<00><><EFBFBD><EFBFBD><EFBFBD>^<00> H<00><><00><><EFBFBD><EFBFBD>_<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>`@<00><00><00>aQ<00>j<00>b H<00><00><><EFBFBD><EFBFBD>c<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>d@<00><00><00>eQ<00>j<00>f <00><00>g <00><00>h <00><00>*i <00><00>7j
<00><00><><00><><EFBFBD><EFBFBD>k<01> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>l@ <00><00><00>m <00><00>j<00>n
;<00><><00><><EFBFBD><EFBFBD>o 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>p <00><00><00>q <00><00>j<00>r
.<00><>s
<00><00><><00><><EFBFBD><EFBFBD>t<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>u<00> <00><00><00>v H<00>j<00><><EFBFBD><EFBFBD><EFBFBD>w<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>x@<00><00><00>yQ<00>j<00>z
L<00><>{@<00><00><><00><><EFBFBD><EFBFBD>|<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>}<00> <00><00><00>~ <00>j<00><><EFBFBD><EFBFBD><EFBFBD><00>
H<00><><00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00>
<00><00>
<00><00><00><00><><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00> <00><00><00><00> H<00>j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>
1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00><00><00><><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00> <00><00><00><00> H<00>j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>
1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00><00><00><><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00> <00><00><00><00> H<00>j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>
1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00><00><00><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00><00><00><00><00>j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>H<00><><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00><00><00>#<00><00><00>,<00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00> <00><00><00><00> 3j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>
H<00><><00><><EFBFBD><EFBFBD><EFBFBD><00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00>
<00><00>F<00>
<00><00>K<00>
<00><00>R<00>
<00><00>\<00>
<00><00>e<00>L<00>n<00>@<00><00><><00>L<00><><00>@<00><00><00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><00><00><00><><00><00><00><00><00><00><00><00><00><00><00><00>(<00>H<00>6<00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<00><00><00><00>Q<00>j<00><00>H<00>E<00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<00><00><00><00>Q<00>j<00><00>H<00>L<00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<00><00><00><00>Q<00>j<00><00><00><00><><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00><00><00><00><00>H<00>j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<00><00><00><00>Q<00>j<00><00><00><00>W<00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00><00><00><00><00><00><00>j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00><00><00><00><00><00>j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>H<00><><00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00>H<00>
<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00><00><00>d<00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00><00><00><00><00>H<00>j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<00><00><00><00>Q<00>j<00><00>.<00>s<00><00><00><><00><00><00><><00><00><00><><00><00><00><><00><00><00><><00><00><00><><00><00><00><><00><00><00><><00><00><><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00><00><00><00><00><00>j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>H<00><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<00><00><00><00>Q<00>j<00><00>H<00><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<00><00><00><00>Q<00>j<00><00>H<00><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<00><00><00><00>Q<00>j<00><00><00><00><><00><00><00>#<00>L<00>(<00>L<00>0<00>@ComputeShaderPPtr<EditorExtension>m_FileIDm_PathIDPPtr<PrefabInstance>variantsComputeShaderPlatformVarianttargetRenderertargetLevelkernelsComputeShaderKernelParentnameuniqueVariantsComputeShaderKernelcbVariantIndicescbsComputeShaderResourcegeneratedNamebindPointsamplerBindPointtexDimensionresTypetexturesbuiltinSamplersComputeShaderBuiltinSamplersamplerinBuffersoutBufferscodethreadGroupSizerequirementskeywordsisCompiledvariantIndicesglobalKeywordslocalKeywordsdynamicKeywordsconstantBuffersComputeShaderCBbyteSizeparamsComputeShaderParamtypeoffsetarraySizerowCountcolCountresourcesResolvedcompilerPlatformneedsReflectionDataComputeShaderCompilationContextm_CompilationContextBuildTargetSelectionbuildTargetplatformsubTargetextendedPlatformisEditorplatformGroupsourceFileNamesourcesourceFilekernelMacrosprunedKeywordscompilationFlagssupportedAPIsuseDxcAPIsneverUseDxcAPIsincludeHash0includeHash1includeHash2includeHash3buildTargetAPIMaskerrorsShaderErrormessagemessageDetailsfilelinewarningruntimeError<00>E:1<00><><EFBFBD><EFBFBD>;><3E><>k/E[ݩ('Bb7<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><><00>E<00> <00><00>'<00>.<00>0<00>9a<00> <00><00>'<00>.<00>0<00><00><00>r<00> <00><00>' <00>.<00>0
<00>H<00><><00><><EFBFBD><EFBFBD><EFBFBD> <01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD> @<00><00><00> Q<00>j<00><00><00>N<00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><00>Wj<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00>w<00><00><><00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><00><00>j<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><><00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><00> <00><00><00> <00>j<00><><EFBFBD><EFBFBD><EFBFBD><00>
<00><00><00><><EFBFBD><EFBFBD><00> <00><00><> H<00><><00><><EFBFBD><EFBFBD><00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00>  Q<00>j<00>!
<00><00>"
<00><00>#+E<00><><EFBFBD><EFBFBD>$<00><00><00>T<00><><EFBFBD><EFBFBD>%<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>&<00>
<00><00><00>'
]j<00><><EFBFBD><EFBFBD><EFBFBD>(<00> H<00><><00><><EFBFBD><EFBFBD>)<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>*@ <00><00><00>+ Q<00>j<00>, <00><00>v- <00><00><>. <00><00><>/ <00><00><>0 <00><00><>1 L<00><>2<00><00><><00><><EFBFBD><EFBFBD>3<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>4@
<00><00><00>5
<00>j<00>6 <00><00><>7 <00><00>v8<00><00><><00><><EFBFBD><EFBFBD>9<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>:<00>
<00><00><00>;
]j<00><><EFBFBD><EFBFBD><EFBFBD><<00> H<00><><00><><EFBFBD><EFBFBD>=<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>>@ <00><00><00>? Q<00>j<00>@ <00><00>vA <00><00><>B <00><00><>C <00><00><>D <00><00><>E L<00><>F<00><00><00><><EFBFBD><EFBFBD>G<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>H<00>
<00><00><00>I
]j<00><><EFBFBD><EFBFBD><EFBFBD>J<00> H<00><><00><><EFBFBD><EFBFBD>K<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>L@ <00><00><00>M Q<00>j<00>N <00><00>vO <00><00><>P <00><00><>Q <00><00><>R <00><00><>S L<00><>T<00><00><00><><EFBFBD><EFBFBD>U<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>V<00>
<00><00><00>W
&j<00><><EFBFBD><EFBFBD><EFBFBD>X<00> H<00><><00><><EFBFBD><EFBFBD>Y<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>Z@ <00><00><00>[ Q<00>j<00>\ <00><00>E] <00><00>N^ <00><00>S<00><><EFBFBD><EFBFBD>_<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>`<00> <00><00><00>a Zj<00><><EFBFBD><EFBFBD><EFBFBD>b<00>H<00><><00><><EFBFBD><EFBFBD>c<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>d@<00><00><00>eQ<00>j<00>f<00><00>pg<00><00>yh<00><00><>i<00><00><>j<00><00><>k<00><00><>l@<00><00><>m@<00><00><><00><><EFBFBD><EFBFBD>n<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>o<00>
<00><00><00>p
]j<00><><EFBFBD><EFBFBD><EFBFBD>q<00> H<00><><00><><EFBFBD><EFBFBD>r<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>s@ <00><00><00>t Q<00>j<00>u <00><00>vv <00><00><>w <00><00><>x <00><00><>y <00><00><>z L<00><>{+<00><00><><EFBFBD><EFBFBD>|<00><00><00>T<00><><EFBFBD><EFBFBD>}<00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>~<00>
<00><00><00>
]j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00> H<00><><00><><EFBFBD><EFBFBD><EFBFBD><00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00> <00><00>v<00> <00><00><><00> <00><00><><00> <00><00><><00> <00><00><><00> L<00><><00><00><00><><00><><EFBFBD><EFBFBD><EFBFBD><00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@
<00><00><00><00>
<00>j<00><00> <00><00><><00> <00><00>v<00><00><00><><00><><EFBFBD><EFBFBD><EFBFBD><00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>
<00><00><00><00>
]j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00> H<00><><00><><EFBFBD><EFBFBD><EFBFBD><00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00> <00><00>v<00> <00><00><><00> <00><00><><00> <00><00><><00> <00><00><><00> L<00><><00><00><00><00><><EFBFBD><EFBFBD><EFBFBD><00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>
<00><00><00><00>
]j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00> H<00><><00><><EFBFBD><EFBFBD><EFBFBD><00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00> <00><00>v<00> <00><00><><00> <00><00><><00> <00><00><><00> <00><00><><00> L<00><><00><00><00><00><><EFBFBD><EFBFBD><EFBFBD><00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>
<00><00><00><00>
&j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00> H<00><><00><><EFBFBD><EFBFBD><EFBFBD><00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00> <00><00>E<00> <00><00>N<00> <00><00>S<00><><EFBFBD><EFBFBD><EFBFBD><00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00> <00><00><00><00> Zj<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>H<00><><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<00><00><00><00>Q<00>j<00><00><00><00>p<00><00><00>y<00><00><00><><00><00><00><><00><00><00><><00><00><00><><00>@<00><00><><00>@<00><00><><00><><EFBFBD><EFBFBD><EFBFBD><00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>
<00><00><00><00>
]j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00> H<00><><00><><EFBFBD><EFBFBD><EFBFBD><00> 1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00> <00><00>v<00> <00><00><><00> <00><00><><00> <00><00><><00> <00><00><><00> L<00><><00>L<00><><00>@<00><00><><00><><EFBFBD><EFBFBD><EFBFBD><01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> <00><00>j<00><00><00><00><><00><><EFBFBD><EFBFBD><EFBFBD><01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> <00><00>j<00><00>.<00><><00><00><00><><00><00><00><><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00> <00><00><00><00> H<00>j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>
1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00>L<00><00>@<00><00><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00><00><00><00><00><00>j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>H<00><><00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ <00><00><00><00> Q<00>j<00><00><00><00>
<00><00><00><00>!<00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00><00><00><00><00>H<00>j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<00><00><00><00>Q<00>j<00><00><00><00>0<00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00><00><00><00><00>H<00>j<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<00><00><00><00>Q<00>j<00><00><00><00>><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00><00><00><00>H<00>j<00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00>Q<00>j<00>L<00>N@<00><00>`<00><00>qL<00><>@<00><><00><><EFBFBD><EFBFBD> <00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>
<00><00><00><00> <00>j<00><><EFBFBD><EFBFBD><EFBFBD> <00>H<00><><00><><EFBFBD><EFBFBD> <00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00>Q<00>j<00>H<00><><00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00>Q<00>j<00>H<00><><00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00>Q<00>j<00><00><00>`<00><00><>L<00><>L<00><>@<00><00><><EFBFBD><EFBFBD><00>#8<00><00>D<00><00>M <00><00>W!<00><00>h"<00><00>q#H<00><00><><EFBFBD><EFBFBD>$<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>%@<00><00><00>&Q<00>j<00>'H<00><><00><><EFBFBD><EFBFBD>(<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>)@<00><00><00>*Q<00>j<00>+H<00><><00><><EFBFBD><EFBFBD>,<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>-@<00><00><00>.Q<00>j<00>/<00><00><><00><><EFBFBD><EFBFBD>0<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>1<00><00><00><00>2H<00>j<00><><EFBFBD><EFBFBD><EFBFBD>3<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>4@<00><00><00>5Q<00>j<00>6<00><00><>7<00><00><>8L<00><>9@<00><00><>:<00><00><>;<00><00> <<00><00>=<00><00>(><00><00>5?<00><00>B@<00><00>OARayTracingShaderPPtr<EditorExtension>m_FileIDm_PathIDPPtr<PrefabInstance>variantsRayTracingShaderPlatformVarianttargetRendereruniqueVariantsRayTracingShaderReflectionDatafunctionsRayTracingShaderFunctionDescRayTracingShaderIDidentifiertypenamepayloadSizeInBytesattributeSizeInBytesRayTracingShaderResourceslocalResourcestexturesRayTracingShaderResourcebindPointsamplerBindPointtexDimensionrayGenMaskarraySizemultisampledbuiltinSamplersRayTracingShaderBuiltinSamplersamplerinputBuffersoutputBuffersconstantBuffersDescRayTracingShaderConstantBufferbyteSizehashparamsRayTracingShaderParamdataTypedataSizeoffsetpropertySheetTyperowCountcolCountconstantBuffersglobalResourceshasErrorscodeprecompiledrequirementscodeHashkeywordsisCompiledvariantIndicesglobalKeywordslocalKeywordsdynamicKeywordseditorOnlyVariantcompilerPlatformm_MaxRecursionDepthm_EnableRayPayloadSizeCheckserrorsShaderErrormessagemessageDetailsfilelinewarningruntimeErrorRayTracingShaderCompilationContextm_CompilationContextBuildTargetSelectionbuildTargetplatformsubTargetextendedPlatformisEditorplatformGroupsourceFileNamesourcesourceFileprunedKeywordscompilationFlagsmaxRecursionDepthenableRayPayloadSizeCheckscolorSpaceshaderPrecisionModelsupportedAPIsincludeHash0includeHash1includeHash2includeHash3buildTargetAPIMask<00><><EFBFBD>|<00>ɖ<EFBFBD><C996><EFBFBD><EFBFBD>#8l<38>x<EFBFBD>4<EFBFBD>)A<00>7<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><><00>E<00> <00><00>'<00>.<00>0<00>9a<00> <00><00>'<00>.<00>0<00><00><00>r<00> <00><00>' <00>.<00>0
<00>H<00><><00><><EFBFBD><EFBFBD><EFBFBD> <01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD> @<00><00><00> Q<00>j<00><00><00>N<00><><EFBFBD><EFBFBD><01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><01><00><00><00><00>j<00><><EFBFBD><EFBFBD><EFBFBD><01><00><><00> <00><00><><00>.<00>
<00>H<00>
<00><><EFBFBD><EFBFBD><EFBFBD><01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00>Q<00>j<00><00><00>f<00><><EFBFBD><EFBFBD><01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><01><00><00><00><00>j<00><><EFBFBD><EFBFBD><EFBFBD><01>x<00><00><><EFBFBD><EFBFBD><EFBFBD><01>H<00><><00><><EFBFBD><EFBFBD><01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD> @<00><00><00>!Q<00>j<00>"H<00><><00><><EFBFBD><EFBFBD>#<01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>$@<00><00><00>%Q<00>j<00>&H<00><><00><><EFBFBD><EFBFBD>'<01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>(@<00><00><00>)Q<00>j<00>*y<00>
<00> +<00><00>',<00>.<00>0-<00><00><><00><><EFBFBD><EFBFBD>.@1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>/<00><00><00>0.<00>j<00>1H<00><><00><><EFBFBD><EFBFBD>2<01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>3@<00><00><00>4Q<00>j<00>5H<00><><00><><EFBFBD><EFBFBD>6<01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>7@<00><00><00>8Q<00>j<00>9H<00><><00><><EFBFBD><EFBFBD>:<01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>;@<00><00><00><Q<00>j<00>=h<00><><00> ><00><00>'?<00>.<00>0@<00>ScriptedImporterPPtr<EditorExtension>m_FileIDm_PathIDPPtr<PrefabInstance>m_InternalIDToNameTablem_ExternalObjectsSourceAssetIdentifiertypeassemblynamem_UsedFileIDsm_UserDatam_AssetBundleNamem_AssetBundleVariant<00>T<EFBFBD><54>K<EFBFBD><01>0$<00><><15><><EFBFBD>۸0$rP<>`<00>y<EFBFBD>$]s<>J<EFBFBD><4A>D<EFBFBD><44><EFBFBD>u
<EFBFBD>G<EFBFBD>DynamicGISkyOcclusionEncodeShadingDirectionA<>MainRayGenShaderA<>ComputeIndirectDispatchDimsA<>EncodeShadingDirectionA<>MainRayGenShaderA<>ComputeIndirectDispatchDimsA<>EncodeShadingDirectionA<>MainRayGenShaderA<>ComputeIndirectDispatchDimsA<>EncodeShadingDirectionA<>MainRayGenShaderA<>ComputeIndirectDispatchDimsA<>EncodeShadingDirectionA<>MainRayGenShaderA<>ComputeIndirectDispatchDimsA<>DynamicGISkyOcclusione#define UNIFIED_RT_BACKEND_COMPUTE
#pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal webgpu
#define UNIFIED_RT_GROUP_SIZE_X 64
#define UNIFIED_RT_GROUP_SIZE_Y 1
#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/FetchGeometry.hlsl"
#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl"
#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common.hlsl"
#include "Packages/com.unity.render-pipelines.core/Runtime/Sampling/QuasiRandom.hlsl"
#include "Packages/com.unity.render-pipelines.core/Runtime/Sampling/Common.hlsl"
UNIFIED_RT_DECLARE_ACCEL_STRUCT(_AccelStruct);
int _SampleCount;
int _SampleId;
int _MaxBounces;
float _OffsetRay;
float _AverageAlbedo;
int _BackFaceCulling;
int _BakeSkyShadingDirection;
StructuredBuffer<float3> _ProbePositions;
RWStructuredBuffer<float4> _SkyOcclusionOut;
RWStructuredBuffer<float3> _SkyShadingOut;
void RayGenExecute(UnifiedRT::DispatchInfo dispatchInfo)
{
const float kSHBasis0 = 0.28209479177387814347f;
const float kSHBasis1 = 0.48860251190291992159f;
int probeId = dispatchInfo.globalThreadIndex;
QrngSobol rngState;
rngState.Init(uint2((uint)probeId, 0), _SampleId);
if (_SampleId==0)
{
_SkyOcclusionOut[probeId] = float4(0,0,0,0);
if (_BakeSkyShadingDirection > 0)
_SkyShadingOut[probeId] = float3(0,0,0);
}
UnifiedRT::RayTracingAccelStruct accelStruct = UNIFIED_RT_GET_ACCEL_STRUCT(_AccelStruct);
float2 u = float2(rngState.GetFloat(0), rngState.GetFloat(1));
float3 rayFirstDirection = MapSquareToSphere(u);
float pathWeight = 4.0f * PI; // 1 / SphereSamplePDF
float3 normalWS = float3(0,1,0);
float3 hitPointWS = float3(0,0,0);
uint rayFlags = 0x0;
if(_BackFaceCulling != 0)
rayFlags = UnifiedRT::kRayFlagCullBackFacingTriangles;
for (int bounceIndex=0; bounceIndex < _MaxBounces+1; bounceIndex++)
{
UnifiedRT::Ray ray;
ray.tMin = 0;
ray.tMax = FLT_MAX;
ray.origin = float3(0, 0, 0);
ray.direction = float3(0, 0, 0);
UnifiedRT::Hit hitResult;
if (bounceIndex==0)
{
ray.direction = rayFirstDirection;
ray.origin = _ProbePositions[probeId].xyz;
}
else
{
u = float2(rngState.GetFloat(2*bounceIndex), rngState.GetFloat(2*bounceIndex+1));
SampleDiffuseBrdf(u, normalWS, ray.direction);
ray.direction = normalize(ray.direction);
ray.origin = hitPointWS + _OffsetRay * ray.direction;
float cosTheta = clamp(dot(normalWS, ray.direction),0.f,1.0f);
if(cosTheta < 0.001f)
break;
pathWeight = pathWeight * _AverageAlbedo; // cosTheta * avgAlbedo / PI * PI/(cosTheta) == avgAlbedo
}
bool hasHit = false;
hitResult = UnifiedRT::TraceRayClosestHit(dispatchInfo, accelStruct, 0xFFFFFFFF, ray, rayFlags);
hasHit = hitResult.IsValid();
if (hasHit)
{
UnifiedRT::InstanceData instanceInfo = UnifiedRT::GetInstance(hitResult.instanceID);
UnifiedRT::HitGeomAttributes hitGeom = UnifiedRT::FetchHitGeomAttributesInWorldSpace(instanceInfo, hitResult);
hitPointWS = hitGeom.position;
normalWS = hitGeom.normal;
if (dot(normalWS, ray.direction) > 0.0f) // flip normal if hitting backface
normalWS *= -1.0f;
}
else
{
float norm = pathWeight / (float)_SampleCount;
// Layout is DC, x, y, z
float4 tempSH = float4(
norm * kSHBasis0,
rayFirstDirection.x * norm * kSHBasis1,
rayFirstDirection.y * norm * kSHBasis1,
rayFirstDirection.z * norm * kSHBasis1);
_SkyOcclusionOut[probeId] += tempSH;
if(_BakeSkyShadingDirection > 0)
_SkyShadingOut[probeId] += ray.direction / _SampleCount;
// break the loop;
bounceIndex = _MaxBounces + 2;
}
}
// Last sample
if (_SampleId == _SampleCount - 1)
{
// Window L1 coefficients to make sure no value is negative when sampling SH, layout is DC, x, y, z
float4 SHData = _SkyOcclusionOut[probeId];
// find main direction for light
float3 mainDir;
mainDir.x = SHData.y;
mainDir.y = SHData.z;
mainDir.z = SHData.w;
mainDir = normalize(mainDir);
// find the value in the opposite direction, which is the lowest value in the SH
float4 temp2 = float4(kSHBasis0, kSHBasis1 * -mainDir.x, kSHBasis1 * -mainDir.y, kSHBasis1 * -mainDir.z);
float value = dot(temp2, SHData);
float windowL1 = 1.0f;
if (value < 0.0f)
{
// find the L1 factor for this value to be null instead of negative
windowL1 = -(temp2.x * SHData.x) / dot(temp2.yzw, SHData.yzw);
windowL1 = saturate(windowL1);
}
_SkyOcclusionOut[probeId].yzw *= windowL1;
float radianceToIrradianceFactor = 2.0f / 3.0f;
// This is a hacky solution for mitigating the radianceToIrradianceFactor based on the previous windowing operation.
// The 1.125f exponent comes from experimental testing. It's the value that works the best when trying to match a bake and deringing done with the lightmapper, but it has no theoretical explanation.
// In the future, we should replace these custom windowing and deringing operations with the ones used in the lightmapper to implement a more academical solution.
_SkyOcclusionOut[probeId].yzw *= lerp(1.0f, radianceToIrradianceFactor, pow(windowL1, 1.125f));
}
}
#ifdef UNIFIED_RT_BACKEND_COMPUTE
#pragma kernel EncodeShadingDirection
StructuredBuffer<float3> _SkyShadingPrecomputedDirection;
StructuredBuffer<float3> _SkyShadingDirections;
RWStructuredBuffer<uint> _SkyShadingIndices;
uint _ProbeCount;
uint LinearSearchClosestDirection(float3 direction)
{
int indexMax = 255;
float bestDot = -10.0f;
int bestIndex = 0;
for (int index=0; index< indexMax; index++)
{
float currentDot = dot(direction, _SkyShadingPrecomputedDirection[index]);
if (currentDot > bestDot)
{
bestDot = currentDot;
bestIndex = index;
}
}
return bestIndex;
}
[numthreads(64, 1, 1)]
void EncodeShadingDirection(uint probeId : SV_DispatchThreadID)
{
if (probeId >= _ProbeCount)
return;
uint bestDirectionIndex = 255;
float norm = length(_SkyShadingDirections[probeId]);
if (norm > 0.0001f)
bestDirectionIndex = LinearSearchClosestDirection(_SkyShadingDirections[probeId] / norm);
_SkyShadingIndices[probeId] = bestDirectionIndex;
}
#endif
#include_with_pragmas "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRaygenShader.hlsl"
nPackages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/DynamicGI/DynamicGISkyOcclusion.urtshaderEncodeShadingDirectionMainRayGenShaderComputeIndirectDispatchDimsX<><00>+<02><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FH<46>#<23><@DynamicGISkyOcclusionClosestHitShaderMainRayGenShader
MissShader_AccelStructaccelStruct<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_ProbePositions<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_SobolMatricesBuffer<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g_AccelStructInstanceList<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
g_MeshList<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g_globalIndexBuffer<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g_globalVertexBuffer<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_SkyOcclusionOut<00><><EFBFBD><EFBFBD>_SkyShadingOut<00><><EFBFBD><EFBFBD>$Globals <00><>P _SampleCount _SampleId _MaxBounces 
_OffsetRay_AverageAlbedo_BackFaceCulling_BakeSkyShadingDirection$Globals<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dQDXBCïZLr T<>3]<5D>Td0<64><30>dQ4D<00>x<00>SFI0RDAT<41>|<00>`\$Globalsg_AccelStructInstanceListg_globalIndexBufferg_globalVertexBufferg_MeshList_SobolMatricesBuffer_AccelStructaccelStruct_ProbePositions_SkyOcclusionOut_SkyShadingOut?MainRayGenShader@@YAXXZMainRayGenShader?MissShader@@YAXUHit@UnifiedRT@@@ZMissShader?ClosestHitShader@@YAXUHit@UnifiedRT@@UAttributeData@2@@ZClosestHitShaderH
 
$ 8 M Xm <00> <00> <00><00>,<00><00><00><><EFBFBD><EFBFBD><00>c<00><00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ` J<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
c
,
 STAT<41>c<00>DXILxBC<42><43>! <00> <0B> <07>#<23>A<EFBFBD>I29<32><01> %<04>b<EFBFBD>EB<> B<>28K
2r<EFBFBD>H<EFBFBD> CF<43><46>2B<32>H<0E><>#<23>PAQ<41><51><EFBFBD><EFBFBD><EFBFBD><EFBFBD>9FQ <1B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>`<01><00>c<10><05>6<18><><EFBFBD><EFBFBD><EFBFBD><0F>P<1B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@*I<13>`<60> a&Ą<><00> 2"<22> d<><04>#<23><><04>#ㄡ<>L<><4C> <0B><>L<10><><18>D<06><><0E>0<0F><><06>@<0F>P<0F>@<0F> <0F>@<0E>P<0F>`<0E> |P<0F>0<0F>p<0E>P<0E><06><><0E><>(P<>.i<>(a<>A<EFBFBD>Ig1 <09><><0E>Q3<><33>8<EFBFBD>C8<43><38><<3C><>,Ѓ<<3C><>8<EFBFBD>C=<3D>C9<43><39>(ԃ9<D483>C9<43><1F>B9<42>,<2C><>;<3B>C+<2B><><<3C><>(<28>C=<3D><>:<3A>
D83<38><33><EFBFBD>&<05>)<04>14A "&<26>i<EFBFBD>)<29><><EFBFBD><EFBFBD><00>00<>0 3<><33>8<EFBFBD>C8<43><38><<3C><>,Ѓ<<3C><>8<EFBFBD>C=<3D>C9<43><39>(ԃ9<D483>C9<43><1F>C9<43>=<3D><><<3C><>9<EFBFBD><39>;<3B>=<3D>́<1F><><1F> A<>a<02>i Ɓ<1D>a<1E><> d<>f<><1E><>Ɓ<1E>AʁD<><1E><><1C>A<1E><><1E>a<1C><><1D><>́<1D>!<1C><> <0A><><0E> <0C> <06><><0E>0<0F><><06>p <0B>@<0F>P<0F>@<0F> <0F>@<0E>P<0F>`<0E> |`<0F>0<0E><><0E><><07><><0E><0E><>`0~~<7E><>=fB<66><42><14><><1D>!<1C>a@<40>$`̔<06><><0E>@<0F><0E><><0E>@n0<0F> <0F>0<0E><><06><><0E>`<0E>P<0E> <0B><>z<>
<EFBFBD>0<0F><0E>0<0E>@
<EFBFBD>@<>d3<>:<3A><><<3C>;<3B>C><3E>C=Ѓ<1B>;<3B><><1B>=<3D>C=<3D>=ԃ<<3C>9<>B=<3D><>9<EFBFBD><39><<3C>A-<2D>C:<3A>C:<3A>9<>-<2D><><1E><>;<3B>=<3D><>;<3B>C9<43>B8<42>C8<43>
(T(<28><>0<EFBFBD>2S5<0F> <0F>0<0E><><06><><0E>`<0E>P<0E> <0B><>z<>
<EFBFBD>@<0F>4m<>p<EFBFBD>Pg<50>o<1E>A<1E>a<1C><> j<><1D><>ҡ<1C>AhA<0F> <14><><1E>!ġ<1E><>H!<1C>!P<><50>O.<10>ʀ hT<00><>RA<02>@ <20>t<EFBFBD>p<EFBFBD><13><10><><12>JL>rۨ<00>B<>{<7B>˟<EFBFBD><CB9F><EFBFBD><EFBFBD>h<><68>@<40><>) P<01>u<EFBFBD>p<EFBFBD><13><10><><12>JL~qۨ@ @9^<00><10>Ɋ<10>D <02>@ <1C><><10>, @ <15>tEA<02>@ <20>W@E<><45><EFBFBD>˟<EFBFBD><CB9F><EFBFBD>|n<><6E><EFBFBD><EFBFBD>|<7C><><00>X
5\<5C><>=<3D><>sU<><55><EFBFBD><17><><02>(<28><10><10><02> cX<>!<21><>HY<16>@<40>2<EFBFBD>r<><72>h<10> ,<2C><><EFBFBD>e`D- P!<21>@<40>Ap<41><70><00><>3<EFBFBD>!<21>_,0<><30><EFBFBD><EFBFBD>`2<>7<0F> <0F>0<0E><><06><><0E>`<0E>P<0E> <0B><>z<>
<EFBFBD>0<0F><0E>0<0E>@
<EFBFBD>@<0F><><0E>V s<04>r<><72>t`<60>6h<36>yhr<><72> <0A>Pm<>zPmz0r<>s m<>q<>s m<>x<>s m<>q`z0r<><06>0r<>s m<>v@z`t<><06>v<>s m`s z0r<><06>`t<>v@m<>x<>q`z0r<>v@:<0F><>!#ED<00>3 <00>d<00> <00>0<><00><><00>7`<60><00>
<00><><EFBFBD>@<00>!O0<00><>g <0C> `<60>S@0<>9 <18><> y<><08><00><r@C:<02><00>!@<00><><EFBFBD><0E> `<60>c@0<><30> <18><> y<><00><~C?<02><00>!O(P<00><><EFBFBD><14>(`<60>c
@0<>A
<18><> yX<08><00><<3C>@CX<02><00>!<21>,P<00><><EFBFBD><16>(`<60>c @<00>"2<1E>L<><4C> &G<>C<02>@<19>Ca<14>@!A<><41>B<01><> @ALIJ<>`@
<14>@!<14>@aEY<45>X<0F>vD<76>
w@<40><10>@([#<00><> <20> 1f<00>1@<40><00><>e<06>*3<00><><01><> fh0@<40>
<EFBFBD>y<00>L<>FD<> o<><6F>M $<24><><EFBFBD>Ef<06>GEl<45>f<EFBFBD><>,eCL<10>3<EFBFBD> h<>A<18> <02><04><><EFBFBD><EFBFBD>&6A<00>`À$<24><04>J<EFBFBD><4A>}<05><><EFBFBD><EFBFBD>M<EFBFBD><4D>Ս<EFBFBD>%<25><>х<EFBFBD><D185><EFBFBD>1<EFBFBD><31><EFBFBD>M<10>5<EFBFBD> l<>A<18> <0A><>0<EFBFBD>14<31>3ANg_globalIndexBuffer<04> 6ô!"<22><18>Ơ&<08>L<10><><EFBFBD><EFBFBD><EFBFBD>ۛX<18>U<EFBFBD>]<19>P<EFBFBD><50>Y<EFBFBD>܆ĺ0<C4BA><1A><> <02><><EFBFBD><EFBFBD><EFBFBD>94<39><34>9<EFBFBD> <02><1B><>ې<10>fCcta <20>5<EFBFBD>&<26><><EFBFBD>F'<27>6V6'TgfV&<26>!<21>>00<30><30>1<EFBFBD> <13><><EFBFBD><EFBFBD>46V<36>6E'W7F66V<36>6E'W7F<37>A0<41> <0A><18>b0pFL<10><><EFBFBD><17>ܛX<19><>\<><DA9B>ah6$<24><19><><EFBFBD> <0C><><0E>ʼ005<> 8<06><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>7<EFBFBD><37>:<3A> B.<2E>†<EFBFBD>`<60>60<36><30>q7p<37>n<EFBFBD>t<><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ξ<EFBFBD><CE9E>6,ā1 <0C><1B><><1B><><06> <0A>`<60> !DH<44><48><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&@l@ :<3A><03><18><00><10><>b <0A><0F> Bp <0C>&<08>l0<6C>= ><10> 0<04>6<>A0@a<>0<EFBFBD>A(LZ<>@${@<13><>6F)lLa<4C>`<60>†<EFBFBD>#T<><54><EFBFBD>FV<46><56>df6WF<57><46>HT<48>0<EFBFBD>`<60><><EFBFBD>FV<46>7<EFBFBD>V<EFBFBD>F<EFBFBD><46>HX<48><58><EFBFBD>`"cW&GW<47><57>df6WF7A<00>`<60><><EFBFBD><02>
|0q<30>+<2B><>+<2B>z<>s<EFBFBD><73>`$<24>@4|0m(<28>UhX<><58> <09>& <04><0E><><EFBFBD><EFBFBD>х<EFBFBD><D185><EFBFBD>%m0[ >:primitiveIndex<1B><17><>ĀN<C480><4E>P<EFBFBD>\<5C>X<EFBFBD><1B>\<5C><><EFBFBD><01><> F<> <0B>+<2B><>.pAK<41>#J<><4A> s+<2B>`$<24>@p|<7C> \<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<08>l0<6C>_ <20><><0F> F-<2D>B.<2E><>/<2F><>AY<41> F<><07><><07>0AHTa<54>`<60>Æ<EFBFBD>6<08>9lr@<40> B<>
<04>6<08>:l<08>a<EFBFBD>`<60>Æ<EFBFBD>#w<> <<3C>0A<30>f<EFBFBD><66>X<EFBFBD>\<5C>X<EFBFBD><1B>\<5C><><EFBFBD>#<23><07><><EFBFBD>]<5D> <20><><L<10>W<EFBFBD>v<EFBFBD>u<EFBFBD><75>&<16>fU&GW<47>'TgfV&7E'<27>FV<46><56>H<EFBFBD><48>0<EFBFBD>`"<22>5<15><06>V6<56>V<EFBFBD>F7A<37>T؀$<24>@L|0<>B>0<><30>
k<EFBFBD>c+K"ۀ$<24>@<40>L<><4C>\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6 I? L<><4C>T<><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6 <20>?<1F><>.<2E><03><> <20>2<EFBFBD><32><EFBFBD><EFBFBD> 6<>2<EFBFBD><32> H8<><38>.<2E>B><10>
[3
+<1B>ccKs;ۀ$#A<>L<><4C>ľ<><C4BE><EFBFBD>ʦ<EFBFBD><CAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Έ<EFBFBD><CE88><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&l@<40><> L<><0F><0A>܃><3E><>?<3F><>H<EFBFBD><48>IL(X <20><>6<16>F<EFBFBD>v<EFBFBD>&<26>F<EFBFBD>a<EFBFBD>&k<03><><EFBFBD><EFBFBD><12><><07>@
N<EFBFBD><EFBFBD>.<2E><>n<EFBFBD><6E>m,<2C><><EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><4D>l<EFBFBD><00><>$i k%<08><><EFBFBD>]<5D><><EFBFBD>6<16>F<EFBFBD>v<EFBFBD>&<26>F<EFBFBD><46>&<26><16>67A<00>`<03><><EFBFBD><EFBFBD>DL<44><4C>.P<>+s#+<2B>Ks;c
<EFBFBD>+<2B>k
<EFBFBD>[<5B> {<7B><>Hf<48><66> >2instanceMask<04>6<18>M7<>b@<40>n<EFBFBD>L<EFBFBD>)<29><>L.-<2D>-<2D>h<EFBFBD><00><>#<23> B'<27>@ ؜<><D89C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%<25><><EFBFBD><EFBFBD>M?<3F>`$<A<><1F><><06>a<EFBFBD><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> B <13>]<5D><> <0A><02><> c<>apH<70>,6\<5C><1E><>(<28>B)<29>-<2D><>8<EFBFBD><38>:<3A><<3C>C<<3C>C=<3D>DJ<44>X<><58>!S6<1B>-<2D>bC<62>oa3e<33>%<15><15><><EFBFBD>F<>A<EFBFBD><41>b<EFBFBD>`<60>Zl<10><>-&b<>0<EFBFBD><30><EFBFBD>Jr<4A>+<2B><>+<1B>K{s <0B><><EFBFBD>K<13><>+<2B><> Lq<4C>a0<61>-6 i<>s<><73><18>B-<2D><>-<2D><>.Lx<>6<04>¸ 1<><31> `@<1E><05> <20>g<EFBFBD><67>m<EFBFBD>l<EFBFBD>)<29>n
-<2D><>L(+<08>
)<29><0E><>-<2D>,<2C><>L<EFBFBD>
<08>*<2A><>N.M<><4D><EFBFBD><EFBFBD>(<28>. HHk<48><00><><06><15>"<22>>x1<><31> \<5C><00><05><><EFBFBD><EFBFBD><EFBFBD>47<34><37><EFBFBD><EFBFBD>2<EFBFBD>)<29>0<EFBFBD>29 <20><> ,,<2C> <0A>+<2B><><18>ņ<EFBFBD>,<2C>@<40>c<10>Ӕ677<37>FV&<04><15>U<EFBFBD><55>FT<><54>f<EFBFBD>VF&E<04>5A@a<><61>
<EFBFBD><EFBFBD>Ԃ<18>ņb-DH<><48><EFBFBD>\<5C><>Z<><5A>floats@X<><58><EFBFBD><EFBFBD><EFBFBD>M<10>Q <20><>F77AH<>]<19><17>[<18>(&tex_store,<2C><><EFBFBD><EFBFBD><EFBFBD>&<08>)lpL<70>4P#5Tc5X<35>5\<5C>5`<60>/bC6<43><36><EFBFBD>ٵ<EFBFBD><D9B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>M <09>*dx.versionS<02> <19><>]<18>]<5D>ܔ<EFBFBD><DC94>C<EFBFBD><43>2<EFBFBD>FV&<26><>FV<46>6%Hʐ<48><CA90>ȕͽ<C895>ɍ<EFBFBD><C98D>M <09><><19> ]\Y<><59><EFBFBD>]<><DA9B><14>,<2C><><19>K<EFBFBD><1B>\<1E>[<5B><1B><>"/<2F>4H<34> <19><><EFBFBD>[<5B>]<5D><>ܔ@6yU3<08><1C><>f=<3D>C8<43>ÌB<C38C>yxs<>q <0C><0F><0E><>3 B<1E><>Ρf0=<3D>C8<43><38><1B>=<3D>C=<3D>=<3D>x<EFBFBD>tp{yH<79>ppzpvx<76>p <20><19><0E><><0E>0n0<0F><><0E>P3<10><1D>!<1C>!<1D>af0<66>;<3B><>;<3B>C9<43><<3C><><<3C>;<3B><>v`{h7h<37>rh7<><37>p<EFBFBD><70>p`v(v<>vx<76>w<EFBFBD><77>_<08>q<18>r<EFBFBD><72>y<EFBFBD><79>,<2C><><0E><><0E><><0E>0<1C><>̡<1C><><1C>a<1C>!ā<1D>a֐C9<43>C9<43>C9<43>C9<43><39>8<EFBFBD>C8<43>;<3B><>/<2F><><<3C><>;<3B>;<3B><> <0C>!|pz(<28>v<EFBFBD><76><19><><0E>`<0F><><06><><0E>3"<22><1C><> <0A>A<1C><> <0A>!<1C><><1D>!ޡ<1E>a<13>><3E><>8<EFBFBD>C9<43><39>:<3A><>8<EFBFBD>q bŠ<07>ߐ<EFBFBD><DF90><EFBFBD><EFBFBD>td<74>>E<><45>e9<10> b<><62>4Xu<58><75><EFBFBD>2YJ<02>A:]<5D><16><>eb<65>ʀ@m)d<>_3<5F>vK<76><4B>c<EFBFBD>=E<><45>e9<10> b<><62>Z<18><><EFBFBD><EFBFBD><EFBFBD>ϧ<EFBFBD>0<EFBFBD>,<02>Al<15><><03><><EFBFBD>9]&K<>@ P[<10>}<7D><>q<EFBFBD>=<3D><><EFBFBD>czx<.<2E><>ty}LgUi8O<38><4F><EFBFBD>i<EFBFBD>98<1E><>ey<65><79>~<7E><>ty}L<><4C><EFBFBD>@`<60>
<EFBFBD> <20><>B<EFBFBD>oq<19><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{ά?Ҕ.<2E><><EFBFBD>uy<75>,<2C><><EFBFBD>e9<65><39>#<23><>c<EFBFBD>[l<>`2  <0C><>~<7E><>:<3A><1C><><EFBFBD>y<EFBFBD><79>~<7E><>@<40><><EFBFBD>#I<>S<EFBFBD><53>><3E><><EFBFBD>e<EFBFBD><65>n6<6E><36>@<40><>d/<2F><>o9<6F>I<EFBFBD>̀@ 0X|<10>}<7D><><EFBFBD>&<26><><EFBFBD>g<EFBFBD>ά?<3F><>:<3A><><EFBFBD>cz]^& <0B>fsY<0E><>H<EFBFBD><48><EFBFBD><EFBFBD><EFBFBD><03>$<24> <02>5<07><>w<EFBFBD><16><><EFBFBD>0]<5D><1E><>º<EFBFBD>\<5C><03>3<EFBFBD><33>4<EFBFBD><34><EFBFBD>cz]^& <0B>fsYL<02><>J<EFBFBD><4A><EFBFBD><EFBFBD><EFBFBD> <0A><>e<EFBFBD><65>.<2E><><EFBFBD>I<EFBFBD><49>v<><76><EFBFBD><EFBFBD><EFBFBD>ά?Ҕ.<2E><><EFBFBD>uy<75>,<2C><><EFBFBD>e9<65><39>t<EFBFBD><74>a<EFBFBD><61>L <0C><><EFBFBD><EFBFBD>;mN<6D><4E>R*<06><><EFBFBD>9<Η@~<7E>o<EFBFBD><G3<47>s:8<><38>HS<48><53>><3E><><EFBFBD>e<EFBFBD><65>n6<6E><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>fy<66><1E><><EFBFBD>5 <02><><EFBFBD><EFBFBD>~<7E><>줛\<5C> <0B>fsYά?Ҕ.<2E><><EFBFBD>uy<75>,<2C><><EFBFBD>e90 + <02><><EFBFBD><EFBFBD>~<7E><>lkYN/<2F><>u<EFBFBD><75>,g<>iJ<69><4A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L<16><><EFBFBD><EFBFBD><1C><02><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><38>4\<5C><><EFBFBD><01><11><17>m<1D>p<EFBFBD><70><EFBFBD> UDT:<3A>P `~q<>Ʊ <0A><><<3C>PEAD<41> %a<02>#<23>]a@ƻ<>p<EFBFBD>X^<0E><>Ȱ<EFBFBD><C8B0>.<1B>rfZ<66>"<1D>oq<6F>=/R <20>]o<>k,/<2F><>ed<65>Mf<4D><66>o93-v<><76><EFBFBD><EFBFBD><EFBFBD>%<25>N<EFBFBD><4E><EFBFBD><EFBFBD>^<5E><><EFBFBD>º<EFBFBD>\<5C><><EFBFBD><EFBFBD>1<EFBFBD>-<2D><><EFBFBD><EFBFBD>0<EFBFBD><05><>@<40>!2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>r<EFBFBD>^F<><46>dv<64><76><EFBFBD>3<EFBFBD>bט<1D><>]<5D><><EFBFBD>.<2E><><EFBFBD>uy<75>,<2C><><EFBFBD>e9<65>^<1E><>r<EFBFBD><72><EFBFBD><0E>Y <20>䫐P <20>]o<>k,/<2F><>ed<65>Mf<4D><66>o93-v<><76><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><35><EFBFBD>cz]^& <0B>fsY<73>;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>Ctݽ<74>H<1F><><EFBFBD>7<EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD>22<32>&<26><>Ʒ<EFBFBD><C6B7><16><><EFBFBD><EFBFBD>|<7C><><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>./<2F><>u<EFBFBD><75>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]&<26><>n<EFBFBD><6E>JD<4A><44>w<EFBFBD><EFBFBD><1C><><EFBFBD>a7<61>]6<><36>̴<EFBFBD>5f<35><66>sה.<2E><><EFBFBD>uy<75>,<2C><><EFBFBD>e9<65>^<1E><>r<EFBFBD><72><EFBFBD><0E>Y<EFBFBD><59><0F>+<2B>Y <20>]o<>k,/<2F><>ed<65>Mf<4D><66>o93-v<><76>s:;<3B><EFBFBD><7F><EFBFBD>1;<<3C><><EFBFBD>ty}L<><4C><EFBFBD>da<64>l.<2E>yUwڜ.<2E><>T<EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD>q<EFBFBD><18><>}&<26><07><>;<3B>/D0!<21> <0B>9Q<39><04>4E<34>0<EFBFBD>+<2B>M <20><> <02>0!N<>N%LTD<54> <0C><><<3C><>H0 <09>
`R<>0D#!N#<23><>m<EFBFBD><6D>6\<5C><><EFBFBD>"=<3D>$+<2B>Ib3<10><>ܶ=8<><38>;<3B>?8<><38><17>m<19>p<EFBFBD><70><EFBFBD>΄<><CE84>m<EFBFBD>D4\<5C><><EFBFBD>2<>H3<48><33>m[5\<5C><><EFBFBD>H#M@#b<>#<23>m<14>p<EFBFBD><70><EFBFBD>?<11> Rb3<10><>ܶE\<5C><>;<3B><01>F<11>0<><30>m<1B>5\<5C><><EFBFBD>`mTQQ<><00><>ܶa`<60><>;<3B><01>F<11><>~q<>&Q <0A><><~`-GE<11>L~q<><71>! <0A><><<3C>DDD<>_<EFBFBD>vY<76><19>z<EFBFBD>]tyx\<5C><><EFBFBD><EFBFBD>9]^<1F>]Uwڜ.<2E><>T<EFBFBD><0E><>[<5B>3\<5C><><EFBFBD>TD<>_ܶ]<<3C><>;<3B>O5@<40><><EFBFBD>mHASH<00><1D><>D<EFBFBD>R<EFBFBD><52>5<EFBFBD>+<2B><1A>YDXIL<49>6c<00> DXIL<00>6BC<42><43>! <00> <0B> <07>#<23>A<EFBFBD>I29<32><01> %<04>b<EFBFBD>EB<> B<>28K
2r<EFBFBD>H<EFBFBD> CF<43><46>2B<32>H<0E><>#<23>PAQ<41><51><EFBFBD><EFBFBD><EFBFBD><EFBFBD>9FQ <1B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>`<01><00>c<10><05>6<18><><EFBFBD><EFBFBD><EFBFBD><0F>P<1B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<02> <0A>gI<13>`<60> a&Ą<><C484><00> 2"<22> d<><04>#<23><><04>#ㄡ<>L<><4C> <0B><>L<10><><18>D<06><><0E>0<0F><><06>@<0F>P<0F>@<0F> <0F>@<0E>P<0F>`<0E> |P<0F>0<0F>p<0E>P<0E><06><><0E><>(P<>.i<>(a<>A<EFBFBD>Ig1 <09><><0E>Q3<><33>8<EFBFBD>C8<43><38><<3C><>,Ѓ<<3C><>8<EFBFBD>C=<3D>C9<43><39>(ԃ9<D483>C9<43><1F>B9<42>,<2C><>;<3B>C+<2B><><<3C><>(<28>C=<3D><>:<3A>
D83<38><33><EFBFBD>&<05>)<04>14A "&<26>i<EFBFBD>)<29><><EFBFBD><EFBFBD><00>00<>0 3<><33>8<EFBFBD>C8<43><38><<3C><>,Ѓ<<3C><>8<EFBFBD>C=<3D>C9<43><39>(ԃ9<D483>C9<43><1F>C9<43>=<3D><><<3C><>9<EFBFBD><39>;<3B>=<3D>́<1F><><1F> A<>a<02>i Ɓ<1D>a<1E><> d<>f<><1E><>Ɓ<1E>AʁD<><1E><><1C>A<1E><><1E>a<1C><><1D><>́<1D>!<1C><> <0A><><0E> <0C> <06><><0E>0<0F><><06>p <0B>@<0F>P<0F>@<0F> <0F>@<0E>P<0F>`<0E> |`<0F>0<0E><><0E><><07><><0E><0E><>`0~~<7E><>=fB<66><42><14><><1D>!<1C>a@<40>$`̔<06><><0E>@<0F><0E><><0E>@n0<0F> <0F>0<0E><><06><><0E>`<0E>P<0E> <0B><>z<>
<EFBFBD>0<0F><0E>0<0E>@
<EFBFBD>@<>d3<>:<3A><><<3C>;<3B>C><3E>C=Ѓ<1B>;<3B><><1B>=<3D>C=<3D>=ԃ<<3C>9<>B=<3D><>9<EFBFBD><39><<3C>A-<2D>C:<3A>C:<3A>9<>-<2D><><1E><>;<3B>=<3D><>;<3B>C9<43>B8<42>C8<43>
(T(<28><>0<EFBFBD>2S5<0F> <0F>0<0E><><06><><0E>`<0E>P<0E> <0B><>z<>
<EFBFBD>@<0F>4m<>p<EFBFBD>Pg<50>o<1E>A<1E>a<1C><> j<><1D><>ҡ<1C>AhA<0F> <14><><1E>!ġ<1E><>H!<1C>!P<><50>O.<10>ʀ hT<00><>RA<02>@ <20>t<EFBFBD>p<EFBFBD><13><10><><12>JL>rۨ<00>B<>{<7B>˟<EFBFBD><CB9F><EFBFBD><EFBFBD>h<><68>@<40><>) P<01>u<EFBFBD>p<EFBFBD><13><10><><12>JL~qۨ@ @9^<00><10>Ɋ<10>D <02>@ <1C><><10>, @ <15>tEA<02>@ <20>W@E<><45><EFBFBD>˟<EFBFBD><CB9F><EFBFBD>|n<><6E><EFBFBD><EFBFBD>|<7C><><00>X
5\<5C><>=<3D><>sU<><55><EFBFBD><17><><02>(<28><10><10><02> cX<>!<21><>HY<16>@<40>2<EFBFBD>r<><72>h<10> ,<2C><><EFBFBD>e`D- P!<21>@<40>A0G
S !r<><72>t`<60>6h<36>yhr<><72> <0A>Pm<>zPmz0r<>s m<>q<>s m<>x<>s m<>q`z0r<><06>0r<>s m<>v@z`t<><06>v<>s m`s z0r<><06>`t<>v@m<>x<>q`z0r<>v@:<0F><>!#ED<00>3 <00>d<00> <00>0<><00><><00>7`<60><00>
<00><><EFBFBD>@<00>!O0<00><>g <0C> `<60>S@0<>9 <18><> y<><08><00><r@C:<02><00>!@<00><><EFBFBD><0E> `<60>c@0<><30> <18><> y<><00><~C?<02><00>!O(P<00><><EFBFBD><14>(`<60>c
@0<>A
<18><> yX<08><00><<3C>@CX<02><00>!<21>,P<00><><EFBFBD><16>(`<60>c @<00>2<1E>L<><4C> &G<>C<02>@<19>C1<43>F<>BH)PAE<><45>eGH[<5B><>#y\L<>FD<> o<><6F>M $<24><><EFBFBD>Ef<06>GEl<45>f<EFBFBD><>,eCL<10>3<EFBFBD> h<>A<18> <02><1B><><EFBFBD><EFBFBD><EFBFBD>&6A<00>`À$<24>X<> <09><>0;<3B>
+c<><63><EFBFBD><EFBFBD><1B>Kr<4B><72> s+cJ<63><4A><EFBFBD> l0A<00>`<60>0<<1B><>i<EFBFBD>eph<> <00>ξ<EFBFBD><CEBE><EFBFBD><EFBFBD><EFBFBD>ؒ<EFBFBD><D892><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<08>ljC2H<32>2 <0C>RM<10>7<EFBFBD> <01><><EFBFBD>3<EFBFBD>7<EFBFBD>06<30>29<32>2<<3C>:3<>2<EFBFBD> Ʌe<C985>58K5A(*g_MeshList6C<>!!6n!g<>&<08>@<40>k<EFBFBD>M썭)<29>N.m<>lN<6C><4E>̬LnCB<43>A,<2C><>,<2C><01><> <09>A<EFBFBD><41>
+c<><63><EFBFBD><EFBFBD><1B> +c<><63><EFBFBD><EFBFBD><1B><> ,Ԇd Ƞ <0C>1<18><> &K<><4B> J<>M<EFBFBD> <0C>m.<2E>.<2E><>mn<6D>08<1B> <0A>`IgQ<67> Gdi<64><18><>L<1C><><EFBFBD><EFBFBD>Z<EFBFBD><5A><EFBFBD>[<5B><>S<1D>!<17><><C3B2>,<2C><><EFBFBD><EFBFBD><1B><>7A<37>:_SkyShadingOut<1B>!<0E>`<06> <0A><> <0A>`<60>s0A<30>"$Globals@6 K<1D><><EFBFBD> wl<08>`<03>t<><07>!S6<1B><><0F>`C<>oa3e<33>%<15><15><><EFBFBD>F<>A<EFBFBD>@a<>p<EFBFBD>l<10>@&b<>0<EFBFBD><30><EFBFBD>Jr<4A>+<2B><>+<1B>K{s <0B><><EFBFBD>K<13><>+<2B><> P<><50>aXL<58>6 }
<EFBFBD><EFBFBD><EFBFBD><18><><0F>`HLt6<04>bY<62>1`<60> <05>
<EFBFBD><1E><02> <20>g<EFBFBD><67>m<EFBFBD>l<EFBFBD>)<29>n
-<2D><>L(+<08>
)<29><0E><>-<2D>,<2C><>L<EFBFBD>
<08>*<2A><>N.M<><4D><EFBFBD><EFBFBD>(<28>. HHk<48><00><><01><> PX<><58>D XV<>P<EFBFBD><50>+<00>,0 <0B>i
Ks<EFBFBD>
<EFBFBD>;*s<>B #+<2B><02>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40><>1<06><><EFBFBD>؃Z[<5B><04>4<EFBFBD><34><EFBFBD>M<EFBFBD><4D><EFBFBD><EFBFBD><EFBFBD>eaU!<21><>U<><55><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IQiM;<3B>`<60>B.$<24>0<06><><EFBFBD><EFBFBD>\]`/<04><1C><><05><><EFBFBD><EFBFBD>M<EFBFBD><4D>Ս<EFBFBD>U<><55><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IQe<05>UI<55><49><51><C985><EFBFBD><EFBFBD><05><><EFBFBD><EFBFBD>M<EFBFBD><4D>Ս<EFBFBD><01>UI<55><49><EFBFBD>Ʌ<EFBFBD><C985><EFBFBD><EFBFBD><05><><EFBFBD><EFBFBD><EFBFBD>Ʌѥ<C985><D1A5>M<EFBFBD><4D>Ս<EFBFBD><D58D>ɕi<>z<><17>?GetAccelStruct@UnifiedRT@@YA?AURayTracingAccelStruct@1@URaytracingAccelerationStructure@@@Z: %agg.result+<2B>_<EFBFBD>_<><10>e!<21>Ǩ<EFBFBD>n )<29><><EFBFBD><EFBFBD><EFBFBD>-<2D><>N.M<><4D><EFBFBD>l<0E><>-<2D>,<2C><>L<EFBFBD>
(+<2B>'<27>
)<29><><EFBFBD><EFBFBD><EFBFBD>-<2D><>N.M<><4D><EFBFBD>l( <09><><EFBFBD>Įl<C4AE><6C>M<0E><>&( Hk<48> <0E><>_<08>1*<2A>CCJ<43>;*{k <0B><><EFBFBD>K<13><>+<2B><03>rK3K+#<23><><02>
<EFBFBD> <09>BJ<42>;*{k <0B><><EFBFBD>K<13><>+<2B><03>BB<42><42>!<21>+<1B>{<7B>j"<22><>J<02><>) ;;s<>+<2B><>c<EFBFBD>[1<><31>8<EFBFBD>O!<21>Ǩ<EFBFBD>n )<29><><EFBFBD><EFBFBD><EFBFBD>-<2D><>N.M<><4D><EFBFBD>l<0E><>-<2D>,<2C><>L<EFBFBD>
(+<2B>'<27>
)<29><><EFBFBD><EFBFBD><EFBFBD>-<2D><>N.M<><4D><EFBFBD>l(<06>
)<29>(( Hk<48>`<0E>@Z<08>1*<2A>CCJ<43>;*{k <0B><><EFBFBD>K<13><>+<2B><03>rK3K+#<23><><02>
<EFBFBD> <09>BJ<42>;*{k <0B><><EFBFBD>K<13><>+<2B><03><01>BJ<42><03>J<02><>) ;;s<>+<2B><>c<EFBFBD>[1<><31>9<EFBFBD><03>!<21>Ǩ<EFBFBD>n )<29><><EFBFBD><EFBFBD><EFBFBD>-<2D><>N.M<><4D><EFBFBD>l.<2E><><EFBFBD>M<EFBFBD><4D>l
.l<> <0C><>-<2D>,<2C><>L<EFBFBD>
(+<2B>'<27>
)<29><><EFBFBD><EFBFBD><EFBFBD>-<2D><>N.M<><4D><EFBFBD>l(<06>*<2A>m<EFBFBD>.<2E>m<EFBFBD><6D>(<28>. (<06>
)<29>(Hk<48><6B><0E><>w<08>1*<2A>CCJ<43>;*{k <0B><><EFBFBD>K<13><>+<2B>Kr<4B>z<EFBFBD>c#<23><> +<03>rK3K+#<23><><02>
<EFBFBD> <09>BJ<42>;*{k <0B><><EFBFBD>K<13><>+<2B><03><01>Jr<4A><72> s+#
<EFBFBD> <03><01>BJ<42><03><02><>) ;;s<>+<2B><>c<EFBFBD>[1<><31>:<3A>Æ<EFBFBD>Ё<1D>
?LoadVertex@GeometryPool@@YAXIHV?$StructuredBuffer@I@@UGeoPoolVertex@@@Z+<2B>wp<07>B<EFBFBD><0F>[<18>U<EFBFBD>]<1E>Q<EFBFBD>[[<19>\<1E><>PVV<12><><0F><14>\<5C>]<5D>\<19>P<EFBFBD><50>Y<EFBFBD>PP<>Q<EFBFBD><1B><><1B>U<EFBFBD>]<10><>H<>[\<1D>U<EFBFBD>]ފ!<1E><1E>
?FetchVertex@Internal@UnifiedRT@@YA?AUGeoPoolVertex@@UGeoPoolMeshChunk@@I@Z+<2B>y<EFBFBD><07>B<EFBFBD><42>Q<19><18>U<EFBFBD>]P<>]<5D><>[P<>[<5B>YZ<19>PV<50>OP<4F>Q<EFBFBD><1B><><1B>U<EFBFBD>]P<>Q<EFBFBD><1B><><><1C>Z<><5A>P<12><>HI<48>ٙ<EFBFBD>\<5C>\݊<><1E><>6<14>P<0F><><0E><><EFBFBD><EFBFBD>ͮͅ<CDAE><CD85> Υ<>M<4D>Ŭ<EFBFBD><C5AC>mCp+<2B>|<7C><07>B<EFBFBD><0F>\<5C>X<EFBFBD>TX<54><10><>\<5C>RP<>[<5B>YZ<19>PV<50>OPRP PQ<>\<18>Z<><5A><EFBFBD>P P<>TX<1E>\<5C>X<EFBFBD><58>Y<EFBFBD><59>X<19><14>\<5C>P PR<50>TXP P<12><>
a<1F><><EFBFBD><10>C%6V&<15>7<EFBFBD><37>6W6G<36><47>FT<><54>f<EFBFBD>VF&E<04><15>T<><54>FTE<54>6F7<46><37><EFBFBD>f<EFBFBD>T%<15>G%6<><36>v46V<36>6E'W7F<03>T%<15><03><04><>Rvv<76>"W6W<36>F<EFBFBD>b<EFBFBD><62>}<7D><> A?pHs<48><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><06>FW<46>F2<>&<26>h*<2A> <0A><> d<>ehe<05>J((hCH<><48>Hl<18><>$Fb<46>P%1<06> <20><><EFBFBD><EFBFBD><EFBFBD>f<EFBFBD><66><EFBFBD>FV<46>F7%<08><><EFBFBD><EFBFBD>ؕ<EFBFBD>ͥ<EFBFBD><CDA5>M <09>&dx.valverS<02><19><>ZY<>\<5C>Y۔ )C<><43>"W6<57>V'7V67%ȃJdx.typeAnnotationsST<>C<EFBFBD><43>R<EFBFBD>F'<27><07><><EFBFBD>F77<37>h<EFBFBD>Y<EFBFBD>]yU3<08><1C><>f=<3D>C8<43>ÌB<C38C>yxs<>q <0C><0F><0E><>3 B<1E><>Ρf0=<3D>C8<43><38><1B>=<3D>C=<3D>=<3D>x<EFBFBD>tp{yH<79>ppzpvx<76>p <20><19><0E><><0E>0n0<0F><><0E>P3<10><1D>!<1C>!<1D>af0<66>;<3B><>;<3B>C9<43><<3C><><<3C>;<3B><>v`{h7h<37>rh7<><37>p<EFBFBD><70>p`v(v<>vx<76>w<EFBFBD><77>_<08>q<18>r<EFBFBD><72>y<EFBFBD><79>,<2C><><0E><><0E><><0E>0<1C><>̡<1C><><1C>a<1C>!ā<1D>a֐C9<43>C9<43>C9<43>C9<43><39>8<EFBFBD>C8<43>;<3B><>/<2F><><<3C><>;<3B>;<3B><> <0C>!|pz(<28>v<EFBFBD><76><19><><0E>`<0F><><06><><0E>3"<22><1C><> <0A>A<1C><> <0A>!<1C><><1D>!ޡ<1E>a<13>><3E><>8<EFBFBD>C9<43><39>:<3A><>8<EFBFBD>q bŠ<07>ߐ<EFBFBD><DF90><EFBFBD><EFBFBD>td<74>>E<><45>e9<10> b<><62>4Xu<58><75><EFBFBD>2YJ<02>A:]<5D><16><>eb<65>ʀ@m)d<>_3<5F>vK<76><4B>c<EFBFBD>=E<><45>e9<10> b<><62>Z<18><><EFBFBD><EFBFBD><EFBFBD>ϧ<EFBFBD>0<EFBFBD>,<02>Al<15><><03><><EFBFBD>9]&K<>@ P[<10>}<7D><>q<EFBFBD>=<3D><><EFBFBD>czx<.<2E><>ty}LgUi8O<38><4F><EFBFBD>i<EFBFBD>98<1E><>ey<65><79>~<7E><>ty}L<><4C><EFBFBD>@`<60>
<EFBFBD> <20><>B<EFBFBD>oq<19><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{ά?Ҕ.<2E><><EFBFBD>uy<75>,<2C><><EFBFBD>e9<65><39>#<23><>c<EFBFBD>[l<>`2  <0C><>~<7E><>:<3A><1C><><EFBFBD>y<EFBFBD><79>~<7E><>@<40><><EFBFBD>#I<>S<EFBFBD><53>><3E><><EFBFBD>e<EFBFBD><65>n6<6E><36>@<40><>d/<2F><>o9<6F>I<EFBFBD>̀@ 0X|<10>}<7D><><EFBFBD>&<26><><EFBFBD>g<EFBFBD>ά?<3F><>:<3A><><EFBFBD>cz]^& <0B>fsY<0E><>H<EFBFBD><48><EFBFBD><EFBFBD><EFBFBD><03>$<24> <02>5<07><>w<EFBFBD><16><><EFBFBD>0]<5D><1E><>º<EFBFBD>\<5C><03>3<EFBFBD><33>4<EFBFBD><34><EFBFBD>cz]^& <0B>fsYL<02><>J<EFBFBD><4A><EFBFBD><EFBFBD><EFBFBD> <0A><>e<EFBFBD><65>.<2E><><EFBFBD>I<EFBFBD><49>v<><76><EFBFBD><EFBFBD><EFBFBD>ά?Ҕ.<2E><><EFBFBD>uy<75>,<2C><><EFBFBD>e9<65><39>t<EFBFBD><74>a<EFBFBD><61>L <0C><><EFBFBD><EFBFBD>;mN<6D><4E>R*<06><><EFBFBD>9<Η@~<7E>o<EFBFBD><G3<47>s:8<><38>HS<48><53>><3E><><EFBFBD>e<EFBFBD><65>n6<6E><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>fy<66><1E><><EFBFBD>5 <02><><EFBFBD><EFBFBD>~<7E><>줛\<5C> <0B>fsYά?Ҕ.<2E><><EFBFBD>uy<75>,<2C><><EFBFBD>e90 + <02><><EFBFBD><EFBFBD>~<7E><>lkYN/<2F><>u<EFBFBD><75>,g<>iJ<69><4A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L<16><><EFBFBD><EFBFBD><1C><02><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><38>4\<5C><><EFBFBD><01><11><17>m<1D>p<EFBFBD><70><EFBFBD> UDT:<3A>P `~q<>Ʊ <0A><><<3C>PEAD<41> %a<02>#<23>]a@ƻ<>p<EFBFBD>X^<0E><>Ȱ<EFBFBD><C8B0>.<1B>rfZ<66>"<1D>oq<6F>=/R <20>]o<>k,/<2F><>ed<65>Mf<4D><66>o93-v<><76><EFBFBD><EFBFBD><EFBFBD>%<25>N<EFBFBD><4E><EFBFBD><EFBFBD>^<5E><><EFBFBD>º<EFBFBD>\<5C><><EFBFBD><EFBFBD>1<EFBFBD>-<2D><><EFBFBD><EFBFBD>0<EFBFBD><05><>@<40>!2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>r<EFBFBD>^F<><46>dv<64><76><EFBFBD>3<EFBFBD>bט<1D><>]<5D><><EFBFBD>.<2E><><EFBFBD>uy<75>,<2C><><EFBFBD>e9<65>^<1E><>r<EFBFBD><72><EFBFBD><0E>Y <20>䫐P <20>]o<>k,/<2F><>ed<65>Mf<4D><66>o93-v<><76><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><35><EFBFBD>cz]^& <0B>fsY<73>;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>Ctݽ<74>H<1F><><EFBFBD>7<EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD>22<32>&<26><>Ʒ<EFBFBD><C6B7><16><><EFBFBD><EFBFBD>|<7C><><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>./<2F><>u<EFBFBD><75>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]&<26><>n<EFBFBD><6E>JD<4A><44>w<EFBFBD><EFBFBD><1C><><EFBFBD>a7<61>]6<><36>̴<EFBFBD>5f<35><66>sה.<2E><><EFBFBD>uy<75>,<2C><><EFBFBD>e9<65>^<1E><>r<EFBFBD><72><EFBFBD><0E>Y<EFBFBD><59><0F>+<2B>Y <20>]o<>k,/<2F><>ed<65>Mf<4D><66>o93-v<><76>s:;<3B><EFBFBD><7F><EFBFBD>1;<<3C><><EFBFBD>ty}L<><4C><EFBFBD>da<64>l.<2E>yUwڜ.<2E><>T<EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD>q<EFBFBD><18><>}&<26><07><>;<3B>/D0!<21> <0B>9Q<39><04>4E<34>0<EFBFBD>+<2B>M <20><> <02>0!N<>N%LTD<54> <0C><><<3C><>H0 <09>
`R<>0D#!N#<23><>m<EFBFBD><6D>6\<5C><><EFBFBD>"=<3D>$+<2B>Ib3<10><>ܶ=8<><38>;<3B>?8<><38><17>m<19>p<EFBFBD><70><EFBFBD>΄<><CE84>m<EFBFBD>D4\<5C><><EFBFBD>2<>H3<48><33>m[5\<5C><><EFBFBD>H#M@#b<>#<23>m<14>p<EFBFBD><70><EFBFBD>?<11> Rb3<10><>ܶE\<5C><>;<3B><01>F<11>0<><30>m<1B>5\<5C><><EFBFBD>`mTQQ<><00><>ܶa`<60><>;<3B><01>F<11><>~q<>&Q <0A><><~`-GE<11>L~q<><71>! <0A><><<3C>DDD<>_<EFBFBD>vY<76><19>z<EFBFBD>]tyx\<5C><><EFBFBD><EFBFBD>9]^<1F>]Uwڜ.<2E><>T<EFBFBD><0E><>[<5B>3\<5C><><EFBFBD>TD<>_ܶ]<<3C><>;<3B>O5@<40><><EFBFBD>ma <00>~ D(K<><4B>*`<60><>(<28><>(<28><>)<29><>V-<2D>$<24><>dW<64><57><EFBFBD>(<28>2<EFBFBD><32><EFBFBD><EFBFBD>?(<28><><EFBFBD>-<2D>>(<28><>ɪB<0E><>U(Q<><51>(<28>B+<2B><><EFBFBD><EFBFBD><EFBFBD>"(<28>2)<29>B)<29>b+<2B><>+<2B><>+<2B><>+<2B><> (€2 (ĀR (ƀr (<28><><EFBFBD>(]<5D>+@<40>(́r)R<15>@9<>G b<>$A<10><>@<04>k<EFBFBD><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>xX<78><58>o<EFBFBD><6F><EFBFBD>U<EFBFBD><55><EFBFBD>1<EFBFBD><31>e <0C><08>z<07>o<EFBFBD>A<04>1<EFBFBD><31>e <0C>ޙ4<DE99>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1V<><56>#<23><>La<7F>A0<41><30><08>Z<EFBFBD>Տ4#<00>#A<10>a<7F>A<04>1A<><41>d<12>A(a<18><12>A,A<18><12>A0<18>@+<2B><18><12>A,3p<06>0b` <06>p<0F> <20><08><><1F>C*<2A><><EFBFBD><EFBFBD><01> <18>A?<3F><><18><08><><1F><>)<29>A<05>T@<40><><EFBFBD><01> <18>AH<41><48><1A><08><><1F><>*<2A>A<15>T H<01><08>A(<28><>8,<2C>0<EFBFBD>5<><35>VR:`W0R<>:`7 <20><06> <0C><10><08>,<2C><>;`#<00>`<60>4<>b b x<>#<00>`
0<EFBFBD>VI<56>&<04>pC0f0<66> <0C><><EFBFBD><01> <18><>J<EFBFBD>C7b<37> z<><13>@%af`g<>"1K0<4B>X<01><15><>T`X<><58>ăT<C483>X<><58><EFBFBD>X<b` <06><><13><>#
<00>`<60>j<12>K<EFBFBD>D)<29><>hBQj2<11><><EFBFBD>@<40><> 1P<04>6<EFBFBD> <0B>8r<38>&VA&F<02><><EFBFBD>5Z<><5A><EFBFBD><EFBFBD><04>(<08>A<1B>EK88<38><13><><13> P<>X<EFBFBD><58>D<10><02>#<23><><EFBFBD>G <04><> <0A><>&*<2A><18>\<00>ф<00>!-<2D><>"A <0A><>pqf<71>#
<00>`<60><06><><13>Y<EFBFBD>8<><38>hB<00>jm<11><><EFBFBD>@<40><08><>@-p<>@@ ڀ5<DA80>b <0C>".<2E><>-F<02><><EFBFBD>P<EFBFBD><50> 5ZG<5A><47>x<>#
<00>`<60><06><>j<>x<>u1<75>5<><35><EFBFBD>^!<21>!<21>:<02>8 1P<04>6<EFBFBD> <0A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD><7A>ф<00><>4<EFBFBD>D#A <0A><>p<>A_<41><5F><EFBFBD><02> <18>Ax<41><1E><>i<EFBFBD><69>h<EFBFBD>&@ <0A><><EFBFBD>Aj<08><><EFBFBD><EFBFBD><0F>G <04><> <0A><>/<2F><>-Zc$Tc4!j<> 5<>BPC<50>u\<5C><>8b<38> m<><1E>a
<EFBFBD>A*<1B> P<>n<EFBFBD><6E>F<10><02>#<23>j<EFBFBD><6A><EFBFBD>A0h<03>`<60>V<EFBFBD><56>݈ <09>M<08><1A>C<EFBFBD>7<EFBFBD><10>h-<2D><07>(<08>A<1B><>l<EFBFBD>Bx<42>N<><4E>hBԀj<><11><><EFBFBD>@<40><08>v<EFBFBD>5p<35>@@ ڀDtc^#=~<7E><F<02><><EFBFBD>Pc<50> 5ZG<5A>%<0E><>#
<00>`<60>+<1E><><1A>a<16>1<EFBFBD><35>|!<21>!<21>:<02>t 1P<04>6<EFBFBD><11>H<EFBFBD>򸏶<EFBFBD><F2B88FB6>ф<00><>?<3F><>#A <0A><>p<>~<7E><><EFBFBD><02> <18>A<EFBFBD><41><<3C><><EFBFBD><7F>~<7E>&@ $<24>"Aj<08><><EFBFBD><EFBFBD>~G <04><> <0A><>><3E><Jd/Dd4!jX5 BPC<50>u\<5C> 8b<38> mp&<26><><0F><>"<22><>"<22> P<><50><EFBFBD><EFBFBD>H<10><02>#<23>* <09><>A0h7!<21><>H<EFBFBD>I M<08>rD<72>F<EFBFBD><10>h<01><08><1E>Ɉ<15><>T p058<><15><><EFBFBD>H<05>!\<01>H<02><08><1E><><EFBFBD> <20>ݐψ<DD90><01> <18><01><>H<EFBFBD><1B>l<15> V p3"<15>V p5"<15>V <20><><EFBFBD><02> <18><01><><EFBFBD>X<EFBFBD>H<EFBFBD><48><EFBFBD><EFBFBD><EFBFBD>&@a<>#
<00>`<60><06>R&fq"t<>q2<71><15><>V@<40><><EFBFBD><02> <18><><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD><08><>G<EFBFBD><47>&@;<3B>E<b<> mp+m<>g<>'<27><>'<27> PNh<01>(<08>A<1B>J<EFBFBD><4A>E<EFBFBD><45><EFBFBD>}<7D><>hBTPZD<5A>#
<00>`<60><06>R'vQ#<23><><1F>2<EFBFBD>Ȅ<11><><EFBFBD><02> <18><><EFBFBD><EFBFBD><EFBFBD>^<5E><08><>G<EFBFBD><47>&@/<2F>E<b<> mp.}<7D>y<>*"<22>*<2A> PKh<01>(<08>A<1B>K<EFBFBD><4B>Ə<EFBFBD><C68F><EFBFBD><EFBFBD><EFBFBD>hBT<>ZD<5A>#
<00>`<60><06>R*<2A>!&<26><>"<22>2<EFBFBD><15><><11><><EFBFBD><02> <18><><EFBFBD><EFBFBD><EFBFBD>j<EFBFBD> <09><>H<EFBFBD><48>&@#<23>E<b<> mp/<2F><>h<>+2<>+<2B> PHh<01>(<08>A<1B>K<EFBFBD><4B>ƚ<EFBFBD><C69A><EFBFBD><EFBFBD><EFBFBD>hBT<>ZD<5A>#
<00>`<60><06>R+<2B><>&<26><>#<23>2<EFBFBD><15><><11><><EFBFBD><02> <18><><EFBFBD><EFBFBD><EFBFBD>n<EFBFBD> <09><>H<EFBFBD><48>&@<05><>E<b<> mp2<70><32>t<>.b<>.<2E> P=h<01>(<08>A<1B>L<EFBFBD><4C>ǝ<EFBFBD><C79D><EFBFBD><EFBFBD><EFBFBD>hBTZD<5A>#
<00>`<60>/S.<2E><>'<27><>&<26>2<EFBFBD><15><><11><><EFBFBD><02> <18><>̤<EFBFBD>z<EFBFBD> <09><>I<EFBFBD><49>&@<05><>E<b<> mp3<70><33><1E><>/r<>/<2F> P:h<01><08>Ќ<><15><>T p<05>e <0B><><15><><EFBFBD>H<05>"\<5C><>H<02><08><1E>L<EFBFBD> ʂP<CA82>ψ<EFBFBD><01> <18><><EFBFBD><EFBFBD>K*<2A>"<22>A0<03><><EFBFBD>`<60><>@ <0C><>m`F0T<>cv<12>ǂ@><3E>'A|F <04><> <0C>F_<46>$10<04>1<EFBFBD><31><EFBFBD> ,8<>cB"<22><11>A0<08><>9<EFBFBD>7<EFBFBD><37>ф@nx& F <04> <14>Fe<46><65>gF<13>a<EFBFBD>!3<>e <20> <20>%(*<2A>ߺ<03>"*<2A>5 <><EE80A4>
dM<EFBFBD>;P)b<>Y<><59>P<><18>@<40>4<EFBFBD><03>"*<2A>5 <><EE80A5>
dM<EFBFBD>;p)b<>h<><68>\<5C>n<08> f<19>#10Zx<1B>I<EFBFBD>A0<41><03>ٙ<EFBFBD>N<EFBFBD>F\<5C>f4!F<13>`4af <09><><0E>9Aq<15> V p:#<15> V p<#<15> V p)<29><>̌ ,p<18><08><>*<2A><><EFBFBD><EFBFBD>ʈ<EFBFBD><02> <18><><EFBFBD><EFBFBD>M0<4D><30><EFBFBD><EFBFBD><EFBFBD>hBT<>&Z<><5A><EFBFBD>pC`<60><>,<03>#
<00>`<60><06>#7<>:<3A><>7<EFBFBD> P<><50>h<06><>:0n2<>eH<65>`<60>@@ <0C>@|<7C><>N<>_Hg4!*P<13><><EFBFBD><EFBFBD>\g<><02> f<19>-1P<04>6@<1F><><EFBFBD><EFBFBD><19>M<08>
<EFBFBD>D+0،ځ<D88C>pC<70><43><EFBFBD>#
<00>`<60><06>C:<3A>0;);<3B> P<01>h3;0n<2<>e`<60>`<60>@@ ڀ~T<>r<>elg4!*8<13><>`<60><><06> <19><>,C<>#
<00>`<60><06>;d <20>N<EFBFBD><4E><EFBFBD>hBT`&Z<><5A><EFBFBD><06><><EFBFBD> <0A><1A><>,<2C><>#
<00>`<60> d;j <20><>Έ<EFBFBD>hBTP&Z<><5A>f<EFBFBD> <0C>8 <20>Y<EFBFBD>g F <04><> L<>w<EFBFBD>@X<><58>A<EFBFBD>ф<00><>L<EFBFBD><02><>Y 7v@<06> <0C><16>(<08>A<1B><><EFBFBD>؁?g<>><3E> P<><50>h<06><>?0n<08><> f<19>-1P<04>6<EFBFBD>!<21><><03>~چ~F<02>1<>
6 `0<><10><19>2H[0b<30> m<>C<EFBFBD>#
B<EFBFBD>̍<EFBFBD><EFBFBD>&@a<>l<><6C><EFBFBD>`<60>!@2<>e<EFBFBD><65>`<60>@@ <0C><><EFBFBD><EFBFBD><15><11>M<08>
<EFBFBD>D+0<><30><00>`0<><10><19>2P[0b<30> m@F<><46>
B
<EFBFBD><EFBFBD> <09>&@?<3F>lj<6C>B0nh<> f<19>-1P<04>6P#<10><05><>J<EFBFBD><4A>F<02><1F>
68X! 7<04>@<06> <0C><16>(<08>A<1B><> <09><>PC<50>#C<> PA<50>h<06><1D> <0C>p <20>Y<EFBFBD>k F <04><><><41><D8A1><EFBFBD>ф<00><>G<EFBFBD><02><>l<06> <0A>9<EFBFBD><39>,<03>#
<00>`<60>|$C<> <20><><EFBFBD><EFBFBD><EFBFBD>hBT<>#Z<><5A>&
:<04><1D>`<60>A0hQ<>!vΨw<CEA8>h4!*<2A><11><>`C5<><35>pC d0ˠm<CBA0><6D><EFBFBD><02> <18>*<2A><><m4>j4<6A><15><>V`<60>,<2C>6P<00>q<EFBFBD><06><1A>h(v<><76><05><13>L8&<26><><03><0E>8H<38>0<EFBFBD><02><07>Xfpi<70><69> ڈ<><01> <18><>)<29>PP<50> IW<>P!GX<47>m <0A>T<EFBFBD>CR<43><52><15><>T <20><><EFBFBD><01> <18>A,<2C>Qp<01>,<2C><1F><><08>A<19>R<05>S3QJ[<01>@~<7E>\AIt<>\<5C>Iw<>\J <0B>f$ <0B>#<00>`<60>
<EFBFBD><EFBFBD>G<EFBFBD>3b<EFBFBD> m<>N<EFBFBD> <0C>TB<54>4<EFBFBD><15><><EFBFBD>aK;<3B>d0<64><30><EFBFBD>A0b<30> m<>N<EFBFBD>d<08><>B<EFBFBD>4<EFBFBD><15><>V`<60><19><04>ᆀ!<21>Y<EFBFBD><59> <0A>A0h<30>zZ%F<>%<18><>ф<00><>o<EFBFBD><02>K
<EFBFBD>n$2<>e<EFBFBD><65> 1P<04>6اX<D8A7>p<><70>^M<08>
<EFBFBD>F+0<> t<><74>pC<70><43><EFBFBD>,<2C><><06><><EFBFBD><02> <18>AH<41>&<26><0F><>hBT<>7Z<37><5A>Ƙ <0C><02> f<19><> <0A>A0h<30><68><EFBFBD>%O`'1J<31>ф<00>@o<><02>M<EFBFBD>' 7d@<06> a<><06><><EFBFBD><02> <18>AK<41><08><>F<EFBFBD>4<EFBFBD><15><>V`<60>a<EFBFBD><04><><EFBFBD>@ <0A>`<60>A <0C> 1P<04>6<EFBFBD><36>tR<01>ܨ<EFBFBD>F<02><02><>
6Ϟ`0<><10><19>2<EFBFBD><32>#
<00>`<60>9<>Np <20><1D><>hBTp7Z<37><5A>F#<05><><EFBFBD><EFBFBD><0E>`<60><> <0C> 1P<04>6<EFBFBD><36>z<EFBFBD><03><><EFBFBD>(<28>F<02><02><>
65P) 7|@<06> e<><06><><EFBFBD><02> <18>AY<41>*J'5<>ԍV`<60><><EFBFBD>I<EFBFBD>`<60>!2<>e0<65>7F <04><> <0A>*<2A>DA<44>)Sj<53>ф<00><>n<EFBFBD><02><><0E> <06> *<2A><>,<2C><19>A0b<30> mW'<27>
<EFBFBD>M<EFBFBD><EFBFBD>L<EFBFBD>&@s<>l|S0n\<5C> f<19><> <0A>A0h<30><68>j)WxJ<78>rj4!*<2A><1B><>`<13><><EFBFBD><EFBFBD>pC@ d0ːo<10>(<08>A<1B><>Lт V<><56>S<EFBFBD> PA<50>h*<2A> <0C>] <20>Y5x<35>`<60>@@ <0C>`<60>rJ<04><><EFBFBD><EFBFBD>M<08>
<EFBFBD>F+0<>\A<>`0<><10><19>2<EFBFBD><32>#
<00>`<60><06><>S<EFBFBD> <20>9<><39>hBT<>6Z<36><5A>F .<05><><EFBFBD><EFBFBD><1C>`<60><> <0A> 1P<04>6x<36><78>2<07><><EFBFBD>)<29>F<02><02><>
6]0+ 7<04>@<06> m<><06><><EFBFBD><02> <18>Am<41>;zOw5<77><15><>V`<60><>C^<5E>`<60>!<21>2<>ep<65>7F <04><> v+<2B><>A-{<7B><>ф<00><>m<EFBFBD><02>g <09>`<60>4<00>c<EFBFBD> <0A>5:<3A><><EFBFBD><EFBFBD>S 0<><30>0<EFBFBD> 10<31>1<EFBFBD>2p<32>23<><33>3P4<><34>4<EFBFBD>50<35>5<EFBFBD><35><EFBFBD>i<03> F <04>r뭂
<EFBFBD>J*<10><>
<09><>
\kk<08><><EFBFBD><EFBFBD>
<04><><EFBFBD><EFBFBD><02>G <04><0F>K<EFBFBD><4B> e<>I<EFBFBD>g<EFBFBD><67>@ <0C><00><>*0<>A0<03>R-<2D>0<EFBFBD><30><EFBFBD>3b` c@_<>X0<58>g<EFBFBD><67>@ <0C><><EFBFBD><EFBFBD>j<EFBFBD><6A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N<EFBFBD>g<EFBFBD><67>@ <0C> <20>b+<18>ȓ~<1A><><06><12><><EFBFBD>=<3D><><EFBFBD>T@<1F><>?<3F><><05>|,TBE>򱠐<>(#R<><52><05>|,X<>c-u*<2A><>b<EFBFBD>ψ<02> <18>~<7E><>"#<00>``
<EFBFBD><EFBFBD>[<5B>fA򱠑ψ<02> <18><><7F>a#<00>``
<EFBFBD>^<5E>R+<2B>|,<2C><>c7<15>g<EFBFBD>@ L!<21><>A00+/Yт<11>A08 /<2F>#10<04>1<EFBFBD>1<EFBFBD>
,`<60>cB"
<EFBFBD><EFBFBD><08>)<29>z<><7A><EFBFBD>&<04><><EFBFBD><02> <18>A<EFBFBD><41><17><14>0bp e<>c<EFBFBD><15>Ԉ<EFBFBD><01> <18><01><>W V<>[<11>,<1E>A`<60>! x>v(<28><><EFBFBD>W<EFBFBD>cI# <0B>><3E> L`<01><>g<EFBFBD> *<10>2<EFBFBD>*<10>2<EFBFBD>*<10>2<EFBFBD>*<10>28<18>@Dː<44>`<60>-<03><><EFBFBD>
ķ <0E>f0+<18><><EFBFBD><19>*<2A>jl؀dl<00>f@+s<>a"<22>+؛!<21>f<EFBFBD>Ɔ <0A><><EFBFBD>`o<06><><EFBFBD>6 <20><1B>a<03><>/<02>n<EFBFBD><6E>˗A0p<30>+<2B><>1<> ;`3<>
<04><><EFBFBD><1D><>EI<45><49>i<18>j+:<00> n<10> f<19>@Jc<><63>@ l<01>T<EFBFBD><54>F <04><0E><>ł<EFBFBD><C582>f+<2B>F`4AFa<>@@ <0C>@<40>b<EFBFBD>Hv<48><76>zl4!F<13>`4aF <04><0E><>ƒ<EFBFBD><C692>v+<2B>F`4AFa<>@@ <0C>@<40>r<EFBFBD><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>l4!F<13>`4aF <04>L<>Ǣj<C7A2><6A>+<2B>F`4AFa<>@@ <0C>@<40>¬<EFBFBD><C2AC><EFBFBD><EFBFBD><EFBFBD>l4!F<13>`4aF <04>\<5C>̲n<CCB2><6E>+<2B>F`4AFa<>@@ <0C>`<60>Ҭ <0B><>r<EFBFBD>:M<08>A0`RK<52><4B>1P<04>6<EFBFBD>56 <0B>=<3D>/<M<08>A0h\s<><73><EFBFBD><EFBFBD><EFBFBD>ҳф<00>25)"<22>A0PV<>3<EFBFBD>1P<04>6<EFBFBD><36>9 Qï?M<08>*P *H`<60>@@ <0C> <20><><EFBFBD>L<><4C>Fm4!*!5<><35><EFBFBD>A0h<30>r۳$P5;<3B>ф<00><>A<05>v<15><><EFBFBD><08><>*蚟<>׈<EFBFBD><02> <18><><EFBFBD><EFBFBD>Z <20><><EFBFBD><EFBFBD><EFBFBD>hBak;b<> m<>n<EFBFBD>F<04><>b<EFBFBD>6<EFBFBD>u<>ڎ(<08>A<1B>۩<1D><><EFBFBD>ج<EFBFBD>&<04><1D><><02>7 <20><>^<5E>A0h<30>{k<>&<26>5˵ф<00> װ<>P<EFBFBD> u<03>L<EFBFBD>1<EFBFBD><31><EFBFBD>c<EFBFBD>1!<21><>c<EFBFBD><63><EFBFBD>g<EFBFBD><67>@ ƀ<><C680>M0 <0B>3b` c`r<>6<EFBFBD><10><>\,<2C>ψ<EFBFBD><01> <18>ʽZ<CABD>b<EFBFBD>H<> <09>Ř<10><><EFBFBD>`,X<>3<1C>Ę<EFBFBD>M7F`A<03><11>A08<30><38><EFBFBD>5"P<>@10<04>1<EFBFBD><31>^ <0B> <0A><15><>Uk:b<> m0s<30><73><01><>Y<EFBFBD><59>&@ <0A><>#
<00>`<60>6<>nl<10>[<5B><><EFBFBD>hB<00><>o;b<> m<>s<EFBFBD><73><06><><EFBFBD>پ<EFBFBD>&<04><1D><><02>7 <20><><EFBFBD><EFBFBD>A0h<30><68><EFBFBD><EFBFBD>:HN<48>Bn4!*9,!<21><>D݀(<13>L>&<26><>|L<>3<EFBFBD><33> g<>10<04>1`<60><><4C><CE82><08><><18>]<5D> &<04>1; <0B>3bp ew<><16><>pRg<52>gy&<26>g<EFBFBD>! <16> G,y&|<7C> <0A>X<><58>g<EFBFBD>`@ <0C><><EFBFBD>L<EFBFBD>"PF <04>` <0C><><EFBFBD><02><>_Aaw<15><><EFBFBD>(<08>A<1B>]<5D><>Bv<><76>s<EFBFBD> P<><50><02> <18><><EFBFBD><EFBFBD>-c<>k`7<>e<>ݎ(<08>A<1B><><EFBFBD><EFBFBD>B`v<>6v<36> pb<>@<40> <0A>-<2D><>v<EFBFBD>@@ <0C><><EFBFBD>z<EFBFBD><02><13><>M<08>
<EFBFBD>K<>9<EFBFBD>Q7 ʄs<CA84><73> <09>&r >&<26>|F <04>` h<><68>ӵ >#<00>`0<06><>w<EFBFBD> A|<7C>ׂ<EFBFBD><D782><08>A<19><><EFBFBD><05>6<1C><><EFBFBD><EFBFBD>Y<EFBFBD> <09><>n<06><>><3E>K<> <09>ta4<>1X<04>3<EFBFBD>=<3D>#<02><08>A0<03>k<EFBFBD>` <0C>-J<><4A>-<2D><><18>[<5B><> A|,<02>X<<08><>x<18>c<EFBFBD>p<EFBFBD><70>X<01><><EFBFBD>B" <0C><>`<60><>><3E><06>|L <18><>4<>1c<31><63>|<7C><18>c<EFBFBD><00><>u<><75> <09> <1F><>I><16><>|,0<>Xp
<EFBFBD>1<EFBFBD><14>c<EFBFBD><63><EFBFBD>ǂR<C782><52> |<7C>H<EFBFBD>c O><16><>|L(<03><><1B><>|,(<03>B<><42>><3E> <0C>1 6<>3b<33> <06><><EFBFBD><7F>X0b<30> <06><><EFBFBD><7F>X`<60>i@Ǹِψ<02> <18><><EFBFBD><EFBFBD>lp<6C><70><02> <18><06><>\`<60>j@<40><><EFBFBD>6<EFBFBD>3b<33> <06>0<EFBFBD><30><EFBFBD><EFBFBD>#<00>``
$<18>l<>A`Ak@<40>֐ψ<02> <18><> <06><>O0b<30> <06><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><13><><1A>1@SP<53><50><EFBFBD>VC
F <04><>V0p?Ԑ<02>`C>#<00>``
-<18>_kT<6B><54><02> <18><> <06><>U0b<30> g<><67>A<EFBFBD>Dp<10><><EFBFBD><01> <18>A<06>X<><58>DŽC>6<14>1X<04>3<18>@<40>!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>o<EFBFBD>a<0E> <20><>+<2B>cnW<6E><57>ޮ<EFBFBD><DEAE>,<2C><1D><08>A(<28>`<60><61>hB\<5C>0<03><>><16><>|,<2C>FO> <0C>1}*=<3D>XP<58><50>N<EFBFBD><4E><EFBFBD>c<EFBFBD><17><>D>#<00>` `<18>`w#
<00>`s<18>`<10>]<06>g<EFBFBD><67>hB<00>&<08>h<EFBFBD> <20>&<10>|<7C>h<EFBFBD>c#<14><>8<08><><1E>a<EFBFBD><61><EFBFBD><EFBFBD>vb<10><10><>#<00>`
q<18>`pwf<18>&<04>pC@<40><><19>2ԁ#<00>`
t<18>`<60>we<18>&<04><08> <09>c?"<22><>~d<>ψ<EFBFBD><01> Ȃ:<18>ވ<EFBFBD><02> <18><>)=<01><>a0<61><00> B0<42>06 <20><><01><> |F <04>@L1<4C><31><00><>9 !<21><><EFBFBD><EFBFBD><EFBFBD>`<60><>F <04> D1<00><00><>0M <0B>0<00>,<2C> t <20>0<07> j<1A><>@<07> s@r<><72><EFBFBD> t <20>0<07> j<1A><>@"s r<><72><EFBFBD> t ,1,!j<1A><>@bs`r<><72><EFBFBD> tj́<>r<>؁<05><18>`<60><>@ B<><15>5 f<><0F>ф`n 4<>e(<28> <20><11>A0X <0C>0<EFBFBD><30>P Fa4A,8<><04> C<06> z<><07><><EFBFBD><01> <18><>+u<18>ވ<EFBFBD><02> <18>A8x<04>w<EFBFBD><77><EFBFBD><EFBFBD>b0<62><00> B0<42>0<08> <09>0b<30> g<><67><EFBFBD><06> B0b` c<><63><EFBFBD><06><15>' <04><><11><>|, <20>c<EFBFBD><06><><EFBFBD><EFBFBD>ψA<03> <18><>9i<18>`P <01>(<28>pD`<>|<10><><EFBFBD>1X<04>3<EFBFBD><33>@<03> <20><>1!<21>ψ<EFBFBD><01> <18><>=<06><04>|0P<30>{<7B><><EFBFBD><1E><14><>$A>& <0A>1p=<3D><>@,<2C>v1@0<00> v11p=<3D><>@,<2C>l1@0<00> v11p=<3D><>@,<2C>z1@0<00> v110<04>1<EFBFBD><31>@‚ <0C>3b` c<><63><EFBFBD><06>(<18><>J0<08>3b` <06><><EFBFBD><EFBFBD>,<06>7b<37> p<><70>A-<06><><EFBFBD>c<EFBFBD><63>A8<06> A0<41> <08> <09>`<60>!<0E>؀<EFBFBD>g<EFBFBD><67>@ <0C><><1F>[ <10>C<EFBFBD>`h<><68><05> <0C>0@<40>`<60><>@ <0C><><1F>[ <10><1B>@h<><68><05> <0C>0@<40>`<60><>@ <0C><><1F>[ <10>S<EFBFBD> h<><68><05> <0C>0@<40>`<60><>0 B[<5B><00><><>Ö<EFBFBD>@<40>a<EFBFBD>P <20><>eP<65><1F> <0C><><EFBFBD>Ö_|<7C>2<EFBFBD>˃[<06>y<EFBFBD>a<EFBFBD><61>2>lh<><68><EFBFBD>-<2D><><<3C><>e<10><1F> i<><69>Ön|<7C>2<EFBFBD>̓[<06>y<EFBFBD>a<EFBFBD>P:>lX<><58><EFBFBD>-<2D><><<3C><>eН<1F> <0C><><EFBFBD>Ö}|<7C>2<EFBFBD>Ѓ[z<>a<EFBFBD><61>C>l<19><><EFBFBD><EFBFBD>-C=<3D><>e<EFBFBD><65><1F> {<7B><>ÖA<C396>|<7C>2<EFBFBD>҃[Xz<58>a<EFBFBD>pK>l|<7C><><EFBFBD>-C9=<3D><>e`<60><1F> <0C><><EFBFBD>ÖA<C396>|<7C>2<EFBFBD>ԃ[<06>z<EFBFBD>a<EFBFBD><61>R>l<19> <0B><>-<2D>y!<21><>eH/<2F><1F> <0C><><EFBFBD>Ö<EFBFBD><C396><EFBFBD><EFBFBD>@<40>a <01><00>s<<00>8<EFBFBD>a .A,(M<>(Z<><5A>(<28><00>3<18>E<EFBFBD>f<EFBFBD><08><1D><>1bP tLjA<01> <18><>#<00>`@sp 7\<00><><1E>6 <20>c<00>f<EFBFBD><66>16 <20>c<00>f<EFBFBD><66><EFBFBD>6 e<00>f<EFBFBD>€ <0C> <0A><19><>&1<><31> <0A><> <00>s<00>!<21>d:<3A>`<60> 1[<5B> 0 A<><41>DynamicGISkyOcclusion.urtshaderh#define UNIFIED_RT_BACKEND_HARDWARE
#pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal webgpu
#define UNIFIED_RT_GROUP_SIZE_X 64
#define UNIFIED_RT_GROUP_SIZE_Y 1
#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/FetchGeometry.hlsl"
#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl"
#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common.hlsl"
#include "Packages/com.unity.render-pipelines.core/Runtime/Sampling/QuasiRandom.hlsl"
#include "Packages/com.unity.render-pipelines.core/Runtime/Sampling/Common.hlsl"
UNIFIED_RT_DECLARE_ACCEL_STRUCT(_AccelStruct);
int _SampleCount;
int _SampleId;
int _MaxBounces;
float _OffsetRay;
float _AverageAlbedo;
int _BackFaceCulling;
int _BakeSkyShadingDirection;
StructuredBuffer<float3> _ProbePositions;
RWStructuredBuffer<float4> _SkyOcclusionOut;
RWStructuredBuffer<float3> _SkyShadingOut;
void RayGenExecute(UnifiedRT::DispatchInfo dispatchInfo)
{
const float kSHBasis0 = 0.28209479177387814347f;
const float kSHBasis1 = 0.48860251190291992159f;
int probeId = dispatchInfo.globalThreadIndex;
QrngSobol rngState;
rngState.Init(uint2((uint)probeId, 0), _SampleId);
if (_SampleId==0)
{
_SkyOcclusionOut[probeId] = float4(0,0,0,0);
if (_BakeSkyShadingDirection > 0)
_SkyShadingOut[probeId] = float3(0,0,0);
}
UnifiedRT::RayTracingAccelStruct accelStruct = UNIFIED_RT_GET_ACCEL_STRUCT(_AccelStruct);
float2 u = float2(rngState.GetFloat(0), rngState.GetFloat(1));
float3 rayFirstDirection = MapSquareToSphere(u);
float pathWeight = 4.0f * PI; // 1 / SphereSamplePDF
float3 normalWS = float3(0,1,0);
float3 hitPointWS = float3(0,0,0);
uint rayFlags = 0x0;
if(_BackFaceCulling != 0)
rayFlags = UnifiedRT::kRayFlagCullBackFacingTriangles;
for (int bounceIndex=0; bounceIndex < _MaxBounces+1; bounceIndex++)
{
UnifiedRT::Ray ray;
ray.tMin = 0;
ray.tMax = FLT_MAX;
ray.origin = float3(0, 0, 0);
ray.direction = float3(0, 0, 0);
UnifiedRT::Hit hitResult;
if (bounceIndex==0)
{
ray.direction = rayFirstDirection;
ray.origin = _ProbePositions[probeId].xyz;
}
else
{
u = float2(rngState.GetFloat(2*bounceIndex), rngState.GetFloat(2*bounceIndex+1));
SampleDiffuseBrdf(u, normalWS, ray.direction);
ray.direction = normalize(ray.direction);
ray.origin = hitPointWS + _OffsetRay * ray.direction;
float cosTheta = clamp(dot(normalWS, ray.direction),0.f,1.0f);
if(cosTheta < 0.001f)
break;
pathWeight = pathWeight * _AverageAlbedo; // cosTheta * avgAlbedo / PI * PI/(cosTheta) == avgAlbedo
}
bool hasHit = false;
hitResult = UnifiedRT::TraceRayClosestHit(dispatchInfo, accelStruct, 0xFFFFFFFF, ray, rayFlags);
hasHit = hitResult.IsValid();
if (hasHit)
{
UnifiedRT::InstanceData instanceInfo = UnifiedRT::GetInstance(hitResult.instanceID);
UnifiedRT::HitGeomAttributes hitGeom = UnifiedRT::FetchHitGeomAttributesInWorldSpace(instanceInfo, hitResult);
hitPointWS = hitGeom.position;
normalWS = hitGeom.normal;
if (dot(normalWS, ray.direction) > 0.0f) // flip normal if hitting backface
normalWS *= -1.0f;
}
else
{
float norm = pathWeight / (float)_SampleCount;
// Layout is DC, x, y, z
float4 tempSH = float4(
norm * kSHBasis0,
rayFirstDirection.x * norm * kSHBasis1,
rayFirstDirection.y * norm * kSHBasis1,
rayFirstDirection.z * norm * kSHBasis1);
_SkyOcclusionOut[probeId] += tempSH;
if(_BakeSkyShadingDirection > 0)
_SkyShadingOut[probeId] += ray.direction / _SampleCount;
// break the loop;
bounceIndex = _MaxBounces + 2;
}
}
// Last sample
if (_SampleId == _SampleCount - 1)
{
// Window L1 coefficients to make sure no value is negative when sampling SH, layout is DC, x, y, z
float4 SHData = _SkyOcclusionOut[probeId];
// find main direction for light
float3 mainDir;
mainDir.x = SHData.y;
mainDir.y = SHData.z;
mainDir.z = SHData.w;
mainDir = normalize(mainDir);
// find the value in the opposite direction, which is the lowest value in the SH
float4 temp2 = float4(kSHBasis0, kSHBasis1 * -mainDir.x, kSHBasis1 * -mainDir.y, kSHBasis1 * -mainDir.z);
float value = dot(temp2, SHData);
float windowL1 = 1.0f;
if (value < 0.0f)
{
// find the L1 factor for this value to be null instead of negative
windowL1 = -(temp2.x * SHData.x) / dot(temp2.yzw, SHData.yzw);
windowL1 = saturate(windowL1);
}
_SkyOcclusionOut[probeId].yzw *= windowL1;
float radianceToIrradianceFactor = 2.0f / 3.0f;
// This is a hacky solution for mitigating the radianceToIrradianceFactor based on the previous windowing operation.
// The 1.125f exponent comes from experimental testing. It's the value that works the best when trying to match a bake and deringing done with the lightmapper, but it has no theoretical explanation.
// In the future, we should replace these custom windowing and deringing operations with the ones used in the lightmapper to implement a more academical solution.
_SkyOcclusionOut[probeId].yzw *= lerp(1.0f, radianceToIrradianceFactor, pow(windowL1, 1.125f));
}
}
#ifdef UNIFIED_RT_BACKEND_COMPUTE
#pragma kernel EncodeShadingDirection
StructuredBuffer<float3> _SkyShadingPrecomputedDirection;
StructuredBuffer<float3> _SkyShadingDirections;
RWStructuredBuffer<uint> _SkyShadingIndices;
uint _ProbeCount;
uint LinearSearchClosestDirection(float3 direction)
{
int indexMax = 255;
float bestDot = -10.0f;
int bestIndex = 0;
for (int index=0; index< indexMax; index++)
{
float currentDot = dot(direction, _SkyShadingPrecomputedDirection[index]);
if (currentDot > bestDot)
{
bestDot = currentDot;
bestIndex = index;
}
}
return bestIndex;
}
[numthreads(64, 1, 1)]
void EncodeShadingDirection(uint probeId : SV_DispatchThreadID)
{
if (probeId >= _ProbeCount)
return;
uint bestDirectionIndex = 255;
float norm = length(_SkyShadingDirections[probeId]);
if (norm > 0.0001f)
bestDirectionIndex = LinearSearchClosestDirection(_SkyShadingDirections[probeId] / norm);
_SkyShadingIndices[probeId] = bestDirectionIndex;
}
#endif
#include_with_pragmas "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRaygenShader.hlsl"
nPackages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/DynamicGI/DynamicGISkyOcclusion.urtshaderX<><05><><EFBFBD>E<>i<EFBFBD>i"<22>`<60><><EFBFBD><EFBFBD><00>T<EFBFBD><54>K<EFBFBD><01><><EFBFBD><15><><EFBFBD>۸<00>y<EFBFBD>