Files
DedicatedServerCourse/Content/Functions/GBuffer/WorldPositionToScreenUV.uasset

72 lines
26 KiB
Plaintext
Raw Normal View History

<EFBFBD><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD>`
<00><00>C><3E><>R<EFBFBD>G <17>Uv<> <0C><>#<00><>}i<>AO<41><4F>QJ<51>(<28><><EFBFBD>y"<22>T<EFBFBD><54>O&<26>F!<21>Ђ<EFBFBD>a,<00>2ذ O<><1F><>J<EFBFBD>6
b'<27>
#<23>6<EFBFBD>˫_'q?t<>πD<CF80>C<EFBFBD><14><>s %B^<5E><>FM<46>$<24><><12>yd<>=<00>h<EFBFBD><68><EFBFBD>B<EFBFBD><42> <0B>1<EFBFBD>A<EFBFBD>F.(<00>z<EFBFBD><7A><EFBFBD>BvPX橹2-<2D><>]0/Game/Functions/GBuffer/WorldPositionToScreenUV<00><00>\!81EB94E0479F0F0A526A9AB394BE0602\ ,<00><00> <00> O<00> <00>!<00>!<00>g\<<3C><>D<EFBFBD>zşA<C59F><41> <00><00><>k<EFBFBD><00>!<00>e<00><><EFBFBD><EFBFBD><EFBFBD>#<00><00>e/Script/CoreUObject<00>I->/Script/DataHierarchyEditor<00>h<>/Script/Niagara<00>GZ`/Script/NiagaraCore<00><><EFBFBD>F/Script/NiagaraEditor<00>p<EFBFBD>oAdd<00>(<28><>AdditionalDefines<1D><><EFBFBD>AdditionalVariables<00>{<7B>4ArrayPropertyI<><49>iBaseIdK<1D><>BaseScriptCompileHash<15>)<29>bCanBeUsedForTypeConversions;<1F><> bDeprecated<00><>PbDisableDebugSwitchesA<>ҖbExperimentalu<1F><>"bHasValidLastBuiltScriptVersionId<00><>A<EFBFBD>bIsVisibleInVersionSelectortD<74><44> BoolProperty<04><>bRequiresPersistentIDs<00><1D>d bSuggestedI<14>bUsePythonScriptConversion%HM\bUsesRapidIterationParams<00>³<EFBFBD>bVersioningEnabledq2<71><32> ByteProperty<00>N-<2D>CachedUsageInfo*ث!CallSortPriority<00><>ԥ Category<00>~<7E><> ChangeId<00>7T<37>ClassStructOrEnum3g<14>CollapsedViewFormat
<EFBFBD>4<EFBFBD> CompileHash<00><>dCompileHashFromGraphv<>j<EFBFBD>CompilerVersionID]<5D><><EFBFBD>ConversionScriptAsset<07>r<EFBFBD>ConversionScriptExecutionE<><13>ConversionUtility<00>G<EFBFBD>y CustomHlslz<>0<EFBFBD> DataHash}Fe<46>DebugDrawMessage<00><><EFBFBD>ADeprecationMessage<00><> <20>DeprecationRecommendation􄶕 Description*<2A> DynamicAddPin<00>`eEENiagaraInterpolatedSpawnMode<00>M<1D>/ENiagaraInterpolatedSpawnMode::NoInterpolation<00><>+<2B>'ENiagaraNumericOutputTypeSelectionMode<00><>`k0ENiagaraNumericOutputTypeSelectionMode::Largest<00>RC<52>$ENiagaraPythonUpdateScriptReference<00><><EFBFBD><EFBFBD>*ENiagaraPythonUpdateScriptReference::NoneV<15><>1ENiagaraPythonUpdateScriptReference::ScriptAssetn<>~ ENiagaraScriptLibraryVisibility<00><><EFBFBD>)ENiagaraScriptLibraryVisibility::Library<00>9<EFBFBD><39>ENiagaraScriptUsage<00> <0B>mENiagaraScriptUsage::Function<00>Қ9 EnumPropertyQם@
ErrorTypet0<>ExperimentalMessage<00>U<EFBFBD>`ExposedVersion<00><><12> FilePath+<2B><>&FlagsA<><41>~
GraphGuid<00><><EFBFBD>vGuidCP<43>hGuids <20><>HierarchyElementIdentity<00><0F>P Identity<00><><EFBFBD>R In_SamplePos<00><><08>InlineExpressionFormat<00>ܡ<EFBFBD>InlineGraphFormatM+<2B>InlineOverviewDisplayNameM<><4D>Input|<7C><><EFBFBD>Inputs<00><><EFBFBD>InterpolatedSpawnMode>A; IntProperty<00><>6JIs Inside View<00>5e IsInsideView<0E>2C KeywordsC-N<>LastBuiltScriptVersionId]<1E>LastBuiltTraversalDataChangeId<17>R<EFBFBD>LastGeneratedVMId<00><><EFBFBD>yLibraryVisibilityQ<16>K MajorVersion<00><1A><> MapProperty5<><35><EFBFBD> MinorVersion<00><> IMisc<00> <0B>gModuleUsageBitmaskl4]? NameProperty<00><>JNiagaraAssetVersion<1B><>MNiagaraCompileHash<00>~o<>NiagaraFunctionSignature<00>)<1F>NiagaraGraphScriptUsageInfoy<>9%NiagaraInlineDynamicInputFormatToken J<>NiagaraModuleDependency<00>r#<23>NiagaraParameterStoreQ<>NiagaraVariablej<>'NiagaraVariableBase<00>=<3D>/NiagaraVMExecutableDataId<00>Ź<EFBFBD>
NodeGraphT<16> NodeGuidѬ<04> NodePosX<00>[<5B> NodePosYrF<72>eNodes<00><><EFBFBD>lNone<00><03> NoteMessageU<>ͿNumericOutputTypeSelectionModek<>ObjectProperty<41>Outputs<03><1C>PackageLocalizationNamespacety<74>!ParameterDefinitionsSubscriptionDP<44><50>"ParameterDefinitionsSubscriptions%'Z>ParameterHierarchyRootZProvidedDependenciesX<>N<EFBFBD>PythonConversionScript \<5C><>PythonUpdateScript<00><07>RapidIterationParameters~G1[ReferencedCompileHashes<00>J<EFBFBD>bReferenceHashFromGraph<00><>`<60>RequiredDependencies<00><><1E>
Screen UV<00><0F>] ScreenUV<00><><<3C> ScriptAssetlv<6C>tScriptMetaData+<2B><>}ScriptUsageType<<3C><><EFBFBD>ScriptUsageTypeID<00><>]uScriptVersionID<05><>
Signature<00>fbWSourceV9<56><39> StrProperty;<3B>r$StructProperty0<00><> TextProperty<00>:t<>
Traversal<00><><EFBFBD>5Type<00>Fr<46>UInt16Property<00>O`0UnderlyingType<00>
<EFBFBD>UpdateScriptExecution<00>4<EFBFBD><34>UsageId<00><><EFBFBD>&
UsageTypes`9zVersion|<7C>a^VersionChangeDescriptionA<><41> VersionData<00><14><>VersionedNiagaraScriptData<17><><EFBFBD> VersionGuid<00> 8{World Position<00><><EFBFBD><EFBFBD>WorldPosition<00><><EFBFBD>F0/Game/Functions/GBuffer/WorldPositionToScreenUV<00>}C<>Classtwx<77>Default__NiagaraGraph<00>SP<53>HierarchyRootU<><55>* NiagaraBool֛D NiagaraGraphy7<>NiagaraNodeCustomHlsls<><73>JNiagaraNodeInput<00><07><>NiagaraNodeOutput'<27><><EFBFBD>NiagaraPositionv<03>tNiagaraScript<00><><EFBFBD>NiagaraScriptSourceP[-PackagesG<73> ScriptStructK<15><> Vector2f; <0B>n Vector3f]GnWorldPositionToScreenUV<00><><EFBFBD><EFBFBD>UV!5C8106184820D1CEBAAA158031B1CE84l/Game/Functions/GBuffer/WorldPositionToScreenUV.WorldPositionToScreenUV.VersionData(0).VersionData.Category!5C8106184820D1CEBAAA158031B1CE84l/Game/Functions/GBuffer/WorldPositionToScreenUV.WorldPositionToScreenUV.VersionData(1).VersionData.Category<00>This function only works on GPU Emitters, and is useful for GPU specific features such as sampling the Gbuffer and inside Simulation Stages!67FF01B8419F5C86F2F27E93A119C80Cw/Game/Functions/GBuffer/WorldPositionToScreenUV.WorldPositionToScreenUV.VersionData(0).VersionData.ExperimentalMessage!67FF01B8419F5C86F2F27E93A119C80Cw/Game/Functions/GBuffer/WorldPositionToScreenUV.WorldPositionToScreenUV.VersionData(1).VersionData.ExperimentalMessage5Gbuffer buffer depth basecolor UV Clip Clipspace NDC!99EFE6A74B08F1B353D4908E96721AB4l/Game/Functions/GBuffer/WorldPositionToScreenUV.WorldPositionToScreenUV.VersionData(0).VersionData.Keywords!99EFE6A74B08F1B353D4908E96721AB4l/Game/Functions/GBuffer/WorldPositionToScreenUV.WorldPositionToScreenUV.VersionData(1).VersionData.KeywordsEChange input to Position and support LWC conversion to screen space.!7B0F5BDB43CF965C4230649520B0EBA0|/Game/Functions/GBuffer/WorldPositionToScreenUV.WorldPositionToScreenUV.VersionData(1).VersionData.VersionChangeDescriptionj!81EB94E0479F0F0A526A9AB394BE0602<00><00><><EFBFBD><EFBFBD><EFBFBD>e<00><00><><EFBFBD><EFBFBD><EFBFBD>e<00><00><><EFBFBD><EFBFBD><EFBFBD>e<00><00><><EFBFBD><EFBFBD><EFBFBD>e<00><00><><EFBFBD><EFBFBD><EFBFBD>e<00><00><><EFBFBD><EFBFBD><EFBFBD>e<00><00><><EFBFBD><EFBFBD><EFBFBD>e<00><00><><EFBFBD><EFBFBD>me<00><00><><EFBFBD><EFBFBD><EFBFBD>e<00>e<00>e<00>e<00>e<00><00><><EFBFBD><EFBFBD><EFBFBD>e<00><00><><EFBFBD><EFBFBD><EFBFBD>e<00><00><><EFBFBD><EFBFBD><EFBFBD>e<00><00><><EFBFBD><EFBFBD><EFBFBD>e<00><><EFBFBD><EFBFBD>m<00><00>#<00><><EFBFBD><EFBFBD><00><00><><EFBFBD><EFBFBD>m<00>&$<00><><EFBFBD><EFBFBD><00><00><><EFBFBD><EFBFBD> <00>#<00>$<00><><EFBFBD><EFBFBD><00><><EFBFBD><EFBFBD> <00>#<00>(<00><><EFBFBD><EFBFBD><00><><EFBFBD><EFBFBD><00><00>-<00><><EFBFBD><EFBFBD><00><00><><EFBFBD><EFBFBD><00><00> <00>5<00><><EFBFBD><EFBFBD><00><00><><EFBFBD><EFBFBD><00>i<00>?<00><><EFBFBD><EFBFBD><00><00><><EFBFBD><EFBFBD><00>i`B<00><><EFBFBD><EFBFBD><00><00><><EFBFBD><EFBFBD><00><00><00>D<00><><EFBFBD><EFBFBD><00><00><><EFBFBD><EFBFBD><00><00><00>H<00><><EFBFBD><EFBFBD><00><00><><EFBFBD><EFBFBD><00>J?L<00><><EFBFBD><EFBFBD>F
 
 
 #WorldPositionToScreenUV/Script/Niagara.NiagaraScript
bDeprecated0 bSuggested0 CategoryUVClassUsageList{/Script/NiagaraEditor.NiagaraNodeCustomHlsl
/Script/NiagaraEditor.NiagaraNodeInput
/Script/NiagaraEditor.NiagaraNodeOutput Keywords5Gbuffer buffer depth basecolor UV Clip Clipspace NDCLibraryVisibilityLibraryModuleUsageBitmask249NiagaraCustomVersion90PreviewMoviePathNoneUsage Function@?Y>=<00>` ><07>]L<>3ۄi<DB84><69>Cee@?Y>=<00>` ><07>]L<>3ۄi<DB84><69>Cee=<08><>31"<22><>G<EFBFBD>:uL<75><4C>i<EFBFBD>M=<08><>31"<22><>G<EFBFBD>:uL<75><4C>i<EFBFBD>L=T<><54>٘<EFBFBD><D998><EFBFBD>(TҠ<54>e<EFBFBD><65>Yj =xA/<2F><1F>@<40>BE<42><45><EFBFBD>T4<54>645<00>=WE%<00> <20>)"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>[`<60><><EFBFBD><EFBFBD>eWE%P֞L<D69E><4C>GH<10>VV& <0B><>:<3A>esWE%<00>9<EFBFBD><39>^kK 2U<32><55><EFBFBD>`<18><><EFBFBD> e<00>h emhdh <=<08>Px<50><78>3<EFBFBD>M<EFBFBD><4D><EFBFBD><1A><><1A>e=<08><>kcR=K<>C|<7C><1E><>M=<08><>kcR=K<>C|<7C><1E><>L=T<><54>٘<EFBFBD><D998><EFBFBD>(TҠ<54>e<EFBFBD><65>Yj =xA/<2F><1F>@<40>BE<42><45><EFBFBD>T4<54>645<00>=WE%<00>]<1C><><EFBFBD>o<EF9599><6F><EFBFBD><EFBFBD><EFBFBD>u>p<>eWE%Xj(m<>
<20>X<EFBFBD>x<EFBFBD>ޝ|<7C><>l<EFBFBD>esWE%<00>9<EFBFBD><39>^kK 2U<32><55><EFBFBD>`<18><><EFBFBD> e<00>h
emhdh
<=<08>Px<50><78>3<EFBFBD>M<EFBFBD><4D><EFBFBD><1A><><1A>e$~ScreenUV = float2(0,0);
IsInsideView = true;
#if GPU_SIMULATION
float4 SamplePosition = float4(In_SamplePos, 1);
float4 ClipPosition = mul(SamplePosition, View.WorldToClip);
float2 ScreenPosition = ClipPosition.xy / ClipPosition.w;
// Check if the sample is inside the view.
if (all(abs(ScreenPosition.xy) <= float2(1, 1)))
{
IsInsideView = true;
ScreenUV = ScreenPosition * View.ScreenPositionScaleBias.xy + View.ScreenPositionScaleBias.wz;
}
else
{
IsInsideView = false;
}
#endif|X<00>F]vAh<00><><EFBFBD><EFBFBD><EFBFBD><00>;e i^<00>vh<00><><EFBFBD><EFBFBD><EFBFBD><00>;eJh<00><><EFBFBD><EFBFBD><EFBFBD><00>;ee=<08><>Z,<2C>Y<EFBFBD>F<EFBFBD>֖<EFBFBD>q!><3E>bH<00><><EFBFBD><EFBFBD>cH<00><><EFBFBD><EFBFBD>a=<08><><EFBFBD>$<24>0GO<47><4F>QR<51><19>e<00><>iJ<>I<EFBFBD><49>ϙ!U<><00><>iJ<>I<EFBFBD><49>ϙ!U<>A<00><00><><EFBFBD><EFBFBD><00>e<00><><EFBFBD><EFBFBD>e<00><00><>™2D<32>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD> <00><><01>G<EFBFBD>K<><4B><EFBFBD>*Wq<57><00><><01>G<EFBFBD>K<><4B><EFBFBD>*Wq<57>v<00><00><><EFBFBD><EFBFBD><01>e<00><><EFBFBD><EFBFBD>e<00> <00>v6<76><36>];@<40>e<EFBFBD>ű<EFBFBD><C5B1>j`誯<><E8AAAF>L<>+E<>```誯<><E8AAAF>L<>+E<>``<00><00><><EFBFBD><EFBFBD>S*e<00><00><><EFBFBD>i<17><>N<EFBFBD><16><>b<EFBFBD><62><EFBFBD><00><><EFBFBD>i<17><>N<EFBFBD><16><>b<EFBFBD><62><EFBFBD>J<00><00><><EFBFBD><EFBFBD><01>e<00><><EFBFBD><EFBFBD>e<00> <00><>{<7B><>;K<>ȾG<C8BE><47>+<2B><00><>m<>.NB<4E>/-<2D><>J<EFBFBD><00><>m<>.NB<4E>/-<2D><>J<EFBFBD><00><00><><EFBFBD><EFBFBD>S*e<00>$~<00><00>ScreenUV = float2(0,0);
IsInsideView = true;
#if GPU_SIMULATION
FLWCVector3 LwcWorldPosition = MakeLWCVector3(GetEngineOwnerLWCTile(), WorldPosition);
float3 TranslatedWorldPosition = LWCToFloat(LWCAdd(LwcWorldPosition, PrimaryView.TileOffset.PreViewTranslation));
float4 SamplePosition = float4(TranslatedWorldPosition, 1);
float4 ClipPosition = mul(SamplePosition, View.TranslatedWorldToClip);
float2 ScreenPosition = ClipPosition.xy / ClipPosition.w;
// Check if the sample is inside the view.
if (all(abs(ScreenPosition.xy) <= float2(1, 1)))
{
IsInsideView = true;
ScreenUV = ScreenPosition * View.ScreenPositionScaleBias.xy + View.ScreenPositionScaleBias.wz;
}
else
{
IsInsideView = false;
}
#endif|X<00>F]v<00>h<00><><EFBFBD><EFBFBD><EFBFBD><00>;e i^<00>vh<00><><EFBFBD><EFBFBD><EFBFBD><00>;eJh<00><><EFBFBD><EFBFBD><EFBFBD><00>;ee=\<5C>dlk<6C>K<EFBFBD>9{<7B>W<EFBFBD><57>bH<00><><EFBFBD><EFBFBD>cH<00><><EFBFBD><EFBFBD>a=<08><><EFBFBD>$<24>0GO<47><4F>QR<51><19>e`誯<><E8AAAF>L<>+E<>```誯<><E8AAAF>L<>+E<>``<1B><00><00><><EFBFBD><EFBFBD><00>e<00><><EFBFBD><EFBFBD>e0.000,0.000,0.0000.000,0.000,0.000<00><00><>™2D<32>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD> <00><><01>G<EFBFBD>K<><4B><EFBFBD>*Wq<57><00><><01>G<EFBFBD>K<><4B><EFBFBD>*Wq<57>v<00><00><><EFBFBD><EFBFBD><01>e<00><><EFBFBD><EFBFBD>e<00>
<00>v6<76><36>];@<40>e<EFBFBD>ű<EFBFBD><C5B1>j<00><><EFBFBD>i<17><>N<EFBFBD><16><>b<EFBFBD><62><EFBFBD><00><><EFBFBD>i<17><>N<EFBFBD><16><>b<EFBFBD><62><EFBFBD>J<00><00><><EFBFBD><EFBFBD><01>e<00><><EFBFBD><EFBFBD>e<00>
<00><>{<7B><>;K<>ȾG<C8BE><47>+<2B>;<3B>x<EFBFBD>2KK<4B>k<00>v<EFBFBD>w<EFBFBD>;<3B>x<EFBFBD>2KK<4B>k<00>v<EFBFBD>w<EFBFBD><00><00><><EFBFBD><EFBFBD>S*e<00><00><>m<>.NB<4E>/-<2D><>J<EFBFBD><00><>m<>.NB<4E>/-<2D><>J<EFBFBD><00><00><><EFBFBD><EFBFBD>S*e<00>E]r<08>h<00><><EFBFBD><EFBFBD><EFBFBD><00>;e H=$<24>D<EFBFBD><44><EFBFBD><EFBFBD>O<EFBFBD>P(<28>d<EFBFBD>q%bH<00><><EFBFBD><EFBFBD>cH<00><><EFBFBD><EFBFBD>a=<50>hN<68>I<EFBFBD>pv<70><<3C>d<EFBFBD>e<00><>™2D<32>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD> <00><>™2D<32>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD> E<00><00><><EFBFBD><EFBFBD><01>e<00><><EFBFBD><EFBFBD>e<00><00><>iJ<>I<EFBFBD><49>ϙ!U<>E]r<08>h<00><><EFBFBD><EFBFBD><EFBFBD><00>;e H=<08><0F><>B<EFBFBD><42>I<EFBFBD>-<2D><><EFBFBD><EFBFBD>"<22>bH<00><><EFBFBD><EFBFBD>cH<00><><EFBFBD><EFBFBD>a=<50>hN<68>I<EFBFBD>pv<70><<3C>d<EFBFBD>e<00><>™2D<32>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD> <00><>™2D<32>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD> E<00><00><><EFBFBD><EFBFBD><01>e<00><><EFBFBD><EFBFBD>e<00>`誯<><E8AAAF>L<>+E<>``i]<00>uh<00><><EFBFBD><EFBFBD><EFBFBD><00>;eIh<00><><EFBFBD><EFBFBD><EFBFBD><00>;e=<W<><57><EFBFBD><EFBFBD>M<EFBFBD>q{<7B> -t_bH<00>cH<00><><EFBFBD><EFBFBD>7Ha=<08><><0E>ʮ^G<>cr<63>=/`e <00>v6<76><36>];@<40>e<EFBFBD>ű<EFBFBD><C5B1>j <00>v6<76><36>];@<40>e<EFBFBD>ű<EFBFBD><C5B1>ju<00><00><><EFBFBD><EFBFBD><00>e<00><><EFBFBD><EFBFBD>e<00><00><><01>G<EFBFBD>K<><4B><EFBFBD>*Wq<57> <00><>{<7B><>;K<>ȾG<C8BE><47>+<2B> <00><>{<7B><>;K<>ȾG<C8BE><47>+<2B>I<00><00><><EFBFBD><EFBFBD><00>e<00><><EFBFBD><EFBFBD>e<00><00><><EFBFBD>i<17><>N<EFBFBD><16><>b<EFBFBD><62><EFBFBD>i]<00>uh<00><><EFBFBD><EFBFBD><EFBFBD><00>;eIh<00><><EFBFBD><EFBFBD><EFBFBD><00>;e=<W<><57><EFBFBD><EFBFBD>M<EFBFBD>q{<7B> -t_bHcH<00><><EFBFBD><EFBFBD>7Ha=<08><><0E>ʮ^G<>cr<63>=/`e
<00>v6<76><36>];@<40>e<EFBFBD>ű<EFBFBD><C5B1>j
<00>v6<76><36>];@<40>e<EFBFBD>ű<EFBFBD><C5B1>ju<00><00><><EFBFBD><EFBFBD><00>e<00><><EFBFBD><EFBFBD>e<00><00><><01>G<EFBFBD>K<><4B><EFBFBD>*Wq<57>
<00><>{<7B><>;K<>ȾG<C8BE><47>+<2B>
<00><>{<7B><>;K<>ȾG<C8BE><47>+<2B>I<00><00><><EFBFBD><EFBFBD><00>e<00><><EFBFBD><EFBFBD>e<00><00><><EFBFBD>i<17><>N<EFBFBD><16><>b<EFBFBD><62><EFBFBD>9=̘<>q%kEO<45><4F><EFBFBD><EFBFBD>A<EFBFBD><03><10><00>m<00>V<00>PHRH<00>=<08><05> ~<7E>1C<31><43>iؙ+<2B>je<00><00> <00>TH<00><00>6!5C8106184820D1CEBAAA158031B1CE84UVD<00> <00>nUt[ '<00> <00>(h"6/1o~!:%:~e#h8<00><00>!67FF01B8419F5C86F2F27E93A119C80C<00>This function only works on GPU Emitters, and is useful for GPU specific features such as sampling the Gbuffer and inside Simulation Stagesf<00> <00>&<00> <00>O623g6-.)<00> <00>K<00>h!99EFE6A74B08F1B353D4908E96721AB45Gbuffer buffer depth basecolor UV Clip Clipspace NDC<00> <00>BZCZ xQU~N_Q =qC<71><43>DQׄ<51><D784><EFBFBD><EFBFBD>d1<64>G6+,z=y645~lAccurateQuatInterpolationCPUSimFailIfNotSetMessageSeverity: 3InvalidNamespaceWrite=2^ 
WE%P֞L<D69E><4C>GH<10>VV& <0B><>:<3A>erW,%<02><>f5> <0C><02><>Ǻ<EFBFBD>ۨ5<DBA8><35>e% oe<6F><65><EFBFBD>z<>]?o<><6F>U<07><><EFBFBD>e%:<3A>@ ׼<>6n<05>'r-<2D>ͧe%<00>DΚ<44><00><>B<EFBFBD><05>p<><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>e%<00>G<>᝟R
<EFBFBD>ܱ<EFBFBD>rh d<><64>ae%͏d <0C><15>Ջv<D58B><76><?+<2B><>lK<6C>e%<00>9<EFBFBD><39>^kK 2U<32><55><EFBFBD>`<18><><EFBFBD> e%<00>'^3<>`:h<>g<EFBFBD><67>m<EFBFBD>+K<>g<EFBFBD>e{=<08><05> ~<7E>1C<31><43>iؙ+<2B>je<00>6/0p~w:%:~elk}h e<00>V<00>PHRH<00>=̘<>q%kEO<45><4F><EFBFBD><EFBFBD>A<EFBFBD><03>e<00><00><00>#[81EB94E0479F0F0A526A9AB394BE0602]!7B0F5BDB43CF965C4230649520B0EBA0EChange input to Position and support LWC conversion to screen space.TH<00><00>6!5C8106184820D1CEBAAA158031B1CE84UVD<00> <00>nUt[ '<00> <00>(h"6/1o~!:%:~e#h8<00><00>!67FF01B8419F5C86F2F27E93A119C80C<00>This function only works on GPU Emitters, and is useful for GPU specific features such as sampling the Gbuffer and inside Simulation Stagesf<00> <00>&<00> <00>O623g6-.)<00> <00>K<00>h!99EFE6A74B08F1B353D4908E96721AB45Gbuffer buffer depth basecolor UV Clip Clipspace NDC<00> <00>BZCZ xQU~N_<00> =G6+,z=y645~^ 
W1%erW{=e<00>6/0p~w:%:~elk}h eq\ee`he`he<00><>*<2A><><EFBFBD><EFBFBD><EFBFBD>.;<3B><>v<>8Qʿ)0<00><>*<2A>