RYHPT¿44611j1¼(*KE¿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_textureFlags@  �Öp Ö hh P0 ÐÌ @@PP!@@%Ä€„¼&'Nàà+�è¨-ÀÀ5P0 CH0DЗ˜8�GS@Data/Shaders/S_Fog_vs__Fog_fs__2013.cgfx#3E44235B7EA02095B5AFCD4A30890E8E#materialData/Shaders/S_Fog_vs__Fog_fs__2013.fx#3E44235B7EA02095B5AFCD4A30890E8E #line 1 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fx" #define D_PLATFORM_D3D11x64 #define NO_ALPHA_PASS #define MSAA #define CROSSFADE // 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 // ------------------------------------------------------------------------------------------------------------------------------------------ #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 56 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fx" // Notes: Very similar to the "resample" shader. Provides an extra 3D uv // stream that contains a ray that points from the camera position // to a point at camera-space Z = 1. // // Author: John Edwards // Date C: 7-21-2010 // Projection param: float4 projPlaneU; float4 projPlaneV; float4 projPlaneOrigin; struct p2v { float4 position : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float4 position : POSITION_OUT; float2 uv : TEXCOORD0; float3 projPointer : TEXCOORD1; }; //---------------------------------------------- // Program entry //---------------------------------------------- void main( in p2v IN, out v2f OUT ) { #if defined(D_PLATFORM_D3D11) OUT.position = float4(IN.position.x,-IN.position.y, IN.position.z, 1); #else OUT.position = IN.position; #endif OUT.uv = IN.uv; #if defined(D_PLATFORM_D3D11) OUT.projPointer = projPlaneOrigin.xyz + (1 - IN.uv.x) * projPlaneU.xyz + (IN.uv.y) * projPlaneV.xyz; #else OUT.projPointer = projPlaneOrigin.xyz + (1 - IN.uv.x) * projPlaneU.xyz + (1 - IN.uv.y) * projPlaneV.xyz; #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 // ------------------------------------------------------------------------------------------------------------------------------------------ #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 113 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fx" // Notes: Post process fog. // // Author: John Edwards // Date C: 7-21-2010 // From Phyre. #define ourBlendState NoBlend_BlendState #define ourDepthStencilState NoDepthTest_NoDepthWrite_DepthState #define ourRasterState NoCull_RasterizerState // Fog vars. float4 f_se; float4 f_cc, f_fc; #ifdef CROSSFADE float f_crossfade; float4 f_crossfade_se; float4 f_crossfade_cc, f_crossfade_fc; #endif // For converting from Z buffer value to linear depth. float depthBias; float depthScale; // DoF params. float nearOffset; float nearScale; float farOffset; float farScale; D_DECLARE_TEXTURE2D_4(colorTex); #ifdef MSAA Texture2DMS depthTexMSAA; #else D_DECLARE_TEXTURE2D_4(depthTex); #endif struct v2f { float4 position : POSITION_OUT; float2 uv : TEXCOORD0; float3 projPointer : TEXCOORD1; }; struct f2f { float4 color : FINAL_COLOR; }; //---------------------------------------------- // Helper functions //---------------------------------------------- half4 ComputeFog( float3 camSpace, float4 f_se, half4 f_cc, half4 f_fc ) { float3 pos = eyePositionWS.xyz - camSpace; float rayS = min( eyePositionWS.y, pos.y ); float rayE = max( eyePositionWS.y, pos.y ) + 0.5; // Prevent div by 0. 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( camSpace ) - f_se.x) / (f_se.y - f_se.x) ); fogRatio *= fogRatio; half3 fogColor = lerp( f_cc.rgb, f_fc.rgb, (half)fogRatio ); half fogAlpha = lerp( f_cc.a, f_fc.a, fogRatio ); return half4( fogColor, fogAlpha * fogRatio ); } float myTexDepth2D( D_DECLARE_TEXTURE2D_4(depthTex), float2 uv ) { #if defined(D_PLATFORM_GCM) float3 depthColor = D_POINT_SAMPLE_TEXTURE( 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( depthTex, uv ).r; #endif } float ComputeDofIntensity( float z ) { return - saturate( (nearOffset - z) * nearScale ) + saturate( (z - farOffset) * farScale ); } //---------------------------------------------- // Program entry //---------------------------------------------- void main( in v2f IN, out f2f OUT ) { #ifndef NO_ALPHA_PASS float4 colorTap = D_SAMPLE_TEXTURE( colorTex, IN.uv ); #endif #ifdef MSAA uint2 dim; uint sampleCount; depthTexMSAA.GetDimensions(dim.x, dim.y, sampleCount); half4 fog = half4(0, 0, 0, 0); float2 uvCoord = IN.uv * float2(dim); float dofIntensity = 0; for (uint i = 0; i < sampleCount; ++i) { float depthTap = depthTexMSAA.Load(uvCoord, i).r; float zVal = ConvertDepth(depthTap); float3 camSpace = zVal * IN.projPointer; half4 fogSample = ComputeFog( camSpace, f_se, f_cc, f_fc ); #ifdef CROSSFADE half4 fog2 = ComputeFog( camSpace, f_crossfade_se, f_crossfade_cc, f_crossfade_fc ); fogSample = lerp( fogSample, fog2, (half)f_crossfade ); #endif fog += fogSample; dofIntensity += ComputeDofIntensity( zVal ); } fog *= (1.f / float(sampleCount)); dofIntensity *= (1.f / float(sampleCount)); #else float depthTap = myTexDepth2D( depthTex, IN.uv ); #if defined(D_PLATFORM_GCM) float zVal = depthScale / (depthTap - depthBias); #else float zVal = ConvertDepth(depthTap); #endif float3 camSpace = zVal * IN.projPointer; half4 fog = ComputeFog( camSpace, f_se, f_cc, f_fc ); #ifdef CROSSFADE half4 fog2 = ComputeFog( camSpace, f_crossfade_se, f_crossfade_cc, f_crossfade_fc ); fog = lerp( fog, fog2, (half)f_crossfade ); #endif float dofIntensity = ComputeDofIntensity( zVal ); #endif #ifdef NO_ALPHA_PASS OUT.color = fog; #elif defined(ALPHA_PASS_ONLY) OUT.color = float4(0, 0, 0, dofIntensity); #else OUT.color.rgb = lerp( colorTap.rgb, fog.rgb, fog.a ); // Compute DoF intensity. OUT.color.a = dofIntensity; //OUT.color.rgb = OUT.color.a; #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_Fog_vs__Fog_fs__2013.fxÐð1CROSSFADEMSAANO_ALPHA_PASSÐGGGGGGGG€?€?€?€?€?€A€A€?P„¼ 05spDXBCŸG2ýj)¸³= ðh’;¥j„¼8pàà|RDEF0”<ÿÿARD11< ($ | ‰depthTexMSAA$Globals««‰¬ 4@Dÿÿÿÿÿÿÿÿh@@Dÿÿÿÿÿÿÿÿs€@Dÿÿÿÿÿÿÿÿ‚À˜ÿÿÿÿÿÿÿÿ¼Ð˜ÿÿÿÿÿÿÿÿÊà˜ÿÿÿÿÿÿÿÿØð˜ÿÿÿÿÿÿÿÿã@Dÿÿÿÿÿÿÿÿë@@Dÿÿÿÿÿÿÿÿñ€@DÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿ<ÄÿÿÿÿÿÿÿÿOИÿÿÿÿÿÿÿÿ]à˜ÿÿÿÿÿÿÿÿhð˜ÿÿÿÿÿÿÿÿs˜ÿÿÿÿÿÿÿÿƒ˜ÿÿÿÿÿÿÿÿˆ ˜ÿÿÿÿÿÿÿÿ�0˜ÿÿÿÿÿÿÿÿ’@ÿÿÿÿÿÿÿÿžP˜ÿÿÿÿÿÿÿÿ­`˜ÿÿÿÿÿÿÿÿ¼p˜ÿÿÿÿÿÿÿÿË€ÿÿÿÿÿÿÿÿÕ„ÿÿÿÿÿÿÿÿàˆÿÿÿÿÿÿÿÿëŒÿÿÿÿÿÿÿÿõ�ÿÿÿÿÿÿÿÿÿ”ÿÿÿÿÿÿÿÿviewfloat4x4««9projectionviewprojectioneyeDirectionWSfloat4‘eyePositionWSeyePositionOScameraNearmodelITmodelmodelViewProjcameraNearTimesFarfloatcameraFarMinusNearcameraNearFarprojPlaneUprojPlaneVprojPlaneOriginf_sef_ccf_fcf_crossfadef_crossfade_sef_crossfade_ccf_crossfade_fcdepthBiasdepthScalenearOffsetnearScalefarOffsetfarScaleMicrosoft (R) HLSL Shader Compiler 10.1ISGNhP\\SV_POSITIONTEXCOORD«««OSGN, SV_TARGET««SHEXÄ PqjˆYFŽ (X pUUb2breò h =‰€CU2@F~oB p6 6"+ò@V V"82FF6‚@6òF6:0O" *2F6Â@.‹€CU"F~ 6":6"8"€ 6B€ €A"*" € 6"€A6"6"8âV:6âV6ò&� !6òFŽ "6òFŽ #6*€A € 3" € 4 €  @?6B€AB* 6 6‚:6 €A :3":3: ‚ 8‚:@?6"€A 6":€A‚:8‚ :8* : ‚––K‚:8: 6‚€A: 6"€A"* 4 @3 @€?8  6â €AâV 8âVr–F6":€A":8" ":8‚ 6rF6òF:6ò&� %6òFŽ &6òFŽ '6*€A € 3" € 4 €  @?6B€AB* 6 6‚:6 €A :3":3: ‚ 8‚:@?6"€A 6":€A‚:8‚ :8* : "––K"8" 6B€A"*6B€AB**"*4"@3"@€?8"6rF€ArFF8rVFrFF6B:€AB*:8B*B*:8‚*6rF6òF6òF€AòFF8òF€ $òFFòFF: @V*@€? 8òF6ò F>STAT”Š ^SPDB¦Microsoft C/C++ MSF 7.00 DSSpQÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ8üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ <ÿÿÿÿ”.1bŒ^Ÿ:ÇŠ–ƒ¢B¶Eð©é‰ÜQ3NE ; 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 ÆZuƒLè1a©ë°Î½é P…Ú+?ü*å’æt'üA$DÖ}ÚA¹ùvÕvÇ#line 1 "D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Fog_vs__Fog_fs__2013.fx" #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.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 506 float4x4 view : view ; float4x4 projection : projection ; float4x4 viewprojection : viewprojection ; float4 eyeDirectionWS : eyeDirectionWS ; float4 eyePositionWS : eyePositionWS ; float4 eyePositionOS : eyePositionOS ; float4 cameraNear : cameraNearFar ; float4x4 modelIT : modelit ; float4x4 model : model ; float4x4 modelViewProj : modelviewproj ; #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 55 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fx" #line 64 float4 projPlaneU ; float4 projPlaneV ; float4 projPlaneOrigin ; struct p2v { float4 position : POSITION ; float2 uv : TEXCOORD0 ; } ; struct Opaque_vs_v2f { float4 position : SV_POSITION ; float2 uv : TEXCOORD0 ; float3 projPointer : TEXCOORD1 ; } ; #line 84 void Opaque_vs_main ( in p2v Opaque_vs_IN , out Opaque_vs_v2f Opaque_vs_OUT ) { Opaque_vs_OUT . position = float4 ( Opaque_vs_IN . position . x , - Opaque_vs_IN . position . y , Opaque_vs_IN . position . z , 1 ) ; #line 90 Opaque_vs_OUT . uv = Opaque_vs_IN . uv ; Opaque_vs_OUT . projPointer = projPlaneOrigin . xyz + ( 1 - Opaque_vs_IN . uv . x ) * projPlaneU . xyz + ( Opaque_vs_IN . uv . y ) * projPlaneV . xyz ; #line 96 } #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.Sh" #line 642 #line 112 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fx" #line 120 #line 125 float4 f_se ; float4 f_cc , f_fc ; float f_crossfade ; float4 f_crossfade_se ; float4 f_crossfade_cc , f_crossfade_fc ; #line 135 float depthBias ; float depthScale ; #line 139 float nearOffset ; float nearScale ; float farOffset ; float farScale ; Texture2D < float4 > colorTex ; Texture2DMS < float4 > depthTexMSAA ; #line 154 #line 157 struct Opaque_fs_v2f { float4 position : SV_POSITION ; float2 uv : TEXCOORD0 ; float3 projPointer : TEXCOORD1 ; } ; struct Opaque_fs_f2f { float4 color : SV_TARGET0 ; } ; #line 172 float4 ComputeFog ( float3 camSpace , float4 f_se , float4 f_cc , float4 f_fc ) { float3 pos = eyePositionWS . xyz - camSpace ; 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 ( camSpace ) - f_se . x ) / ( f_se . y - f_se . x ) ) ; fogRatio *= fogRatio ; float3 fogColor = lerp ( f_cc . rgb , f_fc . rgb , ( float ) fogRatio ) ; float fogAlpha = lerp ( f_cc . a , f_fc . a , fogRatio ) ; return float4 ( fogColor , fogAlpha * fogRatio ) ; } float myTexDepth2D ( Texture2D < float4 > depthTex , float2 uv ) { #line 199 return depthTex . Sample ( PointClampSampler , uv ) . r ; } float ComputeDofIntensity ( float z ) { return - saturate ( ( nearOffset - z ) * nearScale ) + saturate ( ( z - farOffset ) * farScale ) ; } #line 214 void Opaque_fs_main ( in Opaque_fs_v2f Opaque_fs_IN , out Opaque_fs_f2f Opaque_fs_OUT ) { #line 218 uint2 dim ; uint sampleCount ; depthTexMSAA . GetDimensions ( dim . x , dim . y , sampleCount ) ; float4 fog = float4 ( 0 , 0 , 0 , 0 ) ; float2 uvCoord = Opaque_fs_IN . uv * float2 ( dim ) ; float dofIntensity = 0 ; for ( uint i = 0 ; i < sampleCount ; ++ i ) { float depthTap = depthTexMSAA . Load ( uvCoord , i ) . r ; float zVal = ConvertDepth ( depthTap ) ; float3 camSpace = zVal * Opaque_fs_IN . projPointer ; float4 fogSample = ComputeFog ( camSpace , f_se , f_cc , f_fc ) ; float4 fog2 = ComputeFog ( camSpace , f_crossfade_se , f_crossfade_cc , f_crossfade_fc ) ; fogSample = lerp ( fogSample , fog2 , ( float ) f_crossfade ) ; fog += fogSample ; dofIntensity += ComputeDofIntensity ( zVal ) ; } fog *= ( 1.f / float ( sampleCount ) ) ; dofIntensity *= ( 1.f / float ( sampleCount ) ) ; #line 268 #line 271 Opaque_fs_OUT . color = fog ; #line 285 } technique11 Opaque { pass pass0 { SetVertexShader ( CompileShader ( vs_5_0 , Opaque_vs_main ( ) ) ) ; SetPixelShader ( CompileShader ( ps_5_0 , Opaque_fs_main ( ) ) ) ; SetBlendState ( NoBlend_BlendState , float4 ( 0.0f , 0.0f , 0.0f , 0.0f ) , 0xFFFFFFFF ) ; SetDepthStencilState ( NoDepthTest_NoDepthWrite_DepthState , 0 ) ; SetRasterizerState ( NoCull_RasterizerState ) ; } } #line 317 þïþï$)D:\Dev\TGC\Journey\head\Journey\shaderd:\dev\tgc\journey\head\journey\shader#line 1 "D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Fog_vs__Fog_fs__2013.fx" #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.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 ] = Oâ0€‰n¨Ž¾ÊÕ)(â0¸föÓÊ'()B< ºG ºGMicrosoft (R) HLSL Shader Compiler 10.1†=hlslFlags0x4005hlslTargetps_5_0hlslEntryOpaque_fs_mainhlslDefines /DMSAA=1 /DCROSSFADE=1 /DPHYRE_D3DFX=1 /DNO_ALPHA_PASS=16l l X Opaque_fs_main2> Opaque_fs_INPXl PXl PXl P Xl PXl PXl PXl PXl $P Xl (6> Opaque_fs_OUTPXl PXl PXl P Xl *> dimP¤xP¸d2>usampleCountP� *>fogPØlPØlPØlP ØlPDh PDh $PDh (P Dh ,P¬ P¬ P¬ P ¬  .>uvCoordPX P� *>uiP0( PXl 0.>@depthTapPø¨4*>@zValPÈ4.>camSpacePä¨4Päð8Pä| <2>fogSamplePÔLpPÔLtPÔLxP ÔL|P @@P @DP @HP  @L*>fog2P° 4@P° 4DP° 4HP ° 4LFMÐ   f �¸  €� 3 L‚ P `  b8  d   B> €P´4.>@depthP�42>@viewSpaceZP (4N.MÐD  1‚ì 68 < < 4  &4 ( 8 ?4 g€ˆ � M >l 6 0l  /ƒD! 48 :  4   $4   &   4  )4 1 ;  = * < #0 G O a4 ! c4  e  8  K  <l 2l  6 B>ˆP ¬(|PÀpPÀtPÀx.> camSpacePD�4PD�8PD�<*> f_sePD@PDèDPDŒHP DüL*> f_ccPD�PPD�TPD�XP D�\*> f_fcPD�`PD�dPD�hP D�l*>posP|@p*>@raySPœèt*>@rayEPØÈp*>@rayHP x*>@fogSP ,@*>@fogEP4 L*>@fogHPh@*>@midSP„lt*>@midEP lp*>@midAPØÔ|*>@midHP p*>@fogYP”L@.>@fogRatioPœ8@.>fogColorP$°pP$°tP$°x.>@fogAlphaP�DDN.MÐ  1‡È 68 < < 4  &4 ( 8 ?4 g€ˆ � M >l 6 0l  /ˆ ! 48 :  4   $4   &   4  )4 1 ;  = * < #0 G O a4 ! c4  e  8  K  <l 2l  6 B>ˆP  h|P |pP |tP |xP ˆ (LPœ @Pœ DPœ H.> camSpaceP l4P ´8P �<*> f_seP @P ŒDP ŒHP  üL*> f_ccP �PP �TP �XP  �\*> f_fcP �`P �dP �hP  �l*>posPX@€*>@raySPxè„*>@rayEP´È€*>@rayHPèȈ*>@fogSPü,@*>@fogEP  L*>@fogHPD @*>@midSP` l„*>@midEP| l€*>@midAP´ üŒ*>@midHPè È€*>@fogYPp <@.>@fogRatioPx 84.>fogColorP àpP àtP àxP °@P °DP °H.>@fogAlphaPl D8Nô8x_çv‘k¢¨ÇòÊ„³tM(i(°(ê(ò Ä ü Xà€Xà|à€|à�à€�à¤à€¤à¸â€¸âØã€Øãìã€ìãã€ãæ€æ0æ€0æDæ€DæXæ€Xæ\æ€\æxæ€xæ„耄è˜耘è¸耸èäè€äèø逸éüé€üéé€é0é€0éLé€Léhé€héˆ逈é 造é´逴éÈê€Èêäë€äëèë€èëüë€üëë€ë,ë€,ëDë€Dë\ë€\ë|ë€|ëœ뀜ë¼뀼ëØë€Øëðë€ðë ë€ ë ë€ ë4ë€4ëLë€Lëhë€hë„뀄ë 뀠ë¼뀼ëØë€Øëðë€ðë ë€ ë$ë€$ë@ë€@ë\ë€\ëxë€xë”뀔ë°뀰ëÄë€Äëàë€àëøë€øëë€ë,ë€,ëHë€Hëdë€dë€뀀ëœ뀜ë¸뀸ëÐë€Ðëìë€ìëë€ë$ë€$ë<ë€<ëXë€Xëtë€të�ë€�ë¬뀬ëÀë€ÀëÔí€ÔíØí€Øíðí€ðíí€í í€ í8í€8íXí€Xíxí€xí˜퀘í´퀴íÌí€Ìíèí€èíüí€üí í€ í( í€( íD í€D í` í€` í| í€| í˜ í€˜ í´ í€´ íÌ í€Ì íè í€è í í€ í í€ í8 í€8 íT í€T íp í€p íŒ í€Œ í  í€  í¼ í€¼ íÔ í€Ô íð í€ð í í€ í$ í€$ í@ í€@ í\ í€\ íx í€x í” í€” í¬ í€¬ íÈ í€È íä í€ä í í€ í í€ í4 í€4 íP í€P íl í€l íˆ í€ˆ íœ í€œ í° î€° îÈ î€È îä î€ä î î€ î ñ€ ñ< ò€< ò@ ó€@ æ\ ó€\ ó` õ€` õt õ€t õ� õ€� õ¬ €¬ À €À FDFDFDFD+)9*79*797////////&/& B< B< B< B@ 0. 0. 0. 0. 0. 0. 0. 0. 0. =; IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG IG b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` GE GE GE GE   64*-,(,(,*!ö4( ­ ­4 Dl”¸Ôð ,Pt˜ Ê18À ÿÿÿÿXX`@float4óòñ@float2óòñ@ float3óòñ> positionñ uvóòñ projPointeròñ"$Opaque_fs_v2f color"Opaque_fs_f2f uuint2 @ @      ¨  ?½G0 "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 506 float4x4 view : view ; float4x4 projection : projection ; float4x4 viewprojection : viewprojection ; float4 eyeDirectionWS : eyeDirectionWS ; float4 eyePositionWS : eyePositionWS ; float4 eyePositionOS : eyePositionOS ; float4 cameraNear : cameraNearFar ; float4x4 modelIT : modelit ; float4x4 model : model ; float4x4 modelViewProj : modelviewproj ; #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 55 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fx" #line 64 float4 projPlaneU ; float4 projPlaneV ; float4 projPlaneOrigin ; struct p2v { float4 position : POSITION ; float2 uv : TEXCOORD0 ; } ; struct Opaque_vs_v2f { float4 position : SV_POSITION ; float2 uv : TEXCOORD0 ; float3 projPointer : TEXCOORD1 ; } ; #line 84 void Opaque_vs_main ( in p2v Opaque_vs_IN , out Opaque_vs_v2f Opaque_vs_OUT ) { Opaque_vs_OUT . position = float4 ( Opaque_vs_IN . position . x , - Opaque_vs_IN . position . y , Opaque_vs_IN . position . z , 1 ) ; #line 90 Opaque_vs_OUT . uv = Opaque_vs_IN . uv ; Opaque_vs_OUT . projPointer = projPlaneOrigin . xyz + ( 1 - Opaque_vs_IN . uv . x ) * projPlaneU . xyz + ( Opaque_vs_IN . uv . y ) * projPlaneV . xyz ; #line 96 } #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.Sh" #line 642 #line 112 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fx" #line 120 #line 125 float4 f_se ; float4 f_cc , f_fc ; float f_crossfade ; float4 f_crossfade_se ; float4 f_crossfade_cc , f_crossfade_fc ; #line 135 float depthBias ; float depthScale ; #line 139 float nearOffset ; float nearScale ; float farOffset ; float farScale ; Texture2D < float4 > colorTex ; Texture2DMS < float4 > depthTexMSAA ; #line 154 #line 157 struct Opaque_fs_v2f { float4 position : SV_POSITION ; float2 uv : TEXCOORD0 ; float3 projPointer : TEXCOORD1 ; } ; struct Opaque_fs_f2f { float4 color : SV_TARGET0 ; } ; #line 172 float4 ComputeFog ( float3 camSpace , float4 f_se , float4 f_cc , float4 f_fc ) { float3 pos = eyePositionWS . xyz - camSpace ; 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 ( camSpace ) - f_se . x ) / ( f_se . y - f_se . x ) ) ; fogRatio *= fogRatio ; float3 fogColor = lerp ( f_cc . rgb , f_fc . rgb , ( float ) fogRatio ) ; float fogAlpha = lerp ( f_cc . a , f_fc . a , fogRatio ) ; return float4 ( fogColor , fogAlpha * fogRatio ) ; } float myTexDepth2D ( Texture2D < float4 > depthTex , float2 uv ) { #line 199 return depthTex . Sample ( PointClampSampler , uv ) . r ; } float ComputeDofIntensity ( float z ) { return - saturate ( ( nearOffset - z ) * nearScale ) + saturate ( ( z - farOffset ) * farScale ) ; } #line 214 void Opaque_fs_main ( in Opaque_fs_v2f Opaque_fs_IN , out Opaque_fs_f2f Opaque_fs_OUT ) { #line 218 uint2 dim ; uint sampleCount ; depthTexMSAA . GetDimensions ( dim . x , dim . y , sampleCount ) ; float4 fog = float4 ( 0 , 0 , 0 , 0 ) ; float2 uvCoord = Opaque_fs_IN . uv * float2 ( dim ) ; float dofIntensity = 0 ; for ( uint i = 0 ; i < sampleCount ; ++ i ) { float depthTap = depthTexMSAA . Load ( uvCoord , i ) . r ; float zVal = ConvertDepth ( depthTap ) ; float3 camSpace = zVal * Opaque_fs_IN . projPointer ; float4 fogSample = ComputeFog ( camSpace , f_se , f_cc , f_fc ) ; float4 fog2 = ComputeFog ( camSpace , f_crossfade_se , f_crossfade_cc , f_crossfade_fc ) ; fogSample = lerp ( fogSample , fog2 , ( float ) f_crossfade ) ; fog += fogSample ; dofIntensity += ComputeDofIntensity ( zVal ) ; } fog *= ( 1.f / float ( sampleCount ) ) ; dofIntensity *= ( 1.f / float ( sampleCount ) ) ; #line 268 #line 271 Opaque_fs_OUT . color = fog ; #line 285 } technique11 Opaque { pass pass0 { SetVertexShader ( CompileShader ( vs_5_0 , Opaque_vs_main ( ) ) ) ; SetPixelShader ( CompileShader ( ps_5_0 , Opaque_fs_main ( ) ) ) ; SetBlendState ( NoBlend_BlendState , float4 ( 0.0f , 0.0f , 0.0f , 0.0f ) , 0xFFFFFFFF ) ; SetDepthStencilState ( NoDepthTest_NoDepthWrite_DepthState , 0 ) ; SetRasterizerState ( NoCull_RasterizerState ) ; } } #line 317 D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Fog_vs__Fog_fs__2013.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.shD:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.Sh ê((Pi()°(( Ê184 ÿÿÿÿ ConvertDepthóòñComputeFogñD3DSHDRÄ ` ConvertDepthóòñComputeFogñÿÿÿÿ /ñh8Õñ™¹m-! EuQ•@@@AH $0<HT`lx„�%ÐOpaque_fs_main"QÐÿÿÿÿÿÿeyePositionWS&QÀÿÿÿÿÿÿcameraNearTimesFar&QÄÿÿÿÿÿÿcameraFarMinusNear"QÐÿÿÿÿÿÿcameraNearFarQÿÿÿÿÿÿf_seQ ÿÿÿÿÿÿf_ccQ0ÿÿÿÿÿÿf_fcQ@ÿÿÿÿÿÿf_crossfade"QPÿÿÿÿÿÿf_crossfade_se"Q`ÿÿÿÿÿÿf_crossfade_cc"Qpÿÿÿÿÿÿf_crossfade_fc"QÿÿÿÿÿÿÿÿdepthTexMSAA8ÿÿÿÿ /ñurney/head/Journey/Data/Shaders/Migratory.Shþïþïÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿ Œ Opaque_fs_mainnoneÿÿÿÿw 1 Ž?\T ,PÄ ` Œ Opaque_fs_mainnone-º.ñdiÄ `CoÿÿÿÿÄ ÿÿÿÿÿÿÿÿ'v½÷D:\Dev\TGC\Journey\head\Journey\shaderD:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Fog_vs__Fog_fs__2013.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.shD:/Dev/TGC/Jo”.1bŒ^Ÿ:ÇŠ–ƒ¢B¶Eð©é‰T/LinkInfo/names/src/headerblock/src/files/d:\dev\tgc\journey\head\journey\shader" ÜQ3 °ø_ld)€Ê'ä'`(°,¼O2NMG456789:;<=>?@ABCDEF  !"#$%&'()*+,-./013HIJLKP8 °À Ð@@1Ð@1€@1àÐôÀðļˆ¸Œ´� ð°”�à€ðp`P @0È@0P `pÄ€À„àà @@1`€@1 @1°À Ð@@1Ð@1€@1àÐôÀðļˆ¸Œ´� ð°”�à€ðp`P @0È@0P `pÄ€À„àà @@1`€@1 @18ÿÿÿÿ4 ÿÿÿÿ4Pÿÿÿÿ4hÿÿÿÿ4øÿÿÿÿ4àÿÿÿÿ4Èÿÿÿÿ4°ÿÿÿÿ4˜ÿÿÿÿ4€ÿÿÿÿ48ÿÿÿÿ4 4Pÿÿÿÿ4hÿÿÿÿ4øÿÿÿÿ4àÿÿÿÿ4Èÿÿÿÿ4°ÿÿÿÿ4˜ÿÿÿÿ4€ÿÿÿÿ4@ ð@�à@€ð@p@`@P @@0@È@@0P@ `@p@Ä€@À„@¼ˆ@¸Œ@´�@°”G4øÿÿÿÿG4àÿÿÿÿG4ÈÿÿÿÿG4°ÿÿÿÿG4˜ÿÿÿÿG4€ÿÿÿÿG4hÿÿÿÿG4PÿÿÿÿB48ÿÿÿÿB4 ÿÿÿÿ�àà‚1 @@„1`@€ˆ1 @AnisoClampSamplerLinearClampSamplerLinearWrapAnisoSamplerLinearWrapSamplerLinearWrapTSamplerPointClampSamplerPointWrapAnisoSamplerPointWrapSamplercameraNearcolorTexdepthBiasdepthScaledepthTexMSAAeyePositionOSf_ccf_crossfadef_crossfade_ccf_crossfade_fcf_crossfade_sef_fcf_sefarOffsetfarScalemodelmodelITmodelViewProjnearOffsetnearScaleprojPlaneOriginprojPlaneUprojPlaneVÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥05sv05spOpaque_fs_mainOpaque_vs_main8jÊ }RPOSITIONTEXCOORD4� 05svDXBCQ)IÛí÷á$y·ШȾ÷4�8D˜� , RDEFh<þÿAÜRD11< ($ \$Globals«««\€ @ÿÿÿÿÿÿÿÿ<@@ÿÿÿÿÿÿÿÿG€@ÿÿÿÿÿÿÿÿVÀlÿÿÿÿÿÿÿÿ�Ðlÿÿÿÿÿÿÿÿžàlÿÿÿÿÿÿÿÿ¬ðlÿÿÿÿÿÿÿÿ·@ÿÿÿÿÿÿÿÿ¿@@ÿÿÿÿÿÿÿÿÅ€@ÿÿÿÿÿÿÿÿÓÀìÿÿÿÿÿÿÿÿÄìÿÿÿÿÿÿÿÿ#Ðlÿÿÿÿÿÿÿÿ1àlÿÿÿÿÿÿÿÿ<ðlÿÿÿÿÿÿÿÿGlÿÿÿÿÿÿÿÿWlÿÿÿÿÿÿÿÿ\ lÿÿÿÿÿÿÿÿa0lÿÿÿÿÿÿÿÿf@ìÿÿÿÿÿÿÿÿrPlÿÿÿÿÿÿÿÿ�`lÿÿÿÿÿÿÿÿ�plÿÿÿÿÿÿÿÿŸ€ìÿÿÿÿÿÿÿÿ©„ìÿÿÿÿÿÿÿÿ´ˆìÿÿÿÿÿÿÿÿ¿ŒìÿÿÿÿÿÿÿÿÉ�ìÿÿÿÿÿÿÿÿÓ”ìÿÿÿÿÿÿÿÿviewfloat4x4«« projectionviewprojectioneyeDirectionWSfloat4eeyePositionWSeyePositionOScameraNearmodelITmodelmodelViewProjcameraNearTimesFarfloatæcameraFarMinusNearcameraNearFarprojPlaneUprojPlaneVprojPlaneOriginf_sef_ccf_fcf_crossfadef_crossfade_sef_crossfade_ccf_crossfade_fcdepthBiasdepthScalenearOffsetnearScalefarOffsetfarScaleMicrosoft (R) HLSL Shader Compiler 10.1ISGNL8APOSITIONTEXCOORD««OSGNhP\ \SV_POSITIONTEXCOORD«««SHEX€P`jˆYFŽ !_r_2gò e2 er h6" €A+‚ @6R 62 F+@6" €A 8rF‚ rFF‚ 8rVF‚ r FF>STAT” SPDB†Microsoft C/C++ MSF 7.00 DSC(?Àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ8ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ <ÿÿÿÿ”.1bŒ^ú¾_¾|=kDºƒ ;R›ÜQ3NE ; 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 ÆZuƒ}¿ Lèô§ÿÎP…Ú+A$9Î#line 1 "D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Fog_vs__Fog_fs__2013.fx" #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.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 506 float4x4 view : view ; float4x4 projection : projection ; float4x4 viewprojection : viewprojection ; float4 eyeDirectionWS : eyeDirectionWS ; float4 eyePositionWS : eyePositionWS ; float4 eyePositionOS : eyePositionOS ; float4 cameraNear : cameraNearFar ; float4x4 modelIT : modelit ; float4x4 model : model ; float4x4 modelViewProj : modelviewproj ; #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 55 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fx" #line 64 float4 projPlaneU ; float4 projPlaneV ; float4 projPlaneOrigin ; struct p2v { float4 position : POSITION ; float2 uv : TEXCOORD0 ; } ; struct Opaque_vs_v2f { float4 position : SV_POSITION ; float2 uv : TEXCOORD0 ; float3 projPointer : TEXCOORD1 ; } ; #line 84 void Opaque_vs_main ( in p2v Opaque_vs_IN , out Opaque_vs_v2f Opaque_vs_OUT ) { Opaque_vs_OUT . position = float4 ( Opaque_vs_IN . position . x , - Opaque_vs_IN . position . y , Opaque_vs_IN . position . z , 1 ) ; #line 90 Opaque_vs_OUT . uv = Opaque_vs_IN . uv ; Opaque_vs_OUT . projPointer = projPlaneOrigin . xyz + ( 1 - Opaque_vs_IN . uv . x ) * projPlaneU . xyz + ( Opaque_vs_IN . uv . y ) * projPlaneV . xyz ; #line 96 } #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.Sh" #line 642 #line 112 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fx" #line 120 #line 125 float4 f_se ; float4 f_cc , f_fc ; float f_crossfade ; float4 f_crossfade_se ; float4 f_crossfade_cc , f_crossfade_fc ; #line 135 float depthBias ; float depthScale ; #line 139 float nearOffset ; float nearScale ; float farOffset ; float farScale ; Texture2D < float4 > colorTex ; Texture2DMS < float4 > depthTexMSAA ; #line 154 #line 157 struct Opaque_fs_v2f { float4 position : SV_POSITION ; float2 uv : TEXCOORD0 ; float3 projPointer : TEXCOORD1 ; } ; struct Opaque_fs_f2f { float4 color : SV_TARGET0 ; } ; #line 172 float4 ComputeFog ( float3 camSpace , float4 f_se , float4 f_cc , float4 f_fc ) { float3 pos = eyePositionWS . xyz - camSpace ; 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 ( camSpace ) - f_se . x ) / ( f_se . y - f_se . x ) ) ; fogRatio *= fogRatio ; float3 fogColor = lerp ( f_cc . rgb , f_fc . rgb , ( float ) fogRatio ) ; float fogAlpha = lerp ( f_cc . a , f_fc . a , fogRatio ) ; return float4 ( fogColor , fogAlpha * fogRatio ) ; } float myTexDepth2D ( Texture2D < float4 > depthTex , float2 uv ) { #line 199 return depthTex . Sample ( PointClampSampler , uv ) . r ; } float ComputeDofIntensity ( float z ) { return - saturate ( ( nearOffset - z ) * nearScale ) + saturate ( ( z - farOffset ) * farScale ) ; } #line 214 void Opaque_fs_main ( in Opaque_fs_v2f Opaque_fs_IN , out Opaque_fs_f2f Opaque_fs_OUT ) { #line 218 uint2 dim ; uint sampleCount ; depthTexMSAA . GetDimensions ( dim . x , dim . y , sampleCount ) ; float4 fog = float4 ( 0 , 0 , 0 , 0 ) ; float2 uvCoord = Opaque_fs_IN . uv * float2 ( dim ) ; float dofIntensity = 0 ; for ( uint i = 0 ; i < sampleCount ; ++ i ) { float depthTap = depthTexMSAA . Load ( uvCoord , i ) . r ; float zVal = ConvertDepth ( depthTap ) ; float3 camSpace = zVal * Opaque_fs_IN . projPointer ; float4 fogSample = ComputeFog ( camSpace , f_se , f_cc , f_fc ) ; float4 fog2 = ComputeFog ( camSpace , f_crossfade_se , f_crossfade_cc , f_crossfade_fc ) ; fogSample = lerp ( fogSample , fog2 , ( float ) f_crossfade ) ; fog += fogSample ; dofIntensity += ComputeDofIntensity ( zVal ) ; } fog *= ( 1.f / float ( sampleCount ) ) ; dofIntensity *= ( 1.f / float ( sampleCount ) ) ; #line 268 #line 271 Opaque_fs_OUT . color = fog ; #line 285 } technique11 Opaque { pass pass0 { SetVertexShader ( CompileShader ( vs_5_0 , Opaque_vs_main ( ) ) ) ; SetPixelShader ( CompileShader ( ps_5_0 , Opaque_fs_main ( ) ) ) ; SetBlendState ( NoBlend_BlendState , float4 ( 0.0f , 0.0f , 0.0f , 0.0f ) , 0xFFFFFFFF ) ; SetDepthStencilState ( NoDepthTest_NoDepthWrite_DepthState , 0 ) ; SetRasterizerState ( NoCull_RasterizerState ) ; } } #line 317 þïþï$)D:\Dev\TGC\Journey\head\Journey\shaderd:\dev\tgc\journey\head\journey\shader#line 1 "D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Fog_vs__Fog_fs__2013.fx" #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.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 ] = Oâ0€¯¥Ž¾ÊÕ)(â0¸föÓÊ'()B< ºG ºGMicrosoft (R) HLSL Shader Compiler 10.1†=hlslFlags0x4005hlslTargetvs_5_0hlslEntryOpaque_vs_mainhlslDefines /DMSAA=1 /DCROSSFADE=1 /DPHYRE_D3DFX=1 /DNO_ALPHA_PASS=16Ü d Opaque_vs_main2> Opaque_vs_INPdPdPdP d PdPd6> Opaque_vs_OUTPd Pd$P d(PdPdPdPdPdP d ô8x_çv‘k¢¨ÇòÊ„³tM(i(°(ê(ò8€ ,dW€dW|W€|W�W€�W¤[€¤[¸]€¸]Ì]€Ì]ä]€ä]]€] ]€ ]@]€@]`]€`]|a€|a‰Gc‰ ‡‰‡,*›=U›=U›=U›;j›#j›n™›#™ö @` Ê18 4 ÿÿÿÿ008@float4óòñ@float2óòñ& positionñ uvóòñp2vòñ@ float3óòñ> positionñ uvóòñ projPointeròñ"$Opaque_vs_v2f     Ê18 ÿÿÿÿ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 506 float4x4 view : view ; float4x4 projection : projection ; float4x4 viewprojection : viewprojection ; float4 eyeDirectionWS : eyeDirectionWS ; float4 eyePositionWS : eyePositionWS ; float4 eyePositionOS : eyePositionOS ; float4 cameraNear : cameraNearFar ; float4x4 modelIT : modelit ; float4x4 model : model ; float4x4 modelViewProj : modelviewproj ; #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 55 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fx" #line 64 float4 projPlaneU ; float4 projPlaneV ; float4 projPlaneOrigin ; struct p2v { float4 position : POSITION ; float2 uv : TEXCOORD0 ; } ; struct Opaque_vs_v2f { float4 position : SV_POSITION ; float2 uv : TEXCOORD0 ; float3 projPointer : TEXCOORD1 ; } ; #line 84 void Opaque_vs_main ( in p2v Opaque_vs_IN , out Opaque_vs_v2f Opaque_vs_OUT ) { Opaque_vs_OUT . position = float4 ( Opaque_vs_IN . position . x , - Opaque_vs_IN . position . y , Opaque_vs_IN . position . z , 1 ) ; #line 90 Opaque_vs_OUT . uv = Opaque_vs_IN . uv ; Opaque_vs_OUT . projPointer = projPlaneOrigin . xyz + ( 1 - Opaque_vs_IN . uv . x ) * projPlaneU . xyz + ( Opaque_vs_IN . uv . y ) * projPlaneV . xyz ; #line 96 } #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.Sh" #line 642 #line 112 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fx" #line 120 #line 125 float4 f_se ; float4 f_cc , f_fc ; float f_crossfade ; float4 f_crossfade_se ; float4 f_crossfade_cc , f_crossfade_fc ; #line 135 float depthBias ; float depthScale ; #line 139 float nearOffset ; float nearScale ; float farOffset ; float farScale ; Texture2D < float4 > colorTex ; Texture2DMS < float4 > depthTexMSAA ; #line 154 #line 157 struct Opaque_fs_v2f { float4 position : SV_POSITION ; float2 uv : TEXCOORD0 ; float3 projPointer : TEXCOORD1 ; } ; struct Opaque_fs_f2f { float4 color : SV_TARGET0 ; } ; #line 172 float4 ComputeFog ( float3 camSpace , float4 f_se , float4 f_cc , float4 f_fc ) { float3 pos = eyePositionWS . xyz - camSpace ; 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 ( camSpace ) - f_se . x ) / ( f_se . y - f_se . x ) ) ; fogRatio *= fogRatio ; float3 fogColor = lerp ( f_cc . rgb , f_fc . rgb , ( float ) fogRatio ) ; float fogAlpha = lerp ( f_cc . a , f_fc . a , fogRatio ) ; return float4 ( fogColor , fogAlpha * fogRatio ) ; } float myTexDepth2D ( Texture2D < float4 > depthTex , float2 uv ) { #line 199 return depthTex . Sample ( PointClampSampler , uv ) . r ; } float ComputeDofIntensity ( float z ) { return - saturate ( ( nearOffset - z ) * nearScale ) + saturate ( ( z - farOffset ) * farScale ) ; } #line 214 void Opaque_fs_main ( in Opaque_fs_v2f Opaque_fs_IN , out Opaque_fs_f2f Opaque_fs_OUT ) { #line 218 uint2 dim ; uint sampleCount ; depthTexMSAA . GetDimensions ( dim . x , dim . y , sampleCount ) ; float4 fog = float4 ( 0 , 0 , 0 , 0 ) ; float2 uvCoord = Opaque_fs_IN . uv * float2 ( dim ) ; float dofIntensity = 0 ; for ( uint i = 0 ; i < sampleCount ; ++ i ) { float depthTap = depthTexMSAA . Load ( uvCoord , i ) . r ; float zVal = ConvertDepth ( depthTap ) ; float3 camSpace = zVal * Opaque_fs_IN . projPointer ; float4 fogSample = ComputeFog ( camSpace , f_se , f_cc , f_fc ) ; float4 fog2 = ComputeFog ( camSpace , f_crossfade_se , f_crossfade_cc , f_crossfade_fc ) ; fogSample = lerp ( fogSample , fog2 , ( float ) f_crossfade ) ; fog += fogSample ; dofIntensity += ComputeDofIntensity ( zVal ) ; } fog *= ( 1.f / float ( sampleCount ) ) ; dofIntensity *= ( 1.f / float ( sampleCount ) ) ; #line 268 #line 271 Opaque_fs_OUT . color = fog ; #line 285 } technique11 Opaque { pass pass0 { SetVertexShader ( CompileShader ( vs_5_0 , Opaque_vs_main ( ) ) ) ; SetPixelShader ( CompileShader ( ps_5_0 , Opaque_fs_main ( ) ) ) ; SetBlendState ( NoBlend_BlendState , float4 ( 0.0f , 0.0f , 0.0f , 0.0f ) , 0xFFFFFFFF ) ; SetDepthStencilState ( NoDepthTest_NoDepthWrite_DepthState , 0 ) ; SetRasterizerState ( NoCull_RasterizerState ) ; } } #line 317 D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Fog_vs__Fog_fs__2013.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.shD:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.Sh ê((Pi()°((D3DSHDR€ `ÿÿÿÿ /ñ A!a $%ÐOpaque_vs_mainQ àÿÿÿÿÿÿprojPlaneUQ ðÿÿÿÿÿÿprojPlaneV"Q ÿÿÿÿÿÿprojPlaneOriginÿÿÿÿ /ñurney/head/Journey/Data/Shaders/Migratory.Shþïþïÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿ àŒOpaque_vs_mainnoneÿÿÿÿw 1 Ž?\T ,P€ ` àŒOpaque_vs_mainnone-º.ñ€ `ÿÿÿÿ€ÿÿÿÿÿÿÿÿ'v½÷D:\Dev\TGC\Journey\head\Journey\shaderD:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Fog_vs__Fog_fs__2013.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Fog_vs__Fog_fs__2013.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.shD:/Dev/TGC/Jo”.1bŒ^ú¾_¾|=kDºƒ ;R›T/LinkInfo/names/src/headerblock/src/files/d:\dev\tgc\journey\head\journey\shader" ÜQ3 °l_8d)€Ê'€8(D,„=!<;"#$%&'()*+,-./012345  678:9>POSITIONTEXCOORDPEffectVariantPMaterialOpaqueVertexST   ' �€p`P@È0 ÄÀ¼¸´°5ø5à5È5°5˜5€5h5P686 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ñ D h¦P�h¶aTÔ«Á A„ùžŠ–ú®æ¨ì˜øˆ´¾äð´¾dP>Œ&vªÊØÈÖÎ A´