RYHPTП44611Z+Р,0б<П4 NъƒyLq7ˆ'^P0"2@8000T IT kH Xp0› 00M0f0“0Щh0Ѓ 0{0Ј0У0Z$ В  0Ц0а0р 0э @ў(03(0 ! P0F0)0м0‘0 @0W0}0Љ@€0Ї$€0і& F*0~*0Ѓ0Ъ0ѓ&.Р0/Р0* 000ь2€0_@€0u4€0У@€0к00;8 0q0K?0Ж “4 Ѕ( П  ж ё ЁBx0п0Ь0ѓE˜0 @˜0 0: 0L0b0х0zL˜0‚M˜0œN00(0ЌПW0Ф8Ь@иHъL§P")=Sdv‰ $Е(Ю,ц0ї4 8 <6 @N [ Dm ‚ ž WЋ W`К Ы  с 0ў @ P) h9 lW _ W _ W _ W _ "W _ e n y  (Ѕ 8О @ф P `+ bW _ !W _ (W _ (W _ 8L W "V d Юd‰Е q  #“ Ÿ Љ WА WИ Sq О Щ п ы ї џ     ) 7 C N V a *k +y )( ,8œ HW _ -W _ .W _ BW _ WВ Ш р ј  ( /1 Q 0(Щ 8n W _ :W _ P“ œ "Е  М [Ь Xж ц &ѕ Љ Wж  )9œ "5F0=CР WCр sC C  ЊC@ ЧC` цC€ C  #Q32E@W>h= W _ 3zW WВ$ФWй(ыWџ,DW _ 4%6GI(TH,4`G`lˆy  ІK Г П 0Ю 0и ціJJ$ 0# 0, B L[p € Ž   $Ж 0Ф 0з 0х 0ё § 0 0 0 0& 05 0BXiNx(,ЉpW _ Љ W Й )9ЦбйUxч@W ыWЙ іVW _ T( 1(9,B K Xft PCharPContextSwitchPInt32PLightTypePRenderDataTypePSceneRenderPassTypePShadowCasterTypePTextureFormatBasePUInt16PUInt32PUInt8boolfloatCD3D11_BLEND_DESCCD3D11_DEPTH_STENCIL_DESCCD3D11_RASTERIZER_DESCD3D11_DEPTH_STENCILOP_DESCD3D11_RENDER_TARGET_BLEND_DESCPArrayPArrayPArrayPArrayPArrayPArrayPArrayPArrayPArrayPArrayPArrayPArrayPArrayPArrayPArrayPArrayPArrayPArrayPArrayPAssetReferencePBasePClassDescriptorPClusterHeaderPClusterHeaderBasePClusterHeaderD3D11PContextVariantFoldingTablePEffectPEffectVariantPInstanceListHeaderPMaterialPMaterialSwitchPNodeContextPParameterBufferPParameterBufferBasePSamplerStatePSamplerStateBasePSamplerStateD3D11PSceneRenderPassPShaderPShaderComputeProgramPShaderComputeProgramD3D11PShaderFragmentProgramPShaderFragmentProgramD3D11PShaderGeometryProgramPShaderGeometryProgramD3D11PShaderParameterCaptureBufferLocationPShaderParameterCaptureBufferLocationSizePShaderParameterCaptureBufferLocationTypeConstantBufferPShaderParameterCaptureBufferSamplerPShaderParameterCaptureBufferTexture2DPShaderParameterCaptureBufferTextureBasePShaderParameterDefinitionPShaderPassPShaderPassBasePShaderPassD3D11PShaderPassInfoPShaderPassParameterLocationTypesBasePShaderPassParameterLocationTypesConstantBufferPShaderPassStateBasePShaderPassStateD3D11PShaderProgramBasePShaderProgramD3D11PShaderStreamDefinitionPShaderVertexProgramPShaderVertexProgramD3D11PSharrayPStreamInputDescD3D11PStreamInputLayoutD3D11PStringPTexture2DPTexture2DBasePTexture2DD3D11PTextureCommonBasem_idm_assetm_assetTypem_indexBufferSizem_vertexBufferSizem_maxTextureBufferSizem_phyreMarkerm_sizem_instanceListCountm_packedNamespaceSizem_arrayFixupSizem_arrayFixupCountm_pointerFixupSizem_pointerFixupCountm_pointerArrayFixupSizem_pointerArrayFixupCountm_pointersInArraysCountm_userFixupCountm_userFixupDataSizem_totalDataSizem_headerClassInstanceCountm_headerClassChildCountm_platformIDm_physicsEngineIDm_supportedLightMaskm_supportedShadowCasterMaskm_effectFilem_effectSourcem_effectVariantsm_supportedLightTypesm_supportedShadowCasterTypesm_contextSwitchesm_contextVariantSwitchesm_maxLightCountm_numSupportedShaderLODLevelsm_countm_elsm_effectm_switchesm_sceneRenderPassesm_sceneRenderPassLookupm_largestShaderPassCountm_tweakableShaderParameterDefinitionsm_untweakableShaderParameterDefinitionsm_tweakableParameterBufferSizem_untweakableParameterBufferSizem_classIDm_objectsSizem_arraysSizem_effectVariantm_parameterBufferm_remapFromm_remapTom_namem_valuem_packedSwitchesm_parameterBufferSizem_minFilterm_magFilterm_wrapSm_wrapTm_wrapRm_lodBiasm_maxAnisotropym_borderColorm_baseLevelm_maxLevelm_flagsm_passTypem_shadersm_entryPointsm_variantsFoldingTablem_platformsm_platformsAreIncludem_contextVariantIndexm_contextVariantVpIndexm_contextVariantFpIndexm_contextVariantGsIndexm_contextVariantCsIndexm_passesm_parameterDefinitionsForPassesm_streamDefinitionsForPassesm_parameterBufferFrequenciesRequiredm_offsetm_constantBufferLocationm_typem_unusedPointerm_texturem_parameterTypem_samplerStatem_textureBufferIndexm_dataTypem_arrayElementCountm_bufferLocm_statem_vertexParameterLocationm_fragmentParameterLocationm_geometryParameterLocationm_computeParameterLocationm_vertexTexParameterLocationm_fragmentTexParameterLocationm_geometryTexParameterLocationm_computeTexParameterLocationm_vertexProgramm_fragmentProgramm_geometryProgramm_computeProgramm_streamLocationsm_vertexEntryPointm_vertexProfilem_fragmentEntryPointm_fragmentProfilem_geometryEntryPointm_geometryProfilem_computeEntryPointm_computeProfilem_parameterLocationsm_parameterStartm_parameterCountm_rasterDescm_depthDescm_blendDescm_stencilRefAlphaToCoverageEnableIndependentBlendEnableRenderTargetDepthEnableDepthWriteMaskDepthFuncStencilEnableStencilReadMaskStencilWriteMaskFrontFaceBackFaceFillModeCullModeFrontCounterClockwiseDepthBiasDepthBiasClampSlopeScaledDepthBiasDepthClipEnableScissorEnableMultisampleEnableAntialiasedLineEnableStencilFailOpStencilDepthFailOpStencilPassOpStencilFuncBlendEnableSrcBlendDestBlendBlendOpSrcBlendAlphaDestBlendAlphaBlendOpAlphaRenderTargetWriteMaskm_importantStatem_compiledCodem_constantBufferSizem_globalConstantBufferIndexm_shaderProfilem_renderTypem_nameHashm_indexm_inputLayoutm_um_semanticm_semanticIndexm_d3dFormatm_inputSlotm_streamsm_bufferm_widthm_heightm_formatm_memoryTypem_mipmapCountm_maxMipLevelm_textureFlagsp ардppд hh H0˜” @@PP!@@% Ћ€ Ѓ&'2  +ј-РР5P0 C€` DИЌ˜ ЅG™€Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.cgfx#E6449E4B7A1317E19F9A760D204A7B5B#materialData/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx#E6449E4B7A1317E19F9A760D204A7B5B #line 1 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" #define D_PLATFORM_D3D11x64 #define FOG #define SOFT #define LOW_RES // Automatically generated. Do not edit. // =======================================================================================================================[COMMON DEFINES]=== #define PHYRE3X_ENABLED #if !defined(D_PLATFORM_GXM) #define h2tex3D tex3D #define h4tex2D tex2D #define h3tex2D tex2D #define h2tex2D tex2D #define h1tex2D tex2D #define h4texCUBE texCUBE #define h3texCUBE texCUBE #endif // ========================================================================================================================[COMMON STATES]=== #if !defined(D_PLATFORM_GXM) BlendState ourBlendState { BlendEnable[0] = FALSE; BlendEnable[1] = FALSE; SrcBlend[0] = Src_Alpha; DestBlend[0] = Inv_Src_Alpha; BlendOp[0] = ADD; SrcBlendAlpha[0] = ONE; DestBlendAlpha[0] = ONE; BlendOpAlpha[0] = ADD; RenderTargetWriteMask[0] = 15; AlphaToCoverageEnable = false; }; DepthStencilState ourDepthStencilState { DepthEnable=true; DepthFunc=less; StencilEnable=false; }; RasterizerState ourRasterState { CullMode=None; DepthBias=0.0f; ScissorEnable=false; MultiSampleEnable=false; DepthClipEnable=false; AntialiasedLineEnable=false; }; #endif // ==================================================================================================================[VERTEX SHADER BEGIN]=== #define main Opaque_vs_main #define IN Opaque_vs_IN #define OUT Opaque_vs_OUT #define v2f Opaque_vs_v2f #define a2v Opaque_vs_a2v // ------------------------------------------------------------------------------------------------------------------------------------------ #define GLOBAL_LEAN_AND_MEAN #line 1 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #ifndef MIGRATORY_SH #define MIGRATORY_SH //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef D_PLATFORM_D3D11x64 #define D_PLATFORM_D3D11 #endif #ifdef D_PLATFORM_D3D11 //#pragma pack_matrix(column_major) #define D_D3D11_OTHER(x,y) x #define D_D3D11_ONLY(x) x #define POSITION_OUT SV_POSITION #define FINAL_COLOR D_D3D11_OTHER(SV_TARGET0,COLOR) #elif defined(D_PLATFORM_GNM) #ifdef __ORBIS__ #pragma warning (disable:5203) // parameter unreferenced #pragma warning (disable:5206) // local variable unreferenced #pragma warning (disable:6204) // does not support uniform default values #pragma warning (disable:6459) // __user_defined__ is not a valid semantic for uniform #pragma warning (disable:5581) // PSSL treats 'half' type as 'float' #pragma warning (disable:5609) // PSSL treats 'half' type as 'float' #pragma warning (disable:5583) // PSSL treats 'half' literals as 'float' #pragma warning (disable:5524) // unsupported compiler hint //! Some evil #defines to sort out matrix multiplies. #define float4x4 row_major float4x4 #define float3x4 row_major float3x4 #define float4x3 row_major float4x3 //! Semantics for VS/PS inputs and outputs. #define POSITION S_POSITION #define SV_POSITION S_POSITION #define SV_GroupID S_GROUP_ID #define SV_VertexID S_VERTEX_ID #define SV_DispatchThreadID S_DISPATCH_THREAD_ID #define SV_GroupThreadID S_GROUP_THREAD_ID #define SV_GroupIndex S_GROUP_INDEX #define SV_PRIMITIVEID S_PRIMITIVE_ID #define SV_IsFrontFace S_FRONT_FACE #define SV_Depth FRAG_OUTPUT_DEPTH #define FRAG_OUTPUT_COLOR S_TARGET_OUTPUT0 #define FRAG_OUTPUT_COLOR0 S_TARGET_OUTPUT0 #define FRAG_OUTPUT_COLOR1 S_TARGET_OUTPUT1 #define FRAG_OUTPUT_COLOR2 S_TARGET_OUTPUT2 #define FRAG_OUTPUT_COLOR3 S_TARGET_OUTPUT3 #define FRAG_OUTPUT_DEPTH S_DEPTH_OUTPUT //! Some defines to make textures compile with PSSL for now (sort out later) SamplerState globalSamplerState; SamplerComparisonState globalSamplerComparisonState { // Sampler state Filter = MIN_MAG_LINEAR_MIP_POINT; AddressU = CLAMP; AddressV = CLAMP; // Sampler comparison state ComparisonFunc = LESS; ComparisonFilter = COMPARISON_MIN_MAG_LINEAR_MIP_POINT; }; #define cbuffer ConstantBuffer #define sampler SamplerState #define sampler2D Texture2D #define sampler3D Texture3D #define samplerCUBE TextureCube #define tex2Dproj(a,b) a.Sample(globalSamplerState, (b).xy / (b).w) #define h1tex2Dproj(a,b) ((half)(a.Sample(globalSamplerState, (b).xy / (b).w).x)) #define h4tex2D(a,b) ((half4)a.Sample(globalSamplerState, (b).xy)) #define h4tex2Dlod(a,b) ((half4)a.SampleLOD(globalSamplerState, (b).xy, (b).w)) #define tex2D(a,b) a.Sample(globalSamplerState, (b).xy) #define SampleLevel SampleLOD #define SampleCmpLevelZero SampleCmpLOD0 #define StructuredBuffer RegularBuffer #define RWStructuredBuffer RW_RegularBuffer #define numthreads NUM_THREADS #define maxvertexcount MAX_VERTEX_COUNT #define groupshared thread_group_memory #define TriangleStream TriangleBuffer #define PointStream PointBuffer #define triangle Triangle #define IncrementCounter IncrementCount #define DecrementCounter DecrementCount #define GroupMemoryBarrierWithGroupSync ThreadGroupMemoryBarrierSync #define InterlockedMin AtomicMin #define InterlockedMax AtomicMax #define InterlockedAdd AtomicAdd #endif //! __ORBIS__ #if defined(PHYRE_D3DFX) && !defined(__ORBIS__) #define FRAG_OUTPUT_COLOR SV_TARGET #define FRAG_OUTPUT_COLOR0 SV_TARGET0 #define FRAG_OUTPUT_COLOR1 SV_TARGET1 #define FRAG_OUTPUT_COLOR2 SV_TARGET2 #define FRAG_OUTPUT_COLOR3 SV_TARGET3 #define FRAG_OUTPUT_DEPTH SV_DEPTH #define SYSTEM_PRIMITIVE_INDEX SV_PRIMITIVEID #endif //! defined(PHYRE_D3DFX) && !defined(__ORBIS__) #define D_D3D11_OTHER(x,y) x #define D_D3D11_ONLY(x) x #define POSITION_OUT POSITION #define FINAL_COLOR FRAG_OUTPUT_COLOR #else #define D_D3D11_OTHER(x,y) y #define D_D3D11_ONLY(x) #define HALF half #define HALF2 half2 #define HALF3 half3 #define HALF4 half4 #define HALF3x3 float3x3 #define HALF3x4 float3x4 #define HALF4x4 float4x4 #define POSITION_OUT POSITION #define FINAL_COLOR D_D3D11_OTHER(SV_TARGET0,COLOR) #endif #if defined(__psp2__) #define NATIVECOLOR __nativecolor #define REGFORMAT __regformat #else #define NATIVECOLOR #define REGFORMAT #endif #if !defined(__ORBIS__) && !defined(D_PLATFORM_GXM) BlendState NoBlend_BlendState { BlendEnable[0] = FALSE; }; BlendState Alpha_BlendState { BlendEnable[0] = TRUE; SrcBlend[0] = Src_Alpha; DestBlend[0] = Inv_Src_Alpha; BlendOp[0] = ADD; SrcBlendAlpha[0] = Src_Alpha; DestBlendAlpha[0] = Inv_Src_Alpha; BlendOpAlpha[0] = ADD; BlendEnable[1] = FALSE; }; BlendState Additive_BlendState { BlendEnable[0] = TRUE; SrcBlend[0] = Src_Alpha; DestBlend[0] = ONE; BlendOp[0] = ADD; SrcBlendAlpha[0] = Src_Alpha; DestBlendAlpha[0] = ONE; BlendOpAlpha[0] = ADD; BlendEnable[1] = FALSE; }; BlendState ParticleBlended_BlendState { BlendEnable[0] = TRUE; SrcBlend[0] = ONE; DestBlend[0] = Inv_Src_Alpha; BlendOp[0] = ADD; SrcBlendAlpha[0] = ONE; DestBlendAlpha[0] = Inv_Src_Alpha; BlendOpAlpha[0] = ADD; BlendEnable[1] = FALSE; }; DepthStencilState NoDepthTest_NoDepthWrite_DepthState { DepthEnable = FALSE; DepthWriteMask = Zero; DepthFunc = Less; StencilEnable = FALSE; }; DepthStencilState NoDepthTest_DepthWrite_DepthState { DepthEnable = FALSE; DepthWriteMask = All; DepthFunc = Less; StencilEnable = FALSE; }; DepthStencilState DepthTest_NoDepthWrite_DepthState { DepthEnable = TRUE; DepthWriteMask = Zero; DepthFunc = Less; StencilEnable = FALSE; }; DepthStencilState DepthTest_DepthWrite_DepthState { DepthEnable = TRUE; DepthWriteMask = All; DepthFunc = Less; StencilEnable = FALSE; }; RasterizerState NoCull_RasterizerState { CullMode=None; }; RasterizerState BackFaceCull_RasterizerState { CullMode=Back; FrontCounterClockwise = TRUE; }; RasterizerState FrontFaceCull_RasterizerState { CullMode=Front; FrontCounterClockwise = TRUE; }; #endif #if defined(D_PLATFORM_D3D11) || defined(D_PLATFORM_GNM) #define MatrixMul(a,b) mul(b,a) #define HALF float #define HALF2 float2 #define HALF3 float3 #define HALF4 float4 #define HALF3x3 float3x3 #define HALF3x4 float3x4 #define HALF4x4 float4x4 #define half float #define half2 float2 #define half3 float3 #define half4 float4 #else #define MatrixMul(a,b) mul(a,b) #endif // samplers #if defined(D_PLATFORM_D3D11) || defined(D_PLATFORM_GNM) sampler PointClampSampler : register(s8) { Filter = Min_Mag_Mip_Point; AddressU = Clamp; AddressV = Clamp; AddressW = Clamp; }; sampler LinearClampSampler : register(s9) { Filter = Min_Mag_Mip_Linear; AddressU = Clamp; AddressV = Clamp; AddressW = Clamp; }; sampler LinearWrapTSampler : register(s10) { Filter = Min_Mag_Mip_Linear; AddressU = Clamp; AddressV = Wrap; AddressW = Clamp; }; sampler LinearWrapSampler : register(s11) { Filter = Min_Mag_Mip_Linear; AddressU = Wrap; AddressV = Wrap; AddressW = Wrap; }; sampler PointWrapSampler : register(s12) { Filter = Min_Mag_Mip_Point; AddressU = Wrap; AddressV = Wrap; AddressW = Wrap; }; sampler AnisoClampSampler : register(s13) { Filter = ANISOTROPIC; AddressU = Clamp; AddressV = Clamp; AddressW = Clamp; MaxAnisotropy = 16; }; sampler LinearWrapAnisoSampler : register(s14) { Filter = ANISOTROPIC; AddressU = Wrap; AddressV = Wrap; AddressW = Wrap; MaxAnisotropy = 16; }; sampler PointWrapAnisoSampler : register(s15) { Filter = Min_Mag_Point_Mip_Linear; AddressU = Wrap; AddressV = Wrap; AddressW = Wrap; MaxAnisotropy = 16; }; #define SAMPLER_WRAP_ANISO LinearWrapAnisoSampler #define SAMPLER_WRAP_LINEAR LinearWrapSampler #define SAMPLER_WRAP_POINT PointWrapSampler #define SAMPLER_CLAMP_ANISO AnisoClampSampler #define SAMPLER_CLAMP_LINEAR LinearClampSampler #define SAMPLER_CLAMP_POINT PointClampSampler static const float kSRGB = 2.2f; #define SRGB_ON(x) pow(x,kSRGB) #define SRGB_OFF(x) x #define SAMPLETEX(tex,uv,filter,wrap,srgb) SRGB_##srgb(tex.Sample(SAMPLER_##wrap##_##filter, uv)) #ifdef __ORBIS__ #define D_DECLARE_TEXTURE2DMS_4(x) MS_Texture2D x #else #define D_DECLARE_TEXTURE2DMS_4(x) Texture2DMS x #endif #define D_DECLARE_TEXTURE2D_4(x) Texture2D x #define D_DECLARE_TEXTURE3D_4(x) Texture3D x #define D_DECLARE_TEXTURE_CUBE_4(x) TextureCube x #define D_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_POINT_SAMPLE_TEXTURE(tex,uv) tex.Sample(PointClampSampler,uv) #define D_SAMPLE_TEXTURE_PROJ(tex,uv) tex.Sample(LinearClampSampler,(float2) (uv.xy / uv.w) ) #define D_POINT_SAMPLE_TEXTURE_PROJ(tex,uv) tex.Sample(PointClampSampler,(float2) (uv.xy / uv.w) ) #define D_SAMPLE_TEXTURE_3D(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_SAMPLE_TEXTURE_WRAP_3D(tex,uv) tex.Sample(LinearWrapSampler,uv) #define D_H1_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).x #define D_H2_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).xy #define D_H3_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).xyz #define D_H4_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_H1_POINTSAMPLELEVEL_TEXTURE(tex,uv,lod) tex.SampleLevel(PointClampSampler,uv,lod).x #define D_H1_SAMPLELEVEL_TEXTURE(tex,uv,lod) tex.SampleLevel(LinearClampSampler,uv,lod).x #define D_H4_SAMPLELEVEL_TEXTURE(tex,uv,lod) tex.SampleLevel(LinearClampSampler,uv,lod) #if defined(D_PLATFORM_D3D11) #define D_H1_SAMPLE_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearClampSampler,uv).x,2.2f) #define D_H2_SAMPLE_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearClampSampler,uv).xy,2.2f) #define D_H3_SAMPLE_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f) #define D_H4_SAMPLE_SRGBTEXTURE(tex,uv) float4( pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f), tex.Sample(LinearClampSampler,uv).a ) #define D_H1_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearWrapSampler,uv).x,2.2f) #define D_H2_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearWrapSampler,uv).xy,2.2f) #define D_H3_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearWrapSampler,uv).xyz,2.2f) #define D_H4_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) float4( pow(tex.Sample(LinearWrapSampler,uv).xyz,2.2f), tex.Sample(LinearWrapSampler,uv).a ) #define D_H4_SAMPLE_WRAPT_SRGBTEXTURE(tex,uv) float4( pow(tex.Sample(LinearWrapTSampler,uv).xyz,2.2f), tex.Sample(LinearWrapTSampler,uv).a) #define D_H3_SAMPLE_WRAP_ANISO_SRGBTEXTURE(tex,uv) pow( tex.Sample(LinearWrapAnisoSampler,uv).xyz, 2.2f) #else #define D_H1_SAMPLE_SRGBTEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).x #define D_H2_SAMPLE_SRGBTEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).xy #define D_H3_SAMPLE_SRGBTEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).xyz #define D_H4_SAMPLE_SRGBTEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_H1_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).x #define D_H2_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).xy #define D_H3_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).xyz #define D_H4_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv) #define D_H4_SAMPLE_WRAPT_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapTSampler,uv) #endif #define D_H1_SAMPLE_WRAP_TEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).x #define D_H2_SAMPLE_WRAP_TEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).xy #define D_H3_SAMPLE_WRAP_TEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).xyz #define D_H4_SAMPLE_WRAP_TEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv) #define D_H1_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(LinearWrapAnisoSampler,uv).x #define D_H2_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(LinearWrapAnisoSampler,uv).xy #define D_H3_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(LinearWrapAnisoSampler,uv).xyz #define D_H4_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(LinearWrapAnisoSampler,uv) #define D_H1_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(PointWrapAnisoSampler,uv).x #define D_H2_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(PointWrapAnisoSampler,uv).xy #define D_H3_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(PointWrapAnisoSampler,uv).xyz #define D_H4_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(PointWrapAnisoSampler,uv) #define D_H2_SAMPLE_TEXTURE_3D(tex,uv) tex.Sample(LinearClampSampler,uv).xy #define D_H2_SAMPLE_WRAP_TEXTURE_3D(tex,uv) tex.Sample(LinearWrapSampler,uv).xy #if defined(D_PLATFORM_D3D11) #define D_H3_SAMPLE_TEXTURE_CUBE(tex,uv) pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f) #define D_H4_SAMPLE_TEXTURE_CUBE(tex,uv) float4( pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f), tex.Sample(LinearClampSampler,uv).a ) #define D_SAMPLE_TEXTURE_CUBE(tex,uv) float4( pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f), tex.Sample(LinearClampSampler,uv).a ) #else #define D_H3_SAMPLE_TEXTURE_CUBE(tex,uv) tex.Sample(LinearClampSampler,uv).xyz #define D_H4_SAMPLE_TEXTURE_CUBE(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_SAMPLE_TEXTURE_CUBE(tex,uv) tex.Sample(LinearClampSampler,uv) #endif #else #define D_DECLARE_TEXTURE2D_4(x) sampler2D x #define D_DECLARE_TEXTURE3D_4(x) sampler3D x #define D_DECLARE_TEXTURE_CUBE_4(x) samplerCUBE x #define D_SAMPLE_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_POINT_SAMPLE_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_SAMPLE_TEXTURE_PROJ(tex,uv) h4tex2Dproj(tex,uv.xyw) #define D_POINT_SAMPLE_TEXTURE_PROJ(tex,uv) h4tex2Dproj(tex,uv.xyw) #define D_SAMPLE_TEXTURE_CUBE(tex,uv) h4texCUBE(tex,uv) #define D_SAMPLE_TEXTURE_3D(tex,uv) h4tex3D(tex,uv) #define D_SAMPLE_TEXTURE_WRAP_3D(tex,uv) h4tex3D(tex,uv) #define D_H1_SAMPLE_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_POINTSAMPLELEVEL_TEXTURE(tex,uv,lod) h1tex2D(tex,uv).x #define D_H1_SAMPLELEVEL_TEXTURE(tex,uv,lod) h1tex2D(tex,uv).x #define D_H4_SAMPLELEVEL_TEXTURE(tex,uv,lod) h4tex2D(tex,uv) #define D_H1_SAMPLE_SRGBTEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_SRGBTEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_SRGBTEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_SRGBTEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_WRAP_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_WRAP_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_WRAP_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_WRAP_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_ANISO_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_ANISO_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_ANISO_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_ANISO_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H4_SAMPLE_WRAPT_SRGBTEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H2_SAMPLE_TEXTURE_3D(tex,uv) h2tex3D(tex,uv).xy #define D_H2_SAMPLE_WRAP_TEXTURE_3D(tex,uv) h2tex3D(tex,uv).xy #define D_H3_SAMPLE_TEXTURE_CUBE(tex,uv) h3texCUBE(tex,uv).xyz #define D_H4_SAMPLE_TEXTURE_CUBE(tex,uv) h4texCUBE(tex,uv) #endif #if !defined(GLOBAL_LEAN_AND_MEAN) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // these constants are system constants; uploaded by Phyre itself. // we can't do this, but we don't want to upload them all the time, either. consequently, we make these global // i guess we can eventually stuff these into a separate uniform buffer //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// float4x4 view : view ; // uploaded once per camera float4x4 projection : projection ; // view inverse float4x4 viewprojection : viewprojection ; float4 eyeDirectionWS : eyeDirectionWS ; float4 eyePositionWS : eyePositionWS ; float4 eyePositionOS : eyePositionOS ; float4 cameraNear : cameraNearFar ; float4x4 modelIT : modelit ; // uploaded per primitive // model inverse transpose float4x4 model : model ; float4x4 modelViewProj : modelviewproj ; #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // depth conversion code, stolen from the sample code //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// float cameraNearTimesFar; float cameraFarMinusNear; float4 cameraNearFar; // Convert a depth value from post projection space to view space. float ConvertDepth(float depth) { // float viewSpaceZ = -(scene.cameraNearTimesFar / (depth * scene.cameraFarMinusNear - scene.cameraNearFar.y)); #if defined(D_PLATFORM_GXM) float viewSpaceZ = -(cameraNearTimesFar / (depth * cameraFarMinusNear - cameraNearFar.y)); #else float viewSpaceZ = -(cameraNearTimesFar / (depth * cameraFarMinusNear - cameraNearFar.y)); #endif return viewSpaceZ; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // skinning //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef SKINNING_ENABLED // grabbed off [PhyreCoreShaderShared.h] // Description: // Encapsulates the skinning transformation matrices. #if defined(D_PLATFORM_GXM) #define PE_MAX_SKIN_CB_TRANSFORMS 32 float4x4 boneTransforms[PE_MAX_SKIN_CB_TRANSFORMS]; float4x4 GenerateBoneMatrix(int4 SkinIndices,float4 SkinWeights) { return boneTransforms[SkinIndices[0]]*SkinWeights[0] + boneTransforms[SkinIndices[1]]*SkinWeights[1] + boneTransforms[SkinIndices[2]]*SkinWeights[2] + boneTransforms[SkinIndices[3]]*SkinWeights[3]; } #else #define PE_MAX_SKIN_CB_TRANSFORMS 32 struct PSkinTransforms { float4x4 Mtxs[PE_MAX_SKIN_CB_TRANSFORMS]; // The skinning transformation matrices. }; cbuffer BoneTransformConstantBuffer { PSkinTransforms SkinTransforms; } float4x4 GenerateBoneMatrix(uint4 SkinIndices,float4 SkinWeights) { return SkinTransforms.Mtxs[SkinIndices[0]]*SkinWeights[0] + SkinTransforms.Mtxs[SkinIndices[1]]*SkinWeights[1] + SkinTransforms.Mtxs[SkinIndices[2]]*SkinWeights[2] + SkinTransforms.Mtxs[SkinIndices[3]]*SkinWeights[3]; } #endif #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// static const float4x4 SCALE_BIAS = float4x4( float4( 0.5, 0.0, 0.0, 0.5 ), #if defined(D_PLATFORM_D3D11) float4( 0.0, -0.5, 0.0, 0.5 ), #else float4( 0.0, 0.5, 0.0, 0.5 ), #endif float4( 0.0, 0.0, 0.5, 0.5 ), float4( 0.0, 0.0, 0.0, 1.0 ) ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef D_PLATFORM_GXM #define D_INT_MOD(val,mod) (frac((floor((float)val)/mod))*mod) #define D_UINT_MOD(val,mod) (frac((floor((float)val)/mod))*mod) #elif defined(D_PLATFORM_GNM) #define D_INT_MOD(val,mod) ((int)floor(val) % mod) #define D_UINT_MOD(val,mod) ((uint)floor(val) % mod) #else #define D_INT_MOD(val,mod) ((int)floor(val) % mod) #define D_UINT_MOD(val,mod) ((int)floor(val) % mod) #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef D_ENABLE_DEBUG_PARAMS float4 debugVars0; float4 debugVars1; float4 debugVars2; float4 debugVars3; float4 debugVars4; float4 debugVars5; float4 debugVars6; float4 debugVars7; #define GETDEBUGVAR(dv) (debugVars##dv!=0) ? (debugVars##dv) : #define GETDEBUGVAR2(dv,scl) (debugVars##dv!=0) ? (scl*debugVars##dv) : #endif #define powsafe(_x,_y) pow(max(_x,0.00000000000001),_y) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #endif//MIGRATORY_SH #line 57 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" float4x4 modelViewProj : modelviewproj ; float4 eyePositionWS : eyePositionWS ; #ifndef D_PREPASS_ENABLED float4 l_c; float4 l_a; float4 l_d; #ifdef FOG float4 f_se; // fogStart/fogEnd float4 f_cc, f_fc; // fogCloseColor, fogFarColor #endif #endif//D_PREPASS_ENABLED struct a2v { float4 position : POSITION; float3 uv : TEXCOORD0; float4 lUvDirAmb : TEXCOORD1; float4 color : COLOR0; }; struct v2f { float4 clipSpace : POSITION_OUT; HALF4 color : COLOR0; float4 uv : TEXCOORD0; HALF4 lUvDirAmb : TEXCOORD1; #ifdef FOG HALF4 fog : TEXCOORD2; #endif #ifdef SOFT float4 pos : TEXCOORD3; #endif }; void main( in a2v IN, out v2f OUT ) { const float3 pos = IN.position.xyz; float3 eye = float3( eyePositionWS.xyz - pos.xyz ); float intensity = IN.uv.z; // Transform point into clipSpace OUT.clipSpace = MatrixMul(modelViewProj, float4(pos, 1.0f) ); // Determine if we are alpha or additive float invOpacity = D_UINT_MOD((int)floor( 255.2 * IN.color.a ),2) == 0 ? 1.0f : 0.001f; OUT.color.rgba = IN.color.rgba; //OUT.color.rgb *= l_a.rgb + saturate(dot(normalize( l_d ),float3(0,1,0)))*l_c.rgb; OUT.uv = float4( IN.uv.xy, invOpacity, intensity ); // Just pass along this data vector. OUT.lUvDirAmb = IN.lUvDirAmb; #ifdef FOG HALF rayS = min( eyePositionWS.y, pos.y ); HALF rayE = max( eyePositionWS.y, pos.y ) + 0.5; // Prevent div by 0. HALF rayH = rayE - rayS; HALF fogS = f_se.z; HALF fogE = f_se.w; HALF fogH = fogE - fogS; HALF midS = min( rayS, fogE ); HALF midE = min( rayE, fogE ); HALF midA = 0.5 * (midS + midE); HALF midH = midE - midS; HALF fogY = ((fogE - midA) * midH) / (fogH * rayH); HALF fogRatio = saturate( (fogY * length( eye ) - f_se.x) / (f_se.y - f_se.x) ); fogRatio = fogRatio*fogRatio; HALF3 fogColor = lerp( f_cc.rgb, f_fc.rgb, fogRatio ); HALF fogAlpha = lerp( f_cc.a, f_fc.a, fogRatio ); OUT.fog = HALF4( fogColor, fogRatio*fogAlpha ); #endif #ifdef SOFT OUT.pos = mul( SCALE_BIAS, OUT.clipSpace ); OUT.pos.w = OUT.clipSpace.w; #endif } // ------------------------------------------------------------------------------------------------------------------------------------------ #undef main #undef IN #undef OUT #undef v2f #undef a2v // ===================================================================================================================[PIXEL SHADER BEGIN]=== #define main Opaque_fs_main #define IN Opaque_fs_IN #define OUT Opaque_fs_OUT #define v2f Opaque_fs_v2f #define f2f Opaque_fs_f2f // ------------------------------------------------------------------------------------------------------------------------------------------ #define GLOBAL_LEAN_AND_MEAN #line 1 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #ifndef MIGRATORY_SH #define MIGRATORY_SH //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef D_PLATFORM_D3D11x64 #define D_PLATFORM_D3D11 #endif #ifdef D_PLATFORM_D3D11 //#pragma pack_matrix(column_major) #define D_D3D11_OTHER(x,y) x #define D_D3D11_ONLY(x) x #define POSITION_OUT SV_POSITION #define FINAL_COLOR D_D3D11_OTHER(SV_TARGET0,COLOR) #elif defined(D_PLATFORM_GNM) #ifdef __ORBIS__ #pragma warning (disable:5203) // parameter unreferenced #pragma warning (disable:5206) // local variable unreferenced #pragma warning (disable:6204) // does not support uniform default values #pragma warning (disable:6459) // __user_defined__ is not a valid semantic for uniform #pragma warning (disable:5581) // PSSL treats 'half' type as 'float' #pragma warning (disable:5609) // PSSL treats 'half' type as 'float' #pragma warning (disable:5583) // PSSL treats 'half' literals as 'float' #pragma warning (disable:5524) // unsupported compiler hint //! Some evil #defines to sort out matrix multiplies. #define float4x4 row_major float4x4 #define float3x4 row_major float3x4 #define float4x3 row_major float4x3 //! Semantics for VS/PS inputs and outputs. #define POSITION S_POSITION #define SV_POSITION S_POSITION #define SV_GroupID S_GROUP_ID #define SV_VertexID S_VERTEX_ID #define SV_DispatchThreadID S_DISPATCH_THREAD_ID #define SV_GroupThreadID S_GROUP_THREAD_ID #define SV_GroupIndex S_GROUP_INDEX #define SV_PRIMITIVEID S_PRIMITIVE_ID #define SV_IsFrontFace S_FRONT_FACE #define SV_Depth FRAG_OUTPUT_DEPTH #define FRAG_OUTPUT_COLOR S_TARGET_OUTPUT0 #define FRAG_OUTPUT_COLOR0 S_TARGET_OUTPUT0 #define FRAG_OUTPUT_COLOR1 S_TARGET_OUTPUT1 #define FRAG_OUTPUT_COLOR2 S_TARGET_OUTPUT2 #define FRAG_OUTPUT_COLOR3 S_TARGET_OUTPUT3 #define FRAG_OUTPUT_DEPTH S_DEPTH_OUTPUT //! Some defines to make textures compile with PSSL for now (sort out later) SamplerState globalSamplerState; SamplerComparisonState globalSamplerComparisonState { // Sampler state Filter = MIN_MAG_LINEAR_MIP_POINT; AddressU = CLAMP; AddressV = CLAMP; // Sampler comparison state ComparisonFunc = LESS; ComparisonFilter = COMPARISON_MIN_MAG_LINEAR_MIP_POINT; }; #define cbuffer ConstantBuffer #define sampler SamplerState #define sampler2D Texture2D #define sampler3D Texture3D #define samplerCUBE TextureCube #define tex2Dproj(a,b) a.Sample(globalSamplerState, (b).xy / (b).w) #define h1tex2Dproj(a,b) ((half)(a.Sample(globalSamplerState, (b).xy / (b).w).x)) #define h4tex2D(a,b) ((half4)a.Sample(globalSamplerState, (b).xy)) #define h4tex2Dlod(a,b) ((half4)a.SampleLOD(globalSamplerState, (b).xy, (b).w)) #define tex2D(a,b) a.Sample(globalSamplerState, (b).xy) #define SampleLevel SampleLOD #define SampleCmpLevelZero SampleCmpLOD0 #define StructuredBuffer RegularBuffer #define RWStructuredBuffer RW_RegularBuffer #define numthreads NUM_THREADS #define maxvertexcount MAX_VERTEX_COUNT #define groupshared thread_group_memory #define TriangleStream TriangleBuffer #define PointStream PointBuffer #define triangle Triangle #define IncrementCounter IncrementCount #define DecrementCounter DecrementCount #define GroupMemoryBarrierWithGroupSync ThreadGroupMemoryBarrierSync #define InterlockedMin AtomicMin #define InterlockedMax AtomicMax #define InterlockedAdd AtomicAdd #endif //! __ORBIS__ #if defined(PHYRE_D3DFX) && !defined(__ORBIS__) #define FRAG_OUTPUT_COLOR SV_TARGET #define FRAG_OUTPUT_COLOR0 SV_TARGET0 #define FRAG_OUTPUT_COLOR1 SV_TARGET1 #define FRAG_OUTPUT_COLOR2 SV_TARGET2 #define FRAG_OUTPUT_COLOR3 SV_TARGET3 #define FRAG_OUTPUT_DEPTH SV_DEPTH #define SYSTEM_PRIMITIVE_INDEX SV_PRIMITIVEID #endif //! defined(PHYRE_D3DFX) && !defined(__ORBIS__) #define D_D3D11_OTHER(x,y) x #define D_D3D11_ONLY(x) x #define POSITION_OUT POSITION #define FINAL_COLOR FRAG_OUTPUT_COLOR #else #define D_D3D11_OTHER(x,y) y #define D_D3D11_ONLY(x) #define HALF half #define HALF2 half2 #define HALF3 half3 #define HALF4 half4 #define HALF3x3 float3x3 #define HALF3x4 float3x4 #define HALF4x4 float4x4 #define POSITION_OUT POSITION #define FINAL_COLOR D_D3D11_OTHER(SV_TARGET0,COLOR) #endif #if defined(__psp2__) #define NATIVECOLOR __nativecolor #define REGFORMAT __regformat #else #define NATIVECOLOR #define REGFORMAT #endif #if !defined(__ORBIS__) && !defined(D_PLATFORM_GXM) BlendState NoBlend_BlendState { BlendEnable[0] = FALSE; }; BlendState Alpha_BlendState { BlendEnable[0] = TRUE; SrcBlend[0] = Src_Alpha; DestBlend[0] = Inv_Src_Alpha; BlendOp[0] = ADD; SrcBlendAlpha[0] = Src_Alpha; DestBlendAlpha[0] = Inv_Src_Alpha; BlendOpAlpha[0] = ADD; BlendEnable[1] = FALSE; }; BlendState Additive_BlendState { BlendEnable[0] = TRUE; SrcBlend[0] = Src_Alpha; DestBlend[0] = ONE; BlendOp[0] = ADD; SrcBlendAlpha[0] = Src_Alpha; DestBlendAlpha[0] = ONE; BlendOpAlpha[0] = ADD; BlendEnable[1] = FALSE; }; BlendState ParticleBlended_BlendState { BlendEnable[0] = TRUE; SrcBlend[0] = ONE; DestBlend[0] = Inv_Src_Alpha; BlendOp[0] = ADD; SrcBlendAlpha[0] = ONE; DestBlendAlpha[0] = Inv_Src_Alpha; BlendOpAlpha[0] = ADD; BlendEnable[1] = FALSE; }; DepthStencilState NoDepthTest_NoDepthWrite_DepthState { DepthEnable = FALSE; DepthWriteMask = Zero; DepthFunc = Less; StencilEnable = FALSE; }; DepthStencilState NoDepthTest_DepthWrite_DepthState { DepthEnable = FALSE; DepthWriteMask = All; DepthFunc = Less; StencilEnable = FALSE; }; DepthStencilState DepthTest_NoDepthWrite_DepthState { DepthEnable = TRUE; DepthWriteMask = Zero; DepthFunc = Less; StencilEnable = FALSE; }; DepthStencilState DepthTest_DepthWrite_DepthState { DepthEnable = TRUE; DepthWriteMask = All; DepthFunc = Less; StencilEnable = FALSE; }; RasterizerState NoCull_RasterizerState { CullMode=None; }; RasterizerState BackFaceCull_RasterizerState { CullMode=Back; FrontCounterClockwise = TRUE; }; RasterizerState FrontFaceCull_RasterizerState { CullMode=Front; FrontCounterClockwise = TRUE; }; #endif #if defined(D_PLATFORM_D3D11) || defined(D_PLATFORM_GNM) #define MatrixMul(a,b) mul(b,a) #define HALF float #define HALF2 float2 #define HALF3 float3 #define HALF4 float4 #define HALF3x3 float3x3 #define HALF3x4 float3x4 #define HALF4x4 float4x4 #define half float #define half2 float2 #define half3 float3 #define half4 float4 #else #define MatrixMul(a,b) mul(a,b) #endif // samplers #if defined(D_PLATFORM_D3D11) || defined(D_PLATFORM_GNM) sampler PointClampSampler : register(s8) { Filter = Min_Mag_Mip_Point; AddressU = Clamp; AddressV = Clamp; AddressW = Clamp; }; sampler LinearClampSampler : register(s9) { Filter = Min_Mag_Mip_Linear; AddressU = Clamp; AddressV = Clamp; AddressW = Clamp; }; sampler LinearWrapTSampler : register(s10) { Filter = Min_Mag_Mip_Linear; AddressU = Clamp; AddressV = Wrap; AddressW = Clamp; }; sampler LinearWrapSampler : register(s11) { Filter = Min_Mag_Mip_Linear; AddressU = Wrap; AddressV = Wrap; AddressW = Wrap; }; sampler PointWrapSampler : register(s12) { Filter = Min_Mag_Mip_Point; AddressU = Wrap; AddressV = Wrap; AddressW = Wrap; }; sampler AnisoClampSampler : register(s13) { Filter = ANISOTROPIC; AddressU = Clamp; AddressV = Clamp; AddressW = Clamp; MaxAnisotropy = 16; }; sampler LinearWrapAnisoSampler : register(s14) { Filter = ANISOTROPIC; AddressU = Wrap; AddressV = Wrap; AddressW = Wrap; MaxAnisotropy = 16; }; sampler PointWrapAnisoSampler : register(s15) { Filter = Min_Mag_Point_Mip_Linear; AddressU = Wrap; AddressV = Wrap; AddressW = Wrap; MaxAnisotropy = 16; }; #define SAMPLER_WRAP_ANISO LinearWrapAnisoSampler #define SAMPLER_WRAP_LINEAR LinearWrapSampler #define SAMPLER_WRAP_POINT PointWrapSampler #define SAMPLER_CLAMP_ANISO AnisoClampSampler #define SAMPLER_CLAMP_LINEAR LinearClampSampler #define SAMPLER_CLAMP_POINT PointClampSampler static const float kSRGB = 2.2f; #define SRGB_ON(x) pow(x,kSRGB) #define SRGB_OFF(x) x #define SAMPLETEX(tex,uv,filter,wrap,srgb) SRGB_##srgb(tex.Sample(SAMPLER_##wrap##_##filter, uv)) #ifdef __ORBIS__ #define D_DECLARE_TEXTURE2DMS_4(x) MS_Texture2D x #else #define D_DECLARE_TEXTURE2DMS_4(x) Texture2DMS x #endif #define D_DECLARE_TEXTURE2D_4(x) Texture2D x #define D_DECLARE_TEXTURE3D_4(x) Texture3D x #define D_DECLARE_TEXTURE_CUBE_4(x) TextureCube x #define D_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_POINT_SAMPLE_TEXTURE(tex,uv) tex.Sample(PointClampSampler,uv) #define D_SAMPLE_TEXTURE_PROJ(tex,uv) tex.Sample(LinearClampSampler,(float2) (uv.xy / uv.w) ) #define D_POINT_SAMPLE_TEXTURE_PROJ(tex,uv) tex.Sample(PointClampSampler,(float2) (uv.xy / uv.w) ) #define D_SAMPLE_TEXTURE_3D(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_SAMPLE_TEXTURE_WRAP_3D(tex,uv) tex.Sample(LinearWrapSampler,uv) #define D_H1_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).x #define D_H2_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).xy #define D_H3_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).xyz #define D_H4_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_H1_POINTSAMPLELEVEL_TEXTURE(tex,uv,lod) tex.SampleLevel(PointClampSampler,uv,lod).x #define D_H1_SAMPLELEVEL_TEXTURE(tex,uv,lod) tex.SampleLevel(LinearClampSampler,uv,lod).x #define D_H4_SAMPLELEVEL_TEXTURE(tex,uv,lod) tex.SampleLevel(LinearClampSampler,uv,lod) #if defined(D_PLATFORM_D3D11) #define D_H1_SAMPLE_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearClampSampler,uv).x,2.2f) #define D_H2_SAMPLE_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearClampSampler,uv).xy,2.2f) #define D_H3_SAMPLE_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f) #define D_H4_SAMPLE_SRGBTEXTURE(tex,uv) float4( pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f), tex.Sample(LinearClampSampler,uv).a ) #define D_H1_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearWrapSampler,uv).x,2.2f) #define D_H2_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearWrapSampler,uv).xy,2.2f) #define D_H3_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearWrapSampler,uv).xyz,2.2f) #define D_H4_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) float4( pow(tex.Sample(LinearWrapSampler,uv).xyz,2.2f), tex.Sample(LinearWrapSampler,uv).a ) #define D_H4_SAMPLE_WRAPT_SRGBTEXTURE(tex,uv) float4( pow(tex.Sample(LinearWrapTSampler,uv).xyz,2.2f), tex.Sample(LinearWrapTSampler,uv).a) #define D_H3_SAMPLE_WRAP_ANISO_SRGBTEXTURE(tex,uv) pow( tex.Sample(LinearWrapAnisoSampler,uv).xyz, 2.2f) #else #define D_H1_SAMPLE_SRGBTEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).x #define D_H2_SAMPLE_SRGBTEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).xy #define D_H3_SAMPLE_SRGBTEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).xyz #define D_H4_SAMPLE_SRGBTEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_H1_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).x #define D_H2_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).xy #define D_H3_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).xyz #define D_H4_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv) #define D_H4_SAMPLE_WRAPT_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapTSampler,uv) #endif #define D_H1_SAMPLE_WRAP_TEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).x #define D_H2_SAMPLE_WRAP_TEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).xy #define D_H3_SAMPLE_WRAP_TEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).xyz #define D_H4_SAMPLE_WRAP_TEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv) #define D_H1_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(LinearWrapAnisoSampler,uv).x #define D_H2_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(LinearWrapAnisoSampler,uv).xy #define D_H3_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(LinearWrapAnisoSampler,uv).xyz #define D_H4_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(LinearWrapAnisoSampler,uv) #define D_H1_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(PointWrapAnisoSampler,uv).x #define D_H2_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(PointWrapAnisoSampler,uv).xy #define D_H3_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(PointWrapAnisoSampler,uv).xyz #define D_H4_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(PointWrapAnisoSampler,uv) #define D_H2_SAMPLE_TEXTURE_3D(tex,uv) tex.Sample(LinearClampSampler,uv).xy #define D_H2_SAMPLE_WRAP_TEXTURE_3D(tex,uv) tex.Sample(LinearWrapSampler,uv).xy #if defined(D_PLATFORM_D3D11) #define D_H3_SAMPLE_TEXTURE_CUBE(tex,uv) pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f) #define D_H4_SAMPLE_TEXTURE_CUBE(tex,uv) float4( pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f), tex.Sample(LinearClampSampler,uv).a ) #define D_SAMPLE_TEXTURE_CUBE(tex,uv) float4( pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f), tex.Sample(LinearClampSampler,uv).a ) #else #define D_H3_SAMPLE_TEXTURE_CUBE(tex,uv) tex.Sample(LinearClampSampler,uv).xyz #define D_H4_SAMPLE_TEXTURE_CUBE(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_SAMPLE_TEXTURE_CUBE(tex,uv) tex.Sample(LinearClampSampler,uv) #endif #else #define D_DECLARE_TEXTURE2D_4(x) sampler2D x #define D_DECLARE_TEXTURE3D_4(x) sampler3D x #define D_DECLARE_TEXTURE_CUBE_4(x) samplerCUBE x #define D_SAMPLE_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_POINT_SAMPLE_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_SAMPLE_TEXTURE_PROJ(tex,uv) h4tex2Dproj(tex,uv.xyw) #define D_POINT_SAMPLE_TEXTURE_PROJ(tex,uv) h4tex2Dproj(tex,uv.xyw) #define D_SAMPLE_TEXTURE_CUBE(tex,uv) h4texCUBE(tex,uv) #define D_SAMPLE_TEXTURE_3D(tex,uv) h4tex3D(tex,uv) #define D_SAMPLE_TEXTURE_WRAP_3D(tex,uv) h4tex3D(tex,uv) #define D_H1_SAMPLE_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_POINTSAMPLELEVEL_TEXTURE(tex,uv,lod) h1tex2D(tex,uv).x #define D_H1_SAMPLELEVEL_TEXTURE(tex,uv,lod) h1tex2D(tex,uv).x #define D_H4_SAMPLELEVEL_TEXTURE(tex,uv,lod) h4tex2D(tex,uv) #define D_H1_SAMPLE_SRGBTEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_SRGBTEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_SRGBTEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_SRGBTEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_WRAP_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_WRAP_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_WRAP_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_WRAP_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_ANISO_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_ANISO_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_ANISO_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_ANISO_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H4_SAMPLE_WRAPT_SRGBTEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H2_SAMPLE_TEXTURE_3D(tex,uv) h2tex3D(tex,uv).xy #define D_H2_SAMPLE_WRAP_TEXTURE_3D(tex,uv) h2tex3D(tex,uv).xy #define D_H3_SAMPLE_TEXTURE_CUBE(tex,uv) h3texCUBE(tex,uv).xyz #define D_H4_SAMPLE_TEXTURE_CUBE(tex,uv) h4texCUBE(tex,uv) #endif #if !defined(GLOBAL_LEAN_AND_MEAN) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // these constants are system constants; uploaded by Phyre itself. // we can't do this, but we don't want to upload them all the time, either. consequently, we make these global // i guess we can eventually stuff these into a separate uniform buffer //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// float4x4 view : view ; // uploaded once per camera float4x4 projection : projection ; // view inverse float4x4 viewprojection : viewprojection ; float4 eyeDirectionWS : eyeDirectionWS ; float4 eyePositionWS : eyePositionWS ; float4 eyePositionOS : eyePositionOS ; float4 cameraNear : cameraNearFar ; float4x4 modelIT : modelit ; // uploaded per primitive // model inverse transpose float4x4 model : model ; float4x4 modelViewProj : modelviewproj ; #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // depth conversion code, stolen from the sample code //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// float cameraNearTimesFar; float cameraFarMinusNear; float4 cameraNearFar; // Convert a depth value from post projection space to view space. float ConvertDepth(float depth) { // float viewSpaceZ = -(scene.cameraNearTimesFar / (depth * scene.cameraFarMinusNear - scene.cameraNearFar.y)); #if defined(D_PLATFORM_GXM) float viewSpaceZ = -(cameraNearTimesFar / (depth * cameraFarMinusNear - cameraNearFar.y)); #else float viewSpaceZ = -(cameraNearTimesFar / (depth * cameraFarMinusNear - cameraNearFar.y)); #endif return viewSpaceZ; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // skinning //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef SKINNING_ENABLED // grabbed off [PhyreCoreShaderShared.h] // Description: // Encapsulates the skinning transformation matrices. #if defined(D_PLATFORM_GXM) #define PE_MAX_SKIN_CB_TRANSFORMS 32 float4x4 boneTransforms[PE_MAX_SKIN_CB_TRANSFORMS]; float4x4 GenerateBoneMatrix(int4 SkinIndices,float4 SkinWeights) { return boneTransforms[SkinIndices[0]]*SkinWeights[0] + boneTransforms[SkinIndices[1]]*SkinWeights[1] + boneTransforms[SkinIndices[2]]*SkinWeights[2] + boneTransforms[SkinIndices[3]]*SkinWeights[3]; } #else #define PE_MAX_SKIN_CB_TRANSFORMS 32 struct PSkinTransforms { float4x4 Mtxs[PE_MAX_SKIN_CB_TRANSFORMS]; // The skinning transformation matrices. }; cbuffer BoneTransformConstantBuffer { PSkinTransforms SkinTransforms; } float4x4 GenerateBoneMatrix(uint4 SkinIndices,float4 SkinWeights) { return SkinTransforms.Mtxs[SkinIndices[0]]*SkinWeights[0] + SkinTransforms.Mtxs[SkinIndices[1]]*SkinWeights[1] + SkinTransforms.Mtxs[SkinIndices[2]]*SkinWeights[2] + SkinTransforms.Mtxs[SkinIndices[3]]*SkinWeights[3]; } #endif #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// static const float4x4 SCALE_BIAS = float4x4( float4( 0.5, 0.0, 0.0, 0.5 ), #if defined(D_PLATFORM_D3D11) float4( 0.0, -0.5, 0.0, 0.5 ), #else float4( 0.0, 0.5, 0.0, 0.5 ), #endif float4( 0.0, 0.0, 0.5, 0.5 ), float4( 0.0, 0.0, 0.0, 1.0 ) ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef D_PLATFORM_GXM #define D_INT_MOD(val,mod) (frac((floor((float)val)/mod))*mod) #define D_UINT_MOD(val,mod) (frac((floor((float)val)/mod))*mod) #elif defined(D_PLATFORM_GNM) #define D_INT_MOD(val,mod) ((int)floor(val) % mod) #define D_UINT_MOD(val,mod) ((uint)floor(val) % mod) #else #define D_INT_MOD(val,mod) ((int)floor(val) % mod) #define D_UINT_MOD(val,mod) ((int)floor(val) % mod) #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef D_ENABLE_DEBUG_PARAMS float4 debugVars0; float4 debugVars1; float4 debugVars2; float4 debugVars3; float4 debugVars4; float4 debugVars5; float4 debugVars6; float4 debugVars7; #define GETDEBUGVAR(dv) (debugVars##dv!=0) ? (debugVars##dv) : #define GETDEBUGVAR2(dv,scl) (debugVars##dv!=0) ? (scl*debugVars##dv) : #endif #define powsafe(_x,_y) pow(max(_x,0.00000000000001),_y) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #endif//MIGRATORY_SH #line 160 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" #define LOW_RES #ifndef D_PREPASS_ENABLED #ifndef PHYRE3X_ENABLED float4 l_c; #endif D_DECLARE_TEXTURE2D_4(textureAtlas); D_DECLARE_TEXTURE2D_4(partIrrTexture); #ifdef SOFT #ifdef LOW_RES D_DECLARE_TEXTURE2D_4(depthTexLo); #else D_DECLARE_TEXTURE2D_4(depthTex); #endif float depthBias; float depthScale; float depthExtra; #endif ////#ifdef SOFT float manualTexDepth2Dproj( D_DECLARE_TEXTURE2D_4(_depthTex), float4 uv ) { #if defined(D_PLATFORM_GCM) float3 depthColor = D_POINT_SAMPLE_TEXTURE_PROJ( _depthTex, uv ).rgb; float3 depthFactor = float3( 65536.0/16777215.0, 256.0/16777215.0, 1.0/16777215.0 ); return dot( round( depthColor * 255.0 ), depthFactor ); #else return D_POINT_SAMPLE_TEXTURE_PROJ( _depthTex, uv ).r; #endif } ////#endif #endif//D_PREPASS_ENABLED struct v2f { float4 clipSpace : POSITION_OUT; HALF4 color : COLOR0; float4 uv : TEXCOORD0; HALF4 lUvDirAmb : TEXCOORD1; #ifdef FOG HALF4 fog : TEXCOORD2; #endif #ifdef SOFT float4 pos : TEXCOORD3; #endif }; struct f2f { float4 color : FINAL_COLOR; }; //---------------------------------------------- // Program entry //---------------------------------------------- void main( in v2f IN, out f2f OUT ) { HALF4 texColor = D_H4_SAMPLE_SRGBTEXTURE( textureAtlas, IN.uv.xy ); float invOpacity = IN.uv.z; float intensity = IN.uv.w; HALF4 partIrrTap = D_H4_SAMPLE_SRGBTEXTURE( partIrrTexture, IN.lUvDirAmb.xy ); HALF3 direct = IN.lUvDirAmb.z * 40.0 * l_c.xyz * partIrrTap.a; // Looks better to boost the light color a lot. //HALF3 direct = 40.0 * l_c.xyz * partIrrTap.a; // Looks better to boost the light color a lot. HALF3 ambient = IN.lUvDirAmb.w * partIrrTap.rgb; HALF3 light = direct + ambient; #ifdef SOFT #if defined( LOW_RES ) float depth = manualTexDepth2Dproj( depthTexLo, IN.pos ); #else float depth = manualTexDepth2Dproj( depthTex, IN.pos ); #endif #if defined(D_PLATFORM_GCM) float pdepth = depthScale / ( depth - depthBias ); #else float pdepth = ConvertDepth(depth); #endif float ourDepth = IN.pos.w; IN.color.a *= clamp( ( pdepth - ourDepth + depthExtra ), 0.0, 1.0 ); #endif // Multiply alpha here instead of in blend mode float alpha = IN.color.a * texColor.a; OUT.color = float4( intensity * light * saturate( IN.color.rgb * texColor.rgb * 2 ) * alpha, alpha ); OUT.color.a *= invOpacity; #ifdef FOG OUT.color.rgb = lerp( OUT.color.rgb, IN.fog.rgb * alpha * invOpacity, IN.fog.a ); #endif #ifdef ALPHATESTENABLE clip(OUT.color.a-(1.0f/255.0f)); #endif } // ------------------------------------------------------------------------------------------------------------------------------------------ #undef main #undef IN #undef OUT #undef v2f #undef f2f // ===================================================================================================================[TECHNIQUE CODE END]=== #if !defined(D_PLATFORM_GXM) #ifndef __ORBIS__ technique11 Opaque { pass pass0 { SetVertexShader( CompileShader( vs_5_0, Opaque_vs_main() ) ); SetPixelShader( CompileShader( ps_5_0, Opaque_fs_main() ) ); SetBlendState(ourBlendState, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF); SetDepthStencilState(ourDepthStencilState,0); SetRasterizerState(ourRasterState); } } #endif #else technique Opaque { pass pass0 { VertexProgram = compile arbvp1 Opaque_vs_main(); FragmentProgram = compile arbfp1 Opaque_fs_main(); } } #endif D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx `1FOGLOW_RESSOFT GGGGGGGG€?€?€?€?€?€A€A€?€ Ѓр05spDXBC1ŸDŸWdј6ŠА`%j Ѓ8дќ ˜ RDEFиT<џџA­RD11< ($ ќ !џџџџ .џџџџ =џџџџ HPointClampSamplerLinearClampSamplertextureAtlaspartIrrTexturedepthTexLo$GlobalsЋЋЋHlрœИџџџџџџџџмИџџџџџџџџяџџџџџџџџ( @@џџџџџџџџd`џџџџџџџџrpџџџџџџџџv€џџџџџџџџzџџџџџџџџ~ џџџџџџџџƒАџџџџџџџџˆРџџџџџџџџаИџџџџџџџџ—дИџџџџџџџџЂиИџџџџџџџџcameraNearTimesFarfloatЋЋЋЏcameraFarMinusNearcameraNearFarfloat4§modelViewProjfloat4x4Ћ6eyePositionWSl_cl_al_df_sef_ccf_fcdepthBiasdepthScaledepthExtraMicrosoft (R) HLSL Shader Compiler 10.1ЋЋЋISGNД˜ЄЊЊЊЊ SV_POSITIONCOLORTEXCOORDЋOSGN, SV_TARGETЋЋSHEXьPЛjˆYFŽ Z`Z` XpUUXpUUXpUUbђbђbђbђbВeђ hE‹Т€CUrFF~` /rF8 rF@ЭЬ @ЭЬ @ЭЬ @rFE‹Т€CU‚FF~` 6‚:6*6":E‹Т€CUrFF~` /rF8 rF@ЭЬ @ЭЬ @ЭЬ @rFE‹Т€CUBFF{` 6B*8‚*@ B8rіF‚ 8rІ F8rFіrFF::6rFТІ E‹Т€CUBц –|`6B*6B*:6B*8B*€ 6‚€ €AB:*B € *6B*€A6B*6B*6‚:6‚:€AB:*B**€ 4B*@3B*@€?8B*:8‚:*8тV 8rFF+r@8rFF4 rF@3 rF@€?€?€?8rF–8rіF6‚:8‚  :8ті8r–6rF€ArFF8rFіr FF>STAT”<& SPDB–Microsoft C/C++ MSF 7.00 DSKPIРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ8ќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ <џџџџ”.1\Œ^О€ЄШ’їHЊ ƒ&!мQ3BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = ONE ; DestBlendAlpha [ 0 ] = ONE ; BlendOpAlpha [ 0 ] = ADD ; RenderTargetWriteMask [ 0 ] = 15 ; AlphaToCoverageEnable = false ; } ; DepthStencilState ourDepthStencilState { DepthEnable = true ; DepthFunc = less ; StencilEnable = false ; } ; RasterizerState ourRasterState { CullMode = None ; DepthBias = 0.0f ; ScissorEnable = false ; MultiSampleEnable = false ; DepthClipEnable = false ; AnЦZ}<ЉыАЮНщBP…­"LшVUœі’цд*х­ЩШQеџbЃ™НA$мРЮ7жš#line 1 "D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" #line 7 BlendState ourBlendState { BlendEnable [ 0 ] = FALSE ; BlendEnable [ 1 ] = FALSE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = ONE ; DestBlendAlpha [ 0 ] = ONE ; BlendOpAlpha [ 0 ] = ADD ; RenderTargetWriteMask [ 0 ] = 15 ; AlphaToCoverageEnable = false ; } ; DepthStencilState ourDepthStencilState { DepthEnable = true ; DepthFunc = less ; StencilEnable = false ; } ; RasterizerState ourRasterState { CullMode = None ; DepthBias = 0.0f ; ScissorEnable = false ; MultiSampleEnable = false ; DepthClipEnable = false ; AntialiasedLineEnable = false ; } ; #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 8 #line 16 #line 20 #line 135 #line 140 #line 147 BlendState NoBlend_BlendState { BlendEnable [ 0 ] = FALSE ; } ; BlendState Alpha_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; BlendState Additive_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = ONE ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = ONE ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; #line 180 BlendState ParticleBlended_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = ONE ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = ONE ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; DepthStencilState NoDepthTest_NoDepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState NoDepthTest_DepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_NoDepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_DepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; RasterizerState NoCull_RasterizerState { CullMode = None ; } ; RasterizerState BackFaceCull_RasterizerState { CullMode = Back ; FrontCounterClockwise = TRUE ; } ; RasterizerState FrontFaceCull_RasterizerState { CullMode = Front ; FrontCounterClockwise = TRUE ; } ; #line 243 #line 246 #line 264 #line 269 sampler PointClampSampler : register ( s8 ) { Filter = Min_Mag_Mip_Point ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearClampSampler : register ( s9 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearWrapTSampler : register ( s10 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Wrap ; AddressW = Clamp ; } ; sampler LinearWrapSampler : register ( s11 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler PointWrapSampler : register ( s12 ) { Filter = Min_Mag_Mip_Point ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler AnisoClampSampler : register ( s13 ) { Filter = ANISOTROPIC ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; MaxAnisotropy = 16 ; } ; sampler LinearWrapAnisoSampler : register ( s14 ) { Filter = ANISOTROPIC ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; sampler PointWrapAnisoSampler : register ( s15 ) { Filter = Min_Mag_Point_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; static const float kSRGB = 2.2f ; #line 358 #line 373 #line 408 #line 427 #line 435 #line 498 #line 516 #line 521 float cameraNearTimesFar ; float cameraFarMinusNear ; float4 cameraNearFar ; #line 527 float ConvertDepth ( float depth ) { #line 532 float viewSpaceZ = - ( cameraNearTimesFar / ( depth * cameraFarMinusNear - cameraNearFar . y ) ) ; return viewSpaceZ ; } #line 587 #line 592 static const float4x4 SCALE_BIAS = float4x4 ( float4 ( 0.5 , 0.0 , 0.0 , 0.5 ) , float4 ( 0.0 , - 0.5 , 0.0 , 0.5 ) , #line 598 float4 ( 0.0 , 0.0 , 0.5 , 0.5 ) , float4 ( 0.0 , 0.0 , 0.0 , 1.0 ) ) ; #line 613 #line 635 #line 642 #line 56 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" float4x4 modelViewProj : modelviewproj ; float4 eyePositionWS : eyePositionWS ; float4 l_c ; float4 l_a ; float4 l_d ; float4 f_se ; float4 f_cc , f_fc ; #line 78 struct Opaque_vs_a2v { float4 position : POSITION ; float3 uv : TEXCOORD0 ; float4 lUvDirAmb : TEXCOORD1 ; float4 color : COLOR0 ; } ; struct Opaque_vs_v2f { float4 clipSpace : SV_POSITION ; float4 color : COLOR0 ; float4 uv : TEXCOORD0 ; float4 lUvDirAmb : TEXCOORD1 ; float4 fog : TEXCOORD2 ; float4 pos : TEXCOORD3 ; } ; void Opaque_vs_main ( in Opaque_vs_a2v Opaque_vs_IN , out Opaque_vs_v2f Opaque_vs_OUT ) { const float3 pos = Opaque_vs_IN . position . xyz ; float3 eye = float3 ( eyePositionWS . xyz - pos . xyz ) ; float intensity = Opaque_vs_IN . uv . z ; #line 107 Opaque_vs_OUT . clipSpace = mul ( float4 ( pos , 1.0f ) , modelViewProj ) ; #line 111 float invOpacity = ( ( int ) floor ( ( int ) floor ( 255.2 * Opaque_vs_IN . color . a ) ) % 2 ) == 0 ? 1.0f : 0.001f ; Opaque_vs_OUT . color . rgba = Opaque_vs_IN . color . rgba ; #line 115 Opaque_vs_OUT . uv = float4 ( Opaque_vs_IN . uv . xy , invOpacity , intensity ) ; #line 118 Opaque_vs_OUT . lUvDirAmb = Opaque_vs_IN . lUvDirAmb ; float rayS = min ( eyePositionWS . y , pos . y ) ; float rayE = max ( eyePositionWS . y , pos . y ) + 0.5 ; float rayH = rayE - rayS ; float fogS = f_se . z ; float fogE = f_se . w ; float fogH = fogE - fogS ; float midS = min ( rayS , fogE ) ; float midE = min ( rayE , fogE ) ; float midA = 0.5 * ( midS + midE ) ; float midH = midE - midS ; float fogY = ( ( fogE - midA ) * midH ) / ( fogH * rayH ) ; float fogRatio = saturate ( ( fogY * length ( eye ) - f_se . x ) / ( f_se . y - f_se . x ) ) ; fogRatio = fogRatio * fogRatio ; float3 fogColor = lerp ( f_cc . rgb , f_fc . rgb , fogRatio ) ; float fogAlpha = lerp ( f_cc . a , f_fc . a , fogRatio ) ; Opaque_vs_OUT . fog = float4 ( fogColor , fogRatio * fogAlpha ) ; Opaque_vs_OUT . pos = mul ( SCALE_BIAS , Opaque_vs_OUT . clipSpace ) ; Opaque_vs_OUT . pos . w = Opaque_vs_OUT . clipSpace . w ; } #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 642 #line 159 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" #line 162 #line 165 #line 169 Texture2D < float4 > textureAtlas ; Texture2D < float4 > partIrrTexture ; Texture2D < float4 > depthTexLo ; #line 179 float depthBias ; float depthScale ; float depthExtra ; #line 186 float manualTexDepth2Dproj ( Texture2D < float4 > _depthTex , float4 uv ) { #line 192 return _depthTex . Sample ( PointClampSampler , ( float2 ) ( uv . xy / uv . w ) ) . r ; } #line 199 #line 202 struct Opaque_fs_v2f { float4 clipSpace : SV_POSITION ; float4 color : COLOR0 ; float4 uv : TEXCOORD0 ; float4 lUvDirAmb : TEXCOORD1 ; float4 fog : TEXCOORD2 ; float4 pos : TEXCOORD3 ; } ; struct Opaque_fs_f2f { float4 color : SV_TARGET0 ; } ; #line 224 void Opaque_fs_main ( in Opaque_fs_v2f Opaque_fs_IN , out Opaque_fs_f2f Opaque_fs_OUT ) { float4 texColor = float4 ( pow ( textureAtlas . Sample ( LinearClampSampler , Opaque_fs_IN . uv . xy ) . xyz , 2.2f ) , textureAtlas . Sample ( LinearClampSampler , Opaque_fs_IN . uv . xy ) . a ) ; float invOpacity = Opaque_fs_IN . uv . z ; float intensity = Opaque_fs_IN . uv . w ; float4 partIrrTap = float4 ( pow ( partIrrTexture . Sample ( LinearClampSampler , Opaque_fs_IN . lUvDirAmb . xy ) . xyz , 2.2f ) , partIrrTexture . Sample ( LinearClampSampler , Opaque_fs_IN . lUvDirAmb . xy ) . a ) ; float3 direct = Opaque_fs_IN . lUvDirAmb . z * 40.0 * l_c . xyz * partIrrTap . a ; float3 ambient = Opaque_fs_IN . lUvDirAmb . w * partIrrTap . rgb ; float3 light = direct + ambient ; float depth = manualTexDepth2Dproj ( depthTexLo , Opaque_fs_IN . pos ) ; #line 242 #line 245 float pdepth = ConvertDepth ( depth ) ; float ourDepth = Opaque_fs_IN . pos . w ; Opaque_fs_IN . color . a *= clamp ( ( pdepth - ourDepth + depthExtra ) , 0.0 , 1.0 ) ; #line 253 float alpha = Opaque_fs_IN . color . a * texColor . a ; Opaque_fs_OUT . color = float4 ( intensity * light * saturate ( Opaque_fs_IN . color . rgb * texColor . rgb * 2 ) * alpha , alpha ) ; Opaque_fs_OUT . color . a *= invOpacity ; Opaque_fs_OUT . color . rgb = lerp ( Opaque_fs_OUT . color . rgb , Opaque_fs_IN . fog . rgb * alpha * invOpacity , Opaque_fs_IN . fog . a ) ; #line 263 } technique11 Opaque { pass pass0 { SetVertexShader ( CompileShader ( vs_5_0 , Opaque_vs_main ( ) ) ) ; SetPixelShader ( CompileShader ( ps_5_0 , Opaque_fs_main ( ) ) ) ; SetBlendState ( ourBlendState , float4 ( 0.0f , 0.0f , 0.0f , 0.0f ) , 0xFFFFFFFF ) ; SetDepthStencilState ( ourDepthStencilState , 0 ) ; SetRasterizerState ( ourRasterState ) ; } } #line 295 ўяўя9+D:\Dev\TGC\Journey\head\Journey\shaderd:\dev\tgc\journey\head\journey\shader#line 1 "D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" #line 7 BlendState ourBlendState { BlendEnable [ 0 ] = FALSE ; BlendEnable [ 1 ] = FALSE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; т0€en‹ОЪе)(т0Q=]0ч)()B< КG КGMicrosoft (R) HLSL Shader Compiler 10.1z=hlslFlags0x4005hlslTargetps_5_0hlslEntryOpaque_fs_mainhlslDefines /DLOW_RES=1 /DPHYRE_D3DFX=1 /DSOFT=1 /DFOG=16 88Д Opaque_fs_main2> Opaque_fs_INPД8PД8PД8P Д8 PД8PД8PД8PД8P Д8 P$Д8$P(Д8(P,Д8,P0Д80P4Д84P8Д88P<Д8<P@Д8@PDД8DPHД8HPLД8LPPД8PPTД8TPXД8XP\Д8\Pќ86> Opaque_fs_OUTPД8PД8PД8P Д8 PдPдPдP ( .>texColorP0 P0 P0 P pЈ 2>@invOpacityP„ј2>@intensityP˜œ2>partIrrTapPД PД$PД(P T.>directPЌT0PЌT4PЌT8.>ambientPШ PШ$PШ(.>lightPфŒ PфŒ$PфŒ(.>@depthPpЈ.>@pdepthP@H.>@ourDepthPT.>@alphaPд 2MФа   [ \‚L B Qƒ U  [ ,J> €P\*> uvPp0Pp4P p8NFMФ   f ‚д  € 3 Lƒˆ P `  b8  d   B> €P,.>@depthPˆ2>@viewSpaceZP(Nє0)WeЎЭі/чh eЅsJ7*Ÿ*џ*ђИь xЌДт€Дтрт€ртєт€єтт€т0т€0т\т€\тpф€pф„х€„х˜ч€˜чФч€Фчич€ичч€чч€ч@ч€@чTш€Tшpш€pшш€шЌъ€ЌъШы€Шыфя€фяшя€шяья€ьяя€яя€яHя€Hя\я€\яpі€pіtі€tіˆі€ˆіЈі€ЈіФі€Фірі€ріі€іі€і,і€,і@ј€@јTљ€Tљlљ€lљˆљ€ˆљЈљ€ЈљФљ€Фљрљ€рљќ§€ќ§ў€ў4ў€4ўPў€Pўpў€pўŒў€ŒўДў€Дўмў€мўјў€јўў€ў(џ€(џD€D`€`|€|”€”А€АЬ€Ьш€шЩ&jЩ yЩ yЩ yЩ}СЩ Ч. ,- +н(uн"„н"„н"„нˆен лV7VCVTFD%#LJLJLJLJLJLJL J+)+)+)+)+)+)+)+)+ )- +Z+;Z+;Z+HZ!XZ!XZX;9‰&6‰Eo‰Es‰Es‰:u‰:u‰&u‰&}‰‡-+‘Hg‘Ht‘#‘#‘#‘#і$ Л(, Hp˜Рфќ Dd    Ъ18р џџџџ\\d@float4ѓђёj clipSpace color  uvѓђё 0lUvDirAmb @fogђё Pposђё"`Opaque_fs_v2f color"Opaque_fs_f2f @ float3ѓђёЈђё  @   @   ђё      ƒЕп$tialiasedLineEnable = false ; } ; #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 8 #line 16 #line 20 #line 135 #line 140 #line 147 BlendState NoBlend_BlendState { BlendEnable [ 0 ] = FALSE ; } ; BlendState Alpha_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; BlendState Additive_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = ONE ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = ONE ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; #line 180 BlendState ParticleBlended_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = ONE ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = ONE ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; DepthStencilState NoDepthTest_NoDepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState NoDepthTest_DepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_NoDepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_DepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; RasterizerState NoCull_RasterizerState { CullMode = None ; } ; RasterizerState BackFaceCull_RasterizerState { CullMode = Back ; FrontCounterClockwise = TRUE ; } ; RasterizerState FrontFaceCull_RasterizerState { CullMode = Front ; FrontCounterClockwise = TRUE ; } ; #line 243 #line 246 #line 264 #line 269 sampler PointClampSampler : register ( s8 ) { Filter = Min_Mag_Mip_Point ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearClampSampler : register ( s9 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearWrapTSampler : register ( s10 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Wrap ; AddressW = Clamp ; } ; sampler LinearWrapSampler : register ( s11 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler PointWrapSampler : register ( s12 ) { Filter = Min_Mag_Mip_Point ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler AnisoClampSampler : register ( s13 ) { Filter = ANISOTROPIC ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; MaxAnisotropy = 16 ; } ; sampler LinearWrapAnisoSampler : register ( s14 ) { Filter = ANISOTROPIC ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; sampler PointWrapAnisoSampler : register ( s15 ) { Filter = Min_Mag_Point_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; static const float kSRGB = 2.2f ; #line 358 #line 373 #line 408 #line 427 #line 435 #line 498 #line 516 #line 521 float cameraNearTimesFar ; float cameraFarMinusNear ; float4 cameraNearFar ; #line 527 float ConvertDepth ( float depth ) { #line 532 float viewSpaceZ = - ( cameraNearTimesFar / ( depth * cameraFarMinusNear - cameraNearFar . y ) ) ; return viewSpaceZ ; } #line 587 #line 592 static const float4x4 SCALE_BIAS = float4x4 ( float4 ( 0.5 , 0.0 , 0.0 , 0.5 ) , float4 ( 0.0 , - 0.5 , 0.0 , 0.5 ) , #line 598 float4 ( 0.0 , 0.0 , 0.5 , 0.5 ) , float4 ( 0.0 , 0.0 , 0.0 , 1.0 ) ) ; #line 613 #line 635 #line 642 #line 56 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" float4x4 modelViewProj : modelviewproj ; float4 eyePositionWS : eyePositionWS ; float4 l_c ; float4 l_a ; float4 l_d ; float4 f_se ; float4 f_cc , f_fc ; #line 78 struct Opaque_vs_a2v { float4 position : POSITION ; float3 uv : TEXCOORD0 ; float4 lUvDirAmb : TEXCOORD1 ; float4 color : COLOR0 ; } ; struct Opaque_vs_v2f { float4 clipSpace : SV_POSITION ; float4 color : COLOR0 ; float4 uv : TEXCOORD0 ; float4 lUvDirAmb : TEXCOORD1 ; float4 fog : TEXCOORD2 ; float4 pos : TEXCOORD3 ; } ; void Opaque_vs_main ( in Opaque_vs_a2v Opaque_vs_IN , out Opaque_vs_v2f Opaque_vs_OUT ) { const float3 pos = Opaque_vs_IN . position . xyz ; float3 eye = float3 ( eyePositionWS . xyz - pos . xyz ) ; float intensity = Opaque_vs_IN . uv . z ; #line 107 Opaque_vs_OUT . clipSpace = mul ( float4 ( pos , 1.0f ) , modelViewProj ) ; #line 111 float invOpacity = ( ( int ) floor ( ( int ) floor ( 255.2 * Opaque_vs_IN . color . a ) ) % 2 ) == 0 ? 1.0f : 0.001f ; Opaque_vs_OUT . color . rgba = Opaque_vs_IN . color . rgba ; #line 115 Opaque_vs_OUT . uv = float4 ( Opaque_vs_IN . uv . xy , invOpacity , intensity ) ; #line 118 Opaque_vs_OUT . lUvDirAmb = Opaque_vs_IN . lUvDirAmb ; float rayS = min ( eyePositionWS . y , pos . y ) ; float rayE = max ( eyePositionWS . y , pos . y ) + 0.5 ; float rayH = rayE - rayS ; float fogS = f_se . z ; float fogE = f_se . w ; float fogH = fogE - fogS ; float midS = min ( rayS , fogE ) ; float midE = min ( rayE , fogE ) ; float midA = 0.5 * ( midS + midE ) ; float midH = midE - midS ; float fogY = ( ( fogE - midA ) * midH ) / ( fogH * rayH ) ; float fogRatio = saturate ( ( fogY * length ( eye ) - f_se . x ) / ( f_se . y - f_se . x ) ) ; fogRatio = fogRatio * fogRatio ; float3 fogColor = lerp ( f_cc . rgb , f_fc . rgb , fogRatio ) ; float fogAlpha = lerp ( f_cc . a , f_fc . a , fogRatio ) ; Opaque_vs_OUT . fog = float4 ( fogColor , fogRatio * fogAlpha ) ; Opaque_vs_OUT . pos = mul ( SCALE_BIAS , Opaque_vs_OUT . clipSpace ) ; Opaque_vs_OUT . pos . w = Opaque_vs_OUT . clipSpace . w ; } #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 642 #line 159 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" #line 162 #line 165 #line 169 Texture2D < float4 > textureAtlas ; Texture2D < float4 > partIrrTexture ; Texture2D < float4 > depthTexLo ; #line 179 float depthBias ; float depthScale ; float depthExtra ; #line 186 float manualTexDepth2Dproj ( Texture2D < float4 > _depthTex , float4 uv ) { #line 192 return _depthTex . Sample ( PointClampSampler , ( float2 ) ( uv . xy / uv . w ) ) . r ; } #line 199 #line 202 struct Opaque_fs_v2f { float4 clipSpace : SV_POSITION ; float4 color : COLOR0 ; float4 uv : TEXCOORD0 ; float4 lUvDirAmb : TEXCOORD1 ; float4 fog : TEXCOORD2 ; float4 pos : TEXCOORD3 ; } ; struct Opaque_fs_f2f { float4 color : SV_TARGET0 ; } ; #line 224 void Opaque_fs_main ( in Opaque_fs_v2f Opaque_fs_IN , out Opaque_fs_f2f Opaque_fs_OUT ) { float4 texColor = float4 ( pow ( textureAtlas . Sample ( LinearClampSampler , Opaque_fs_IN . uv . xy ) . xyz , 2.2f ) , textureAtlas . Sample ( LinearClampSampler , Opaque_fs_IN . uv . xy ) . a ) ; float invOpacity = Opaque_fs_IN . uv . z ; float intensity = Opaque_fs_IN . uv . w ; float4 partIrrTap = float4 ( pow ( partIrrTexture . Sample ( LinearClampSampler , Opaque_fs_IN . lUvDirAmb . xy ) . xyz , 2.2f ) , partIrrTexture . Sample ( LinearClampSampler , Opaque_fs_IN . lUvDirAmb . xy ) . a ) ; float3 direct = Opaque_fs_IN . lUvDirAmb . z * 40.0 * l_c . xyz * partIrrTap . a ; float3 ambient = Opaque_fs_IN . lUvDirAmb . w * partIrrTap . rgb ; float3 light = direct + ambient ; float depth = manualTexDepth2Dproj ( depthTexLo , Opaque_fs_IN . pos ) ; #line 242 #line 245 float pdepth = ConvertDepth ( depth ) ; float ourDepth = Opaque_fs_IN . pos . w ; Opaque_fs_IN . color . a *= clamp ( ( pdepth - ourDepth + depthExtra ) , 0.0 , 1.0 ) ; #line 253 float alpha = Opaque_fs_IN . color . a * texColor . a ; Opaque_fs_OUT . color = float4 ( intensity * light * saturate ( Opaque_fs_IN . color . rgb * texColor . rgb * 2 ) * alpha , alpha ) ; Opaque_fs_OUT . color . a *= invOpacity ; Opaque_fs_OUT . color . rgb = lerp ( Opaque_fs_OUT . color . rgb , Opaque_fs_IN . fog . rgb * alpha * invOpacity , Opaque_fs_IN . fog . a ) ; #line 263 } technique11 Opaque { pass pass0 { SetVertexShader ( CompileShader ( vs_5_0 , Opaque_vs_main ( ) ) ) ; SetPixelShader ( CompileShader ( ps_5_0 , Opaque_fs_main ( ) ) ) ; SetBlendState ( ourBlendState , float4 ( 0.0f , 0.0f , 0.0f , 0.0f ) , 0xFFFFFFFF ) ; SetDepthStencilState ( ourDepthStencilState , 0 ) ; SetRasterizerState ( ourRasterState ) ; } } #line 295 D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_ParticleBlended_vs__ParticleBlended_fs__61224.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh Ÿ*(Pџ*)7* Ъ18@ џџџџ" manualTexDepth2DprojѓђёConvertDepthѓђёD3DSHDRь `" manualTexDepth2DprojѓђёConvertDepthѓђёџџџџ /ёX0!§eE!™IхqС@€@ $0<HT`lx%ФOpaque_fs_main&QџџџџџџџџPointClampSampler&Qџџџџџџ џџLinearClampSampler&QџџџџџџcameraNearTimesFar&QџџџџџџcameraFarMinusNear"QџџџџџџcameraNearFarQpџџџџџџl_c"QџџџџџџџџtextureAtlas"QџџџџџџџџpartIrrTextureQџџџџџџџџdepthTexLoQиџџџџџџdepthExtraџџџџ /ёourney/Data/Shaders/Migratory.shўяўяџџџџџџџџџџ џџџџџџџџџџ`  $Opaque_fs_mainnoneџџџџw 1 Ž?\T ,Dь `  $Opaque_fs_mainnone-К.ёџь `џџџџџьџџџџџџџџ'яD:\Dev\TGC\Journey\head\Journey\shaderD:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_ParticleBlended_vs__ParticleBlended_fs__61224.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fxD:/Dev/TGC/Journey/head/J”.1\Œ^О€ЄШ’їHЊ ƒ&!T/LinkInfo/names/src/headerblock/src/files/d:\dev\tgc\journey\head\journey\shader" мQ3 АSxy+€ч)hd(˜,„G)(FE?+,-./0123456789:;<=>  !"#$%&'*@ABDCHh 8P `рє№(и€pp€`P @А0Ра,д @1 `рє№(и€pp€`P @А0Ра,д @1 џџџџ4Pџџџџ48џџџџ4Шџџџџ4јџџџџ4˜џџџџ4€џџџџ4hџџџџ4џџџџ4Аџџџџ4рџџџџ4 4P484Шџџџџ4ј 4˜џџџџ4€џџџџ4hџџџџ44Аџџџџ4рџџџџ4@€p@p€@`@P @@А@0Р@а@,д@(иG4џџџџG4јџџџџG4рџџџџG4ШџџџџG4АџџџџG4˜џџџџG4€џџџџG4hџџџџB4PџџџџB48џџџџB4 џџџџ„1 @ AnisoClampSamplerLinearClampSamplerLinearWrapAnisoSamplerLinearWrapSamplerLinearWrapTSamplerPointClampSamplerPointWrapAnisoSamplerPointWrapSamplerdepthBiasdepthExtradepthScaledepthTexLof_ccf_fcf_sel_al_cl_dmodelViewProjpartIrrTexturetextureAtlasнСџџЅЅ    ЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅ ЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅЅ05sv05spOpaque_fs_mainOpaque_vs_mainhjЪ }R8}RPйCOLORPOSITIONTEXCOORD Ѕр05svDXBCЉž(œг4ЃFѓЖ{ Ѕ8,Дp|RDEFьh<ўџAСRD11< ($ \$GlobalsЋЋЋ\€рАЬџџџџџџџџ№Ьџџџџџџџџџџџџџџџџ< @Tџџџџџџџџx`џџџџџџџџ†pџџџџџџџџŠ€џџџџџџџџŽџџџџџџџџ’ џџџџџџџџ—АџџџџџџџџœРџџџџџџџџЁаЬџџџџџџџџЋдЬџџџџџџџџЖиЬџџџџџџџџcameraNearTimesFarfloatЋЋЋУcameraFarMinusNearcameraNearFarfloat4modelViewProjfloat4x4ЋJeyePositionWSl_cl_al_df_sef_ccf_fcdepthBiasdepthScaledepthExtraMicrosoft (R) HLSL Shader Compiler 10.1ЋЋЋISGN€hqqzPOSITIONTEXCOORDCOLOROSGNД˜ЄЊЊЊЊSV_POSITIONCOLORTEXCOORDЋSHEX PAjˆYFŽ _r_r_ђ_ђgђ eђ eђ eђ eђ eђ h6ђ@??6ђ@П?6ђ@??6rF6rF€ArFF‚ 6‚*6‚@€?FFŽ "FFŽ BFFŽ ‚FFŽ 8:@33CA  + A  (B (‚@ @€$ *$B:@Nа *(B ' ‚@ 7 :*   @7  @€?@oƒ:6ђ F62 F6B  6‚ :6ђ F3€ 4"€ "@?6B €AB*6‚*€ 6‚:€ 6‚:€A‚::3 :3": 8 @?6 €A 6" €A":8 8"*: "FFK"8 6" € €A  6" € €A "€  4 @3 @€?8  6т‰ €A тV‰ 8тVтV‰ 6:€ €A  :€ 8   :€ 8‚   6r – FF" FFB FF6‚ :6ђ F>STAT”Q 2SPDB–Microsoft C/C++ MSF 7.00 DSKPIРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ8ќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ <џџџџ”.1\Œ^XВM578aHЗ™`Э &амQ3BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = ONE ; DestBlendAlpha [ 0 ] = ONE ; BlendOpAlpha [ 0 ] = ADD ; RenderTargetWriteMask [ 0 ] = 15 ; AlphaToCoverageEnable = false ; } ; DepthStencilState ourDepthStencilState { DepthEnable = true ; DepthFunc = less ; StencilEnable = false ; } ; RasterizerState ourRasterState { CullMode = None ; DepthBias = 0.0f ; ScissorEnable = false ; MultiSampleEnable = false ; DepthClipEnable = false ; AnЦZLшhN ў}<ЇџdP…h&щ№gŸI™НA$БХ#line 1 "D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" #line 7 BlendState ourBlendState { BlendEnable [ 0 ] = FALSE ; BlendEnable [ 1 ] = FALSE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = ONE ; DestBlendAlpha [ 0 ] = ONE ; BlendOpAlpha [ 0 ] = ADD ; RenderTargetWriteMask [ 0 ] = 15 ; AlphaToCoverageEnable = false ; } ; DepthStencilState ourDepthStencilState { DepthEnable = true ; DepthFunc = less ; StencilEnable = false ; } ; RasterizerState ourRasterState { CullMode = None ; DepthBias = 0.0f ; ScissorEnable = false ; MultiSampleEnable = false ; DepthClipEnable = false ; AntialiasedLineEnable = false ; } ; #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 8 #line 16 #line 20 #line 135 #line 140 #line 147 BlendState NoBlend_BlendState { BlendEnable [ 0 ] = FALSE ; } ; BlendState Alpha_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; BlendState Additive_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = ONE ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = ONE ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; #line 180 BlendState ParticleBlended_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = ONE ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = ONE ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; DepthStencilState NoDepthTest_NoDepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState NoDepthTest_DepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_NoDepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_DepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; RasterizerState NoCull_RasterizerState { CullMode = None ; } ; RasterizerState BackFaceCull_RasterizerState { CullMode = Back ; FrontCounterClockwise = TRUE ; } ; RasterizerState FrontFaceCull_RasterizerState { CullMode = Front ; FrontCounterClockwise = TRUE ; } ; #line 243 #line 246 #line 264 #line 269 sampler PointClampSampler : register ( s8 ) { Filter = Min_Mag_Mip_Point ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearClampSampler : register ( s9 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearWrapTSampler : register ( s10 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Wrap ; AddressW = Clamp ; } ; sampler LinearWrapSampler : register ( s11 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler PointWrapSampler : register ( s12 ) { Filter = Min_Mag_Mip_Point ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler AnisoClampSampler : register ( s13 ) { Filter = ANISOTROPIC ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; MaxAnisotropy = 16 ; } ; sampler LinearWrapAnisoSampler : register ( s14 ) { Filter = ANISOTROPIC ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; sampler PointWrapAnisoSampler : register ( s15 ) { Filter = Min_Mag_Point_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; static const float kSRGB = 2.2f ; #line 358 #line 373 #line 408 #line 427 #line 435 #line 498 #line 516 #line 521 float cameraNearTimesFar ; float cameraFarMinusNear ; float4 cameraNearFar ; #line 527 float ConvertDepth ( float depth ) { #line 532 float viewSpaceZ = - ( cameraNearTimesFar / ( depth * cameraFarMinusNear - cameraNearFar . y ) ) ; return viewSpaceZ ; } #line 587 #line 592 static const float4x4 SCALE_BIAS = float4x4 ( float4 ( 0.5 , 0.0 , 0.0 , 0.5 ) , float4 ( 0.0 , - 0.5 , 0.0 , 0.5 ) , #line 598 float4 ( 0.0 , 0.0 , 0.5 , 0.5 ) , float4 ( 0.0 , 0.0 , 0.0 , 1.0 ) ) ; #line 613 #line 635 #line 642 #line 56 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" float4x4 modelViewProj : modelviewproj ; float4 eyePositionWS : eyePositionWS ; float4 l_c ; float4 l_a ; float4 l_d ; float4 f_se ; float4 f_cc , f_fc ; #line 78 struct Opaque_vs_a2v { float4 position : POSITION ; float3 uv : TEXCOORD0 ; float4 lUvDirAmb : TEXCOORD1 ; float4 color : COLOR0 ; } ; struct Opaque_vs_v2f { float4 clipSpace : SV_POSITION ; float4 color : COLOR0 ; float4 uv : TEXCOORD0 ; float4 lUvDirAmb : TEXCOORD1 ; float4 fog : TEXCOORD2 ; float4 pos : TEXCOORD3 ; } ; void Opaque_vs_main ( in Opaque_vs_a2v Opaque_vs_IN , out Opaque_vs_v2f Opaque_vs_OUT ) { const float3 pos = Opaque_vs_IN . position . xyz ; float3 eye = float3 ( eyePositionWS . xyz - pos . xyz ) ; float intensity = Opaque_vs_IN . uv . z ; #line 107 Opaque_vs_OUT . clipSpace = mul ( float4 ( pos , 1.0f ) , modelViewProj ) ; #line 111 float invOpacity = ( ( int ) floor ( ( int ) floor ( 255.2 * Opaque_vs_IN . color . a ) ) % 2 ) == 0 ? 1.0f : 0.001f ; Opaque_vs_OUT . color . rgba = Opaque_vs_IN . color . rgba ; #line 115 Opaque_vs_OUT . uv = float4 ( Opaque_vs_IN . uv . xy , invOpacity , intensity ) ; #line 118 Opaque_vs_OUT . lUvDirAmb = Opaque_vs_IN . lUvDirAmb ; float rayS = min ( eyePositionWS . y , pos . y ) ; float rayE = max ( eyePositionWS . y , pos . y ) + 0.5 ; float rayH = rayE - rayS ; float fogS = f_se . z ; float fogE = f_se . w ; float fogH = fogE - fogS ; float midS = min ( rayS , fogE ) ; float midE = min ( rayE , fogE ) ; float midA = 0.5 * ( midS + midE ) ; float midH = midE - midS ; float fogY = ( ( fogE - midA ) * midH ) / ( fogH * rayH ) ; float fogRatio = saturate ( ( fogY * length ( eye ) - f_se . x ) / ( f_se . y - f_se . x ) ) ; fogRatio = fogRatio * fogRatio ; float3 fogColor = lerp ( f_cc . rgb , f_fc . rgb , fogRatio ) ; float fogAlpha = lerp ( f_cc . a , f_fc . a , fogRatio ) ; Opaque_vs_OUT . fog = float4 ( fogColor , fogRatio * fogAlpha ) ; Opaque_vs_OUT . pos = mul ( SCALE_BIAS , Opaque_vs_OUT . clipSpace ) ; Opaque_vs_OUT . pos . w = Opaque_vs_OUT . clipSpace . w ; } #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 642 #line 159 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" #line 162 #line 165 #line 169 Texture2D < float4 > textureAtlas ; Texture2D < float4 > partIrrTexture ; Texture2D < float4 > depthTexLo ; #line 179 float depthBias ; float depthScale ; float depthExtra ; #line 186 float manualTexDepth2Dproj ( Texture2D < float4 > _depthTex , float4 uv ) { #line 192 return _depthTex . Sample ( PointClampSampler , ( float2 ) ( uv . xy / uv . w ) ) . r ; } #line 199 #line 202 struct Opaque_fs_v2f { float4 clipSpace : SV_POSITION ; float4 color : COLOR0 ; float4 uv : TEXCOORD0 ; float4 lUvDirAmb : TEXCOORD1 ; float4 fog : TEXCOORD2 ; float4 pos : TEXCOORD3 ; } ; struct Opaque_fs_f2f { float4 color : SV_TARGET0 ; } ; #line 224 void Opaque_fs_main ( in Opaque_fs_v2f Opaque_fs_IN , out Opaque_fs_f2f Opaque_fs_OUT ) { float4 texColor = float4 ( pow ( textureAtlas . Sample ( LinearClampSampler , Opaque_fs_IN . uv . xy ) . xyz , 2.2f ) , textureAtlas . Sample ( LinearClampSampler , Opaque_fs_IN . uv . xy ) . a ) ; float invOpacity = Opaque_fs_IN . uv . z ; float intensity = Opaque_fs_IN . uv . w ; float4 partIrrTap = float4 ( pow ( partIrrTexture . Sample ( LinearClampSampler , Opaque_fs_IN . lUvDirAmb . xy ) . xyz , 2.2f ) , partIrrTexture . Sample ( LinearClampSampler , Opaque_fs_IN . lUvDirAmb . xy ) . a ) ; float3 direct = Opaque_fs_IN . lUvDirAmb . z * 40.0 * l_c . xyz * partIrrTap . a ; float3 ambient = Opaque_fs_IN . lUvDirAmb . w * partIrrTap . rgb ; float3 light = direct + ambient ; float depth = manualTexDepth2Dproj ( depthTexLo , Opaque_fs_IN . pos ) ; #line 242 #line 245 float pdepth = ConvertDepth ( depth ) ; float ourDepth = Opaque_fs_IN . pos . w ; Opaque_fs_IN . color . a *= clamp ( ( pdepth - ourDepth + depthExtra ) , 0.0 , 1.0 ) ; #line 253 float alpha = Opaque_fs_IN . color . a * texColor . a ; Opaque_fs_OUT . color = float4 ( intensity * light * saturate ( Opaque_fs_IN . color . rgb * texColor . rgb * 2 ) * alpha , alpha ) ; Opaque_fs_OUT . color . a *= invOpacity ; Opaque_fs_OUT . color . rgb = lerp ( Opaque_fs_OUT . color . rgb , Opaque_fs_IN . fog . rgb * alpha * invOpacity , Opaque_fs_IN . fog . a ) ; #line 263 } technique11 Opaque { pass pass0 { SetVertexShader ( CompileShader ( vs_5_0 , Opaque_vs_main ( ) ) ) ; SetPixelShader ( CompileShader ( ps_5_0 , Opaque_fs_main ( ) ) ) ; SetBlendState ( ourBlendState , float4 ( 0.0f , 0.0f , 0.0f , 0.0f ) , 0xFFFFFFFF ) ; SetDepthStencilState ( ourDepthStencilState , 0 ) ; SetRasterizerState ( ourRasterState ) ; } } #line 295 ўяўя9+D:\Dev\TGC\Journey\head\Journey\shaderd:\dev\tgc\journey\head\journey\shader#line 1 "D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" #line 7 BlendState ourBlendState { BlendEnable [ 0 ] = FALSE ; BlendEnable [ 1 ] = FALSE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; т0€l$‹ОЪе)(т0Q=]0ч)()B< КG КGMicrosoft (R) HLSL Shader Compiler 10.1z=hlslFlags0x4005hlslTargetvs_5_0hlslEntryOpaque_vs_mainhlslDefines /DLOW_RES=1 /DPHYRE_D3DFX=1 /DSOFT=1 /DFOG=168 dd  Opaque_vs_main2> Opaque_vs_INP dP dP dP  d P dP dP dP d P  d$P$ d(P( d,P, d0P0 d4P4 d8P8 d<6> Opaque_vs_OUTPP dPPT dTPX dXP\ d\P@ d@PD dDPH dHPL dLP0 d0P4 d4P8 d8P< d<P  d P$ d$P( d(P, d,P dP dP dP dP dP dP dP  d P”lPPДLTPд,XP є \*> posPќ0P@4Pt8*>eyePLЌ@PLИDPLИH2>@intensityP`tL2>@invOpacityPА„0*>@raySP4№0*>@rayEPpа4*>@rayHPЄм8*>@fogSPМ0<*>@fogEPд0L*>@fogHPx<*>@midSP$l0*>@midEP@„4*>@midAPxŒ`*>@midHPЌP0*>@fogYP4L0.>@fogRatioPHМ0.>fogColorPм(4Pм(8Pм(<.>@fogAlphaPTА@2> SCALE_BIASPРDPРDP РDP0РD Pр$Pр$P$р$P4р$P P$P((P8,R џџџџџџSCALE_BIASє0)WeЎЭі/чh eЅsJ7*Ÿ*џ*ђМ (T PŠ P РPŠРP рPŠрP  œ\f€fg€g,g€,gLh€Lh`k€`ktk€tk”k€”kДk€Дkдk€дkєo€єoo€o$o€$o8o€8oLo€Lo`o€`oto€toˆo€ˆoœo€œoИo€Иoдo€дo№o€№oo€o$o€$oLo€Lopo€poŒo€ŒoАp€АpФs€Фsиs€иsьs€ьsv€vy€y4z€4zTz€Tzp{€p{ˆ{€ˆ{Є|€Є|М}€М}д~€д~ь~€ь~€$€€$€@€@\€\x‚€x‚‚€‚Ќƒ€ЌƒФƒ€Фƒрƒ€рƒќƒ€ќƒƒ€ƒ4„€4„P„€P„d„€d„€„€€„œ„€œ„И„€И„д„€д„є„€є„„€„,„€,„H…€H…d†€d†€†€€† †€ †М†€М†м‡€м‡ј‡€ј‡‡€‡4‡€4‡Tˆ€Tˆpˆ€pˆ„Œ€„Œ Œ€ ŒМŒ€МŒи€иь€ь € 64=9=9- +O!MO!MO!MO!MO!Mz:Yz2[z*[z"]z"]z]zazazazazazazazazazhzx@>USUSUS:864<4<:  &$&$($(&? ? ?)?1;?=b*7b*7b#7b#Bb#BbJ\bJ\b!^b`b`$"CACACACA><><><><E/AECJHJHJH=;і @dˆЄР Ъ18И џџџџ<<D@float4ѓђё@ float3ѓђёJ positionё uvѓђё lUvDirAmb ,color"<Opaque_vs_a2vj clipSpace color  uvѓђё 0lUvDirAmb @fogђё Pposђё"`Opaque_vs_v2f  @@float4x4        Ъ18 џџџџtialiasedLineEnable = false ; } ; #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 8 #line 16 #line 20 #line 135 #line 140 #line 147 BlendState NoBlend_BlendState { BlendEnable [ 0 ] = FALSE ; } ; BlendState Alpha_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; BlendState Additive_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = ONE ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = ONE ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; #line 180 BlendState ParticleBlended_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = ONE ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = ONE ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; DepthStencilState NoDepthTest_NoDepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState NoDepthTest_DepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_NoDepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_DepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; RasterizerState NoCull_RasterizerState { CullMode = None ; } ; RasterizerState BackFaceCull_RasterizerState { CullMode = Back ; FrontCounterClockwise = TRUE ; } ; RasterizerState FrontFaceCull_RasterizerState { CullMode = Front ; FrontCounterClockwise = TRUE ; } ; #line 243 #line 246 #line 264 #line 269 sampler PointClampSampler : register ( s8 ) { Filter = Min_Mag_Mip_Point ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearClampSampler : register ( s9 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearWrapTSampler : register ( s10 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Wrap ; AddressW = Clamp ; } ; sampler LinearWrapSampler : register ( s11 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler PointWrapSampler : register ( s12 ) { Filter = Min_Mag_Mip_Point ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler AnisoClampSampler : register ( s13 ) { Filter = ANISOTROPIC ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; MaxAnisotropy = 16 ; } ; sampler LinearWrapAnisoSampler : register ( s14 ) { Filter = ANISOTROPIC ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; sampler PointWrapAnisoSampler : register ( s15 ) { Filter = Min_Mag_Point_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; static const float kSRGB = 2.2f ; #line 358 #line 373 #line 408 #line 427 #line 435 #line 498 #line 516 #line 521 float cameraNearTimesFar ; float cameraFarMinusNear ; float4 cameraNearFar ; #line 527 float ConvertDepth ( float depth ) { #line 532 float viewSpaceZ = - ( cameraNearTimesFar / ( depth * cameraFarMinusNear - cameraNearFar . y ) ) ; return viewSpaceZ ; } #line 587 #line 592 static const float4x4 SCALE_BIAS = float4x4 ( float4 ( 0.5 , 0.0 , 0.0 , 0.5 ) , float4 ( 0.0 , - 0.5 , 0.0 , 0.5 ) , #line 598 float4 ( 0.0 , 0.0 , 0.5 , 0.5 ) , float4 ( 0.0 , 0.0 , 0.0 , 1.0 ) ) ; #line 613 #line 635 #line 642 #line 56 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" float4x4 modelViewProj : modelviewproj ; float4 eyePositionWS : eyePositionWS ; float4 l_c ; float4 l_a ; float4 l_d ; float4 f_se ; float4 f_cc , f_fc ; #line 78 struct Opaque_vs_a2v { float4 position : POSITION ; float3 uv : TEXCOORD0 ; float4 lUvDirAmb : TEXCOORD1 ; float4 color : COLOR0 ; } ; struct Opaque_vs_v2f { float4 clipSpace : SV_POSITION ; float4 color : COLOR0 ; float4 uv : TEXCOORD0 ; float4 lUvDirAmb : TEXCOORD1 ; float4 fog : TEXCOORD2 ; float4 pos : TEXCOORD3 ; } ; void Opaque_vs_main ( in Opaque_vs_a2v Opaque_vs_IN , out Opaque_vs_v2f Opaque_vs_OUT ) { const float3 pos = Opaque_vs_IN . position . xyz ; float3 eye = float3 ( eyePositionWS . xyz - pos . xyz ) ; float intensity = Opaque_vs_IN . uv . z ; #line 107 Opaque_vs_OUT . clipSpace = mul ( float4 ( pos , 1.0f ) , modelViewProj ) ; #line 111 float invOpacity = ( ( int ) floor ( ( int ) floor ( 255.2 * Opaque_vs_IN . color . a ) ) % 2 ) == 0 ? 1.0f : 0.001f ; Opaque_vs_OUT . color . rgba = Opaque_vs_IN . color . rgba ; #line 115 Opaque_vs_OUT . uv = float4 ( Opaque_vs_IN . uv . xy , invOpacity , intensity ) ; #line 118 Opaque_vs_OUT . lUvDirAmb = Opaque_vs_IN . lUvDirAmb ; float rayS = min ( eyePositionWS . y , pos . y ) ; float rayE = max ( eyePositionWS . y , pos . y ) + 0.5 ; float rayH = rayE - rayS ; float fogS = f_se . z ; float fogE = f_se . w ; float fogH = fogE - fogS ; float midS = min ( rayS , fogE ) ; float midE = min ( rayE , fogE ) ; float midA = 0.5 * ( midS + midE ) ; float midH = midE - midS ; float fogY = ( ( fogE - midA ) * midH ) / ( fogH * rayH ) ; float fogRatio = saturate ( ( fogY * length ( eye ) - f_se . x ) / ( f_se . y - f_se . x ) ) ; fogRatio = fogRatio * fogRatio ; float3 fogColor = lerp ( f_cc . rgb , f_fc . rgb , fogRatio ) ; float fogAlpha = lerp ( f_cc . a , f_fc . a , fogRatio ) ; Opaque_vs_OUT . fog = float4 ( fogColor , fogRatio * fogAlpha ) ; Opaque_vs_OUT . pos = mul ( SCALE_BIAS , Opaque_vs_OUT . clipSpace ) ; Opaque_vs_OUT . pos . w = Opaque_vs_OUT . clipSpace . w ; } #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 642 #line 159 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fx" #line 162 #line 165 #line 169 Texture2D < float4 > textureAtlas ; Texture2D < float4 > partIrrTexture ; Texture2D < float4 > depthTexLo ; #line 179 float depthBias ; float depthScale ; float depthExtra ; #line 186 float manualTexDepth2Dproj ( Texture2D < float4 > _depthTex , float4 uv ) { #line 192 return _depthTex . Sample ( PointClampSampler , ( float2 ) ( uv . xy / uv . w ) ) . r ; } #line 199 #line 202 struct Opaque_fs_v2f { float4 clipSpace : SV_POSITION ; float4 color : COLOR0 ; float4 uv : TEXCOORD0 ; float4 lUvDirAmb : TEXCOORD1 ; float4 fog : TEXCOORD2 ; float4 pos : TEXCOORD3 ; } ; struct Opaque_fs_f2f { float4 color : SV_TARGET0 ; } ; #line 224 void Opaque_fs_main ( in Opaque_fs_v2f Opaque_fs_IN , out Opaque_fs_f2f Opaque_fs_OUT ) { float4 texColor = float4 ( pow ( textureAtlas . Sample ( LinearClampSampler , Opaque_fs_IN . uv . xy ) . xyz , 2.2f ) , textureAtlas . Sample ( LinearClampSampler , Opaque_fs_IN . uv . xy ) . a ) ; float invOpacity = Opaque_fs_IN . uv . z ; float intensity = Opaque_fs_IN . uv . w ; float4 partIrrTap = float4 ( pow ( partIrrTexture . Sample ( LinearClampSampler , Opaque_fs_IN . lUvDirAmb . xy ) . xyz , 2.2f ) , partIrrTexture . Sample ( LinearClampSampler , Opaque_fs_IN . lUvDirAmb . xy ) . a ) ; float3 direct = Opaque_fs_IN . lUvDirAmb . z * 40.0 * l_c . xyz * partIrrTap . a ; float3 ambient = Opaque_fs_IN . lUvDirAmb . w * partIrrTap . rgb ; float3 light = direct + ambient ; float depth = manualTexDepth2Dproj ( depthTexLo , Opaque_fs_IN . pos ) ; #line 242 #line 245 float pdepth = ConvertDepth ( depth ) ; float ourDepth = Opaque_fs_IN . pos . w ; Opaque_fs_IN . color . a *= clamp ( ( pdepth - ourDepth + depthExtra ) , 0.0 , 1.0 ) ; #line 253 float alpha = Opaque_fs_IN . color . a * texColor . a ; Opaque_fs_OUT . color = float4 ( intensity * light * saturate ( Opaque_fs_IN . color . rgb * texColor . rgb * 2 ) * alpha , alpha ) ; Opaque_fs_OUT . color . a *= invOpacity ; Opaque_fs_OUT . color . rgb = lerp ( Opaque_fs_OUT . color . rgb , Opaque_fs_IN . fog . rgb * alpha * invOpacity , Opaque_fs_IN . fog . a ) ; #line 263 } technique11 Opaque { pass pass0 { SetVertexShader ( CompileShader ( vs_5_0 , Opaque_vs_main ( ) ) ) ; SetPixelShader ( CompileShader ( ps_5_0 , Opaque_fs_main ( ) ) ) ; SetBlendState ( ourBlendState , float4 ( 0.0f , 0.0f , 0.0f , 0.0f ) , 0xFFFFFFFF ) ; SetDepthStencilState ( ourDepthStencilState , 0 ) ; SetRasterizerState ( ourRasterState ) ; } } #line 295 D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_ParticleBlended_vs__ParticleBlended_fs__61224.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh Ÿ*(Pџ*)7*D3DSHDR `џџџџ /ё8 ЅС‰Ae!@@ $0<H%ФOpaque_vs_mainR џџџџџџSCALE_BIAS"Q  џџџџџџmodelViewProj"Q`џџџџџџeyePositionWSQ џџџџџџf_seQАџџџџџџf_ccQРџџџџџџf_fcџџџџ /ёourney/Data/Shaders/Migratory.shўяўяџџџџџџџџџџ џџџџџџџџџџ` \ Opaque_vs_mainnoneџџџџw 1 Ž?\T ,D ` \ Opaque_vs_mainnone-К.ё `џџџџ џџџџџџџџ'яD:\Dev\TGC\Journey\head\Journey\shaderD:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_ParticleBlended_vs__ParticleBlended_fs__61224.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_ParticleBlended_vs__ParticleBlended_fs__61224.fxD:/Dev/TGC/Journey/head/J”.1\Œ^XВM578aHЗ™`Э &аT/LinkInfo/names/src/headerblock/src/files/d:\dev\tgc\journey\head\journey\shader" мQ3 А№S8y+€ч)„D(h,мG*FE+,-./0123456789:;<=>?  !"#$%&'()@ABDCHCOLORPOSITIONTEXCOORDPEffectVariantPMaterialOpaqueVertexSTColor   ' *€p`P@0,(55ј5р5Ш5А5˜5€5h6P686 1XhX1PБXZP!PAP‘ PБ XŽXXœP1 XсX‘XСXёXЁXбXXБHИP! PAP!PaXЂXЄ PQ PБ Pё PБ  Pё ' hІPhЖalŽЈСA ЧтоциЬвžДЈdP>Œ&vˆјРъA Ъ