RYHPT¿44611f4Ä0 aÍ{¿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` Ààáppá hh p@0�� @@PP!@@%0²€°ª& ':¤ +€@@-ÀÀ5P0 CÐ�@DèÕ˜PÎGýÀ=Data/Shaders/S_Scattering_vs__Scattering_fs__44974.cgfx#3384C169BEED1A486ED3DF6F3764005A#materialData/Shaders/S_Scattering_vs__Scattering_fs__44974.fx#3384C169BEED1A486ED3DF6F3764005A #line 1 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" #define D_PLATFORM_D3D11x64 #define UV_OFFSET #define FOG #define SPECULAR #define SKINNING_ENABLED // Automatically generated. Do not edit. // =======================================================================================================================[COMMON DEFINES]=== #define PHYRE3X_ENABLED #if !defined(D_PLATFORM_GXM) #define h2tex3D tex3D #define h4tex2D tex2D #define h3tex2D tex2D #define h2tex2D tex2D #define h1tex2D tex2D #define h4texCUBE texCUBE #define h3texCUBE texCUBE #endif // ========================================================================================================================[COMMON STATES]=== #if !defined(D_PLATFORM_GXM) BlendState ourBlendState { BlendEnable[0] = FALSE; BlendEnable[1] = FALSE; SrcBlend[0] = Src_Alpha; DestBlend[0] = Inv_Src_Alpha; BlendOp[0] = ADD; SrcBlendAlpha[0] = ONE; DestBlendAlpha[0] = ONE; BlendOpAlpha[0] = ADD; RenderTargetWriteMask[0] = 15; AlphaToCoverageEnable = false; }; DepthStencilState ourDepthStencilState { DepthEnable=true; DepthFunc=less; StencilEnable=false; }; RasterizerState ourRasterState { CullMode=None; DepthBias=0.0f; ScissorEnable=false; MultiSampleEnable=false; DepthClipEnable=false; AntialiasedLineEnable=false; }; #endif // ==================================================================================================================[VERTEX SHADER BEGIN]=== #define main Opaque_vs_main #define IN Opaque_vs_IN #define OUT Opaque_vs_OUT #define v2f Opaque_vs_v2f #define a2v Opaque_vs_a2v // ------------------------------------------------------------------------------------------------------------------------------------------ #define GLOBAL_LEAN_AND_MEAN #line 1 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #ifndef MIGRATORY_SH #define MIGRATORY_SH //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef D_PLATFORM_D3D11x64 #define D_PLATFORM_D3D11 #endif #ifdef D_PLATFORM_D3D11 //#pragma pack_matrix(column_major) #define D_D3D11_OTHER(x,y) x #define D_D3D11_ONLY(x) x #define POSITION_OUT SV_POSITION #define FINAL_COLOR D_D3D11_OTHER(SV_TARGET0,COLOR) #elif defined(D_PLATFORM_GNM) #ifdef __ORBIS__ #pragma warning (disable:5203) // parameter unreferenced #pragma warning (disable:5206) // local variable unreferenced #pragma warning (disable:6204) // does not support uniform default values #pragma warning (disable:6459) // __user_defined__ is not a valid semantic for uniform #pragma warning (disable:5581) // PSSL treats 'half' type as 'float' #pragma warning (disable:5609) // PSSL treats 'half' type as 'float' #pragma warning (disable:5583) // PSSL treats 'half' literals as 'float' #pragma warning (disable:5524) // unsupported compiler hint //! Some evil #defines to sort out matrix multiplies. #define float4x4 row_major float4x4 #define float3x4 row_major float3x4 #define float4x3 row_major float4x3 //! Semantics for VS/PS inputs and outputs. #define POSITION S_POSITION #define SV_POSITION S_POSITION #define SV_GroupID S_GROUP_ID #define SV_VertexID S_VERTEX_ID #define SV_DispatchThreadID S_DISPATCH_THREAD_ID #define SV_GroupThreadID S_GROUP_THREAD_ID #define SV_GroupIndex S_GROUP_INDEX #define SV_PRIMITIVEID S_PRIMITIVE_ID #define SV_IsFrontFace S_FRONT_FACE #define SV_Depth FRAG_OUTPUT_DEPTH #define FRAG_OUTPUT_COLOR S_TARGET_OUTPUT0 #define FRAG_OUTPUT_COLOR0 S_TARGET_OUTPUT0 #define FRAG_OUTPUT_COLOR1 S_TARGET_OUTPUT1 #define FRAG_OUTPUT_COLOR2 S_TARGET_OUTPUT2 #define FRAG_OUTPUT_COLOR3 S_TARGET_OUTPUT3 #define FRAG_OUTPUT_DEPTH S_DEPTH_OUTPUT //! Some defines to make textures compile with PSSL for now (sort out later) SamplerState globalSamplerState; SamplerComparisonState globalSamplerComparisonState { // Sampler state Filter = MIN_MAG_LINEAR_MIP_POINT; AddressU = CLAMP; AddressV = CLAMP; // Sampler comparison state ComparisonFunc = LESS; ComparisonFilter = COMPARISON_MIN_MAG_LINEAR_MIP_POINT; }; #define cbuffer ConstantBuffer #define sampler SamplerState #define sampler2D Texture2D #define sampler3D Texture3D #define samplerCUBE TextureCube #define tex2Dproj(a,b) a.Sample(globalSamplerState, (b).xy / (b).w) #define h1tex2Dproj(a,b) ((half)(a.Sample(globalSamplerState, (b).xy / (b).w).x)) #define h4tex2D(a,b) ((half4)a.Sample(globalSamplerState, (b).xy)) #define h4tex2Dlod(a,b) ((half4)a.SampleLOD(globalSamplerState, (b).xy, (b).w)) #define tex2D(a,b) a.Sample(globalSamplerState, (b).xy) #define SampleLevel SampleLOD #define SampleCmpLevelZero SampleCmpLOD0 #define StructuredBuffer RegularBuffer #define RWStructuredBuffer RW_RegularBuffer #define numthreads NUM_THREADS #define maxvertexcount MAX_VERTEX_COUNT #define groupshared thread_group_memory #define TriangleStream TriangleBuffer #define PointStream PointBuffer #define triangle Triangle #define IncrementCounter IncrementCount #define DecrementCounter DecrementCount #define GroupMemoryBarrierWithGroupSync ThreadGroupMemoryBarrierSync #define InterlockedMin AtomicMin #define InterlockedMax AtomicMax #define InterlockedAdd AtomicAdd #endif //! __ORBIS__ #if defined(PHYRE_D3DFX) && !defined(__ORBIS__) #define FRAG_OUTPUT_COLOR SV_TARGET #define FRAG_OUTPUT_COLOR0 SV_TARGET0 #define FRAG_OUTPUT_COLOR1 SV_TARGET1 #define FRAG_OUTPUT_COLOR2 SV_TARGET2 #define FRAG_OUTPUT_COLOR3 SV_TARGET3 #define FRAG_OUTPUT_DEPTH SV_DEPTH #define SYSTEM_PRIMITIVE_INDEX SV_PRIMITIVEID #endif //! defined(PHYRE_D3DFX) && !defined(__ORBIS__) #define D_D3D11_OTHER(x,y) x #define D_D3D11_ONLY(x) x #define POSITION_OUT POSITION #define FINAL_COLOR FRAG_OUTPUT_COLOR #else #define D_D3D11_OTHER(x,y) y #define D_D3D11_ONLY(x) #define HALF half #define HALF2 half2 #define HALF3 half3 #define HALF4 half4 #define HALF3x3 float3x3 #define HALF3x4 float3x4 #define HALF4x4 float4x4 #define POSITION_OUT POSITION #define FINAL_COLOR D_D3D11_OTHER(SV_TARGET0,COLOR) #endif #if defined(__psp2__) #define NATIVECOLOR __nativecolor #define REGFORMAT __regformat #else #define NATIVECOLOR #define REGFORMAT #endif #if !defined(__ORBIS__) && !defined(D_PLATFORM_GXM) BlendState NoBlend_BlendState { BlendEnable[0] = FALSE; }; BlendState Alpha_BlendState { BlendEnable[0] = TRUE; SrcBlend[0] = Src_Alpha; DestBlend[0] = Inv_Src_Alpha; BlendOp[0] = ADD; SrcBlendAlpha[0] = Src_Alpha; DestBlendAlpha[0] = Inv_Src_Alpha; BlendOpAlpha[0] = ADD; BlendEnable[1] = FALSE; }; BlendState Additive_BlendState { BlendEnable[0] = TRUE; SrcBlend[0] = Src_Alpha; DestBlend[0] = ONE; BlendOp[0] = ADD; SrcBlendAlpha[0] = Src_Alpha; DestBlendAlpha[0] = ONE; BlendOpAlpha[0] = ADD; BlendEnable[1] = FALSE; }; BlendState ParticleBlended_BlendState { BlendEnable[0] = TRUE; SrcBlend[0] = ONE; DestBlend[0] = Inv_Src_Alpha; BlendOp[0] = ADD; SrcBlendAlpha[0] = ONE; DestBlendAlpha[0] = Inv_Src_Alpha; BlendOpAlpha[0] = ADD; BlendEnable[1] = FALSE; }; DepthStencilState NoDepthTest_NoDepthWrite_DepthState { DepthEnable = FALSE; DepthWriteMask = Zero; DepthFunc = Less; StencilEnable = FALSE; }; DepthStencilState NoDepthTest_DepthWrite_DepthState { DepthEnable = FALSE; DepthWriteMask = All; DepthFunc = Less; StencilEnable = FALSE; }; DepthStencilState DepthTest_NoDepthWrite_DepthState { DepthEnable = TRUE; DepthWriteMask = Zero; DepthFunc = Less; StencilEnable = FALSE; }; DepthStencilState DepthTest_DepthWrite_DepthState { DepthEnable = TRUE; DepthWriteMask = All; DepthFunc = Less; StencilEnable = FALSE; }; RasterizerState NoCull_RasterizerState { CullMode=None; }; RasterizerState BackFaceCull_RasterizerState { CullMode=Back; FrontCounterClockwise = TRUE; }; RasterizerState FrontFaceCull_RasterizerState { CullMode=Front; FrontCounterClockwise = TRUE; }; #endif #if defined(D_PLATFORM_D3D11) || defined(D_PLATFORM_GNM) #define MatrixMul(a,b) mul(b,a) #define HALF float #define HALF2 float2 #define HALF3 float3 #define HALF4 float4 #define HALF3x3 float3x3 #define HALF3x4 float3x4 #define HALF4x4 float4x4 #define half float #define half2 float2 #define half3 float3 #define half4 float4 #else #define MatrixMul(a,b) mul(a,b) #endif // samplers #if defined(D_PLATFORM_D3D11) || defined(D_PLATFORM_GNM) sampler PointClampSampler : register(s8) { Filter = Min_Mag_Mip_Point; AddressU = Clamp; AddressV = Clamp; AddressW = Clamp; }; sampler LinearClampSampler : register(s9) { Filter = Min_Mag_Mip_Linear; AddressU = Clamp; AddressV = Clamp; AddressW = Clamp; }; sampler LinearWrapTSampler : register(s10) { Filter = Min_Mag_Mip_Linear; AddressU = Clamp; AddressV = Wrap; AddressW = Clamp; }; sampler LinearWrapSampler : register(s11) { Filter = Min_Mag_Mip_Linear; AddressU = Wrap; AddressV = Wrap; AddressW = Wrap; }; sampler PointWrapSampler : register(s12) { Filter = Min_Mag_Mip_Point; AddressU = Wrap; AddressV = Wrap; AddressW = Wrap; }; sampler AnisoClampSampler : register(s13) { Filter = ANISOTROPIC; AddressU = Clamp; AddressV = Clamp; AddressW = Clamp; MaxAnisotropy = 16; }; sampler LinearWrapAnisoSampler : register(s14) { Filter = ANISOTROPIC; AddressU = Wrap; AddressV = Wrap; AddressW = Wrap; MaxAnisotropy = 16; }; sampler PointWrapAnisoSampler : register(s15) { Filter = Min_Mag_Point_Mip_Linear; AddressU = Wrap; AddressV = Wrap; AddressW = Wrap; MaxAnisotropy = 16; }; #define SAMPLER_WRAP_ANISO LinearWrapAnisoSampler #define SAMPLER_WRAP_LINEAR LinearWrapSampler #define SAMPLER_WRAP_POINT PointWrapSampler #define SAMPLER_CLAMP_ANISO AnisoClampSampler #define SAMPLER_CLAMP_LINEAR LinearClampSampler #define SAMPLER_CLAMP_POINT PointClampSampler static const float kSRGB = 2.2f; #define SRGB_ON(x) pow(x,kSRGB) #define SRGB_OFF(x) x #define SAMPLETEX(tex,uv,filter,wrap,srgb) SRGB_##srgb(tex.Sample(SAMPLER_##wrap##_##filter, uv)) #ifdef __ORBIS__ #define D_DECLARE_TEXTURE2DMS_4(x) MS_Texture2D x #else #define D_DECLARE_TEXTURE2DMS_4(x) Texture2DMS x #endif #define D_DECLARE_TEXTURE2D_4(x) Texture2D x #define D_DECLARE_TEXTURE3D_4(x) Texture3D x #define D_DECLARE_TEXTURE_CUBE_4(x) TextureCube x #define D_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_POINT_SAMPLE_TEXTURE(tex,uv) tex.Sample(PointClampSampler,uv) #define D_SAMPLE_TEXTURE_PROJ(tex,uv) tex.Sample(LinearClampSampler,(float2) (uv.xy / uv.w) ) #define D_POINT_SAMPLE_TEXTURE_PROJ(tex,uv) tex.Sample(PointClampSampler,(float2) (uv.xy / uv.w) ) #define D_SAMPLE_TEXTURE_3D(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_SAMPLE_TEXTURE_WRAP_3D(tex,uv) tex.Sample(LinearWrapSampler,uv) #define D_H1_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).x #define D_H2_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).xy #define D_H3_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).xyz #define D_H4_SAMPLE_TEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_H1_POINTSAMPLELEVEL_TEXTURE(tex,uv,lod) tex.SampleLevel(PointClampSampler,uv,lod).x #define D_H1_SAMPLELEVEL_TEXTURE(tex,uv,lod) tex.SampleLevel(LinearClampSampler,uv,lod).x #define D_H4_SAMPLELEVEL_TEXTURE(tex,uv,lod) tex.SampleLevel(LinearClampSampler,uv,lod) #if defined(D_PLATFORM_D3D11) #define D_H1_SAMPLE_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearClampSampler,uv).x,2.2f) #define D_H2_SAMPLE_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearClampSampler,uv).xy,2.2f) #define D_H3_SAMPLE_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f) #define D_H4_SAMPLE_SRGBTEXTURE(tex,uv) float4( pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f), tex.Sample(LinearClampSampler,uv).a ) #define D_H1_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearWrapSampler,uv).x,2.2f) #define D_H2_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearWrapSampler,uv).xy,2.2f) #define D_H3_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) pow(tex.Sample(LinearWrapSampler,uv).xyz,2.2f) #define D_H4_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) float4( pow(tex.Sample(LinearWrapSampler,uv).xyz,2.2f), tex.Sample(LinearWrapSampler,uv).a ) #define D_H4_SAMPLE_WRAPT_SRGBTEXTURE(tex,uv) float4( pow(tex.Sample(LinearWrapTSampler,uv).xyz,2.2f), tex.Sample(LinearWrapTSampler,uv).a) #define D_H3_SAMPLE_WRAP_ANISO_SRGBTEXTURE(tex,uv) pow( tex.Sample(LinearWrapAnisoSampler,uv).xyz, 2.2f) #else #define D_H1_SAMPLE_SRGBTEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).x #define D_H2_SAMPLE_SRGBTEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).xy #define D_H3_SAMPLE_SRGBTEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv).xyz #define D_H4_SAMPLE_SRGBTEXTURE(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_H1_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).x #define D_H2_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).xy #define D_H3_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).xyz #define D_H4_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv) #define D_H4_SAMPLE_WRAPT_SRGBTEXTURE(tex,uv) tex.Sample(LinearWrapTSampler,uv) #endif #define D_H1_SAMPLE_WRAP_TEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).x #define D_H2_SAMPLE_WRAP_TEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).xy #define D_H3_SAMPLE_WRAP_TEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv).xyz #define D_H4_SAMPLE_WRAP_TEXTURE(tex,uv) tex.Sample(LinearWrapSampler,uv) #define D_H1_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(LinearWrapAnisoSampler,uv).x #define D_H2_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(LinearWrapAnisoSampler,uv).xy #define D_H3_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(LinearWrapAnisoSampler,uv).xyz #define D_H4_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(LinearWrapAnisoSampler,uv) #define D_H1_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(PointWrapAnisoSampler,uv).x #define D_H2_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(PointWrapAnisoSampler,uv).xy #define D_H3_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(PointWrapAnisoSampler,uv).xyz #define D_H4_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) tex.Sample(PointWrapAnisoSampler,uv) #define D_H2_SAMPLE_TEXTURE_3D(tex,uv) tex.Sample(LinearClampSampler,uv).xy #define D_H2_SAMPLE_WRAP_TEXTURE_3D(tex,uv) tex.Sample(LinearWrapSampler,uv).xy #if defined(D_PLATFORM_D3D11) #define D_H3_SAMPLE_TEXTURE_CUBE(tex,uv) pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f) #define D_H4_SAMPLE_TEXTURE_CUBE(tex,uv) float4( pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f), tex.Sample(LinearClampSampler,uv).a ) #define D_SAMPLE_TEXTURE_CUBE(tex,uv) float4( pow(tex.Sample(LinearClampSampler,uv).xyz,2.2f), tex.Sample(LinearClampSampler,uv).a ) #else #define D_H3_SAMPLE_TEXTURE_CUBE(tex,uv) tex.Sample(LinearClampSampler,uv).xyz #define D_H4_SAMPLE_TEXTURE_CUBE(tex,uv) tex.Sample(LinearClampSampler,uv) #define D_SAMPLE_TEXTURE_CUBE(tex,uv) tex.Sample(LinearClampSampler,uv) #endif #else #define D_DECLARE_TEXTURE2D_4(x) sampler2D x #define D_DECLARE_TEXTURE3D_4(x) sampler3D x #define D_DECLARE_TEXTURE_CUBE_4(x) samplerCUBE x #define D_SAMPLE_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_POINT_SAMPLE_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_SAMPLE_TEXTURE_PROJ(tex,uv) h4tex2Dproj(tex,uv.xyw) #define D_POINT_SAMPLE_TEXTURE_PROJ(tex,uv) h4tex2Dproj(tex,uv.xyw) #define D_SAMPLE_TEXTURE_CUBE(tex,uv) h4texCUBE(tex,uv) #define D_SAMPLE_TEXTURE_3D(tex,uv) h4tex3D(tex,uv) #define D_SAMPLE_TEXTURE_WRAP_3D(tex,uv) h4tex3D(tex,uv) #define D_H1_SAMPLE_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_POINTSAMPLELEVEL_TEXTURE(tex,uv,lod) h1tex2D(tex,uv).x #define D_H1_SAMPLELEVEL_TEXTURE(tex,uv,lod) h1tex2D(tex,uv).x #define D_H4_SAMPLELEVEL_TEXTURE(tex,uv,lod) h4tex2D(tex,uv) #define D_H1_SAMPLE_SRGBTEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_SRGBTEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_SRGBTEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_SRGBTEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_WRAP_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_WRAP_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_WRAP_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_WRAP_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_WRAP_ANISO_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_ANISO_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_ANISO_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_ANISO_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_ANISO_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_POINT_WRAP_ANISO_TEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H1_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) h1tex2D(tex,uv).x #define D_H2_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) h2tex2D(tex,uv).xy #define D_H3_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) h3tex2D(tex,uv).xyz #define D_H4_SAMPLE_WRAP_SRGBTEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H4_SAMPLE_WRAPT_SRGBTEXTURE(tex,uv) h4tex2D(tex,uv) #define D_H2_SAMPLE_TEXTURE_3D(tex,uv) h2tex3D(tex,uv).xy #define D_H2_SAMPLE_WRAP_TEXTURE_3D(tex,uv) h2tex3D(tex,uv).xy #define D_H3_SAMPLE_TEXTURE_CUBE(tex,uv) h3texCUBE(tex,uv).xyz #define D_H4_SAMPLE_TEXTURE_CUBE(tex,uv) h4texCUBE(tex,uv) #endif #if !defined(GLOBAL_LEAN_AND_MEAN) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // these constants are system constants; uploaded by Phyre itself. // we can't do this, but we don't want to upload them all the time, either. consequently, we make these global // i guess we can eventually stuff these into a separate uniform buffer //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// float4x4 view : view ; // uploaded once per camera float4x4 projection : projection ; // view inverse float4x4 viewprojection : viewprojection ; float4 eyeDirectionWS : eyeDirectionWS ; float4 eyePositionWS : eyePositionWS ; float4 eyePositionOS : eyePositionOS ; float4 cameraNear : cameraNearFar ; float4x4 modelIT : modelit ; // uploaded per primitive // model inverse transpose float4x4 model : model ; float4x4 modelViewProj : modelviewproj ; #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // depth conversion code, stolen from the sample code //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// float cameraNearTimesFar; float cameraFarMinusNear; float4 cameraNearFar; // Convert a depth value from post projection space to view space. float ConvertDepth(float depth) { // float viewSpaceZ = -(scene.cameraNearTimesFar / (depth * scene.cameraFarMinusNear - scene.cameraNearFar.y)); #if defined(D_PLATFORM_GXM) float viewSpaceZ = -(cameraNearTimesFar / (depth * cameraFarMinusNear - cameraNearFar.y)); #else float viewSpaceZ = -(cameraNearTimesFar / (depth * cameraFarMinusNear - cameraNearFar.y)); #endif return viewSpaceZ; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // skinning //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef SKINNING_ENABLED // grabbed off [PhyreCoreShaderShared.h] // Description: // Encapsulates the skinning transformation matrices. #if defined(D_PLATFORM_GXM) #define PE_MAX_SKIN_CB_TRANSFORMS 32 float4x4 boneTransforms[PE_MAX_SKIN_CB_TRANSFORMS]; float4x4 GenerateBoneMatrix(int4 SkinIndices,float4 SkinWeights) { return boneTransforms[SkinIndices[0]]*SkinWeights[0] + boneTransforms[SkinIndices[1]]*SkinWeights[1] + boneTransforms[SkinIndices[2]]*SkinWeights[2] + boneTransforms[SkinIndices[3]]*SkinWeights[3]; } #else #define PE_MAX_SKIN_CB_TRANSFORMS 32 struct PSkinTransforms { float4x4 Mtxs[PE_MAX_SKIN_CB_TRANSFORMS]; // The skinning transformation matrices. }; cbuffer BoneTransformConstantBuffer { PSkinTransforms SkinTransforms; } float4x4 GenerateBoneMatrix(uint4 SkinIndices,float4 SkinWeights) { return SkinTransforms.Mtxs[SkinIndices[0]]*SkinWeights[0] + SkinTransforms.Mtxs[SkinIndices[1]]*SkinWeights[1] + SkinTransforms.Mtxs[SkinIndices[2]]*SkinWeights[2] + SkinTransforms.Mtxs[SkinIndices[3]]*SkinWeights[3]; } #endif #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// static const float4x4 SCALE_BIAS = float4x4( float4( 0.5, 0.0, 0.0, 0.5 ), #if defined(D_PLATFORM_D3D11) float4( 0.0, -0.5, 0.0, 0.5 ), #else float4( 0.0, 0.5, 0.0, 0.5 ), #endif float4( 0.0, 0.0, 0.5, 0.5 ), float4( 0.0, 0.0, 0.0, 1.0 ) ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef D_PLATFORM_GXM #define D_INT_MOD(val,mod) (frac((floor((float)val)/mod))*mod) #define D_UINT_MOD(val,mod) (frac((floor((float)val)/mod))*mod) #elif defined(D_PLATFORM_GNM) #define D_INT_MOD(val,mod) ((int)floor(val) % mod) #define D_UINT_MOD(val,mod) ((uint)floor(val) % mod) #else #define D_INT_MOD(val,mod) ((int)floor(val) % mod) #define D_UINT_MOD(val,mod) ((int)floor(val) % mod) #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef D_ENABLE_DEBUG_PARAMS float4 debugVars0; float4 debugVars1; float4 debugVars2; float4 debugVars3; float4 debugVars4; float4 debugVars5; float4 debugVars6; float4 debugVars7; #define GETDEBUGVAR(dv) (debugVars##dv!=0) ? (debugVars##dv) : #define GETDEBUGVAR2(dv,scl) (debugVars##dv!=0) ? (scl*debugVars##dv) : #endif #define powsafe(_x,_y) pow(max(_x,0.00000000000001),_y) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #endif//MIGRATORY_SH #line 58 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" float4 eyePositionWS : eyePositionWS; float4 cameraNear : cameraNearFar; #ifdef SKINNING_ENABLED float4x4 viewprojection : viewprojection; #else float4x4 model : model ; float4x4 modelIT : modelit ; float4x4 modelViewProj : modelviewproj ; #endif #if defined(D_PLATFORM_GXM) #undef SOFT #endif #ifndef D_PREPASS_ENABLED float4 mltColor; #ifdef SPECULAR HALF4 l_d; HALF4 fresnelColor; HALF fresnelFalloff; #endif #ifdef FOG float4 f_se; // fogStart/fogEnd float4 f_cc, f_fc; // fogCloseColor, fogFarColor #endif #endif//D_PREPASS_ENABLED #ifdef SKINNING_ENABLED struct a2v { #if defined(__ORBIS__) float4 SkinnableVertex : POSITION; #else float3 SkinnableVertex : POSITION; #endif float3 SkinnableNormal : NORMAL; float4 color : COLOR0; float2 uv : TEXCOORD0; float4 SkinWeights : BLENDWEIGHTS; #if defined(D_PLATFORM_GXM) int4 SkinIndices : BLENDINDICES; #else uint4 SkinIndices : BLENDINDICES; #endif }; #else struct a2v { #if defined(__ORBIS__) float4 position : POSITION; float4 normal : NORMAL; #else float3 position : POSITION; float3 normal : NORMAL; #endif float4 color : COLOR0; float2 uv : TEXCOORD0; }; #endif #if defined(SKINNING_ENABLED) && !defined(D_PREPASS_ENABLED) struct a2v_noSkin { float4 position : POSITION; float3 normal : NORMAL; float4 color : COLOR0; float2 uv : TEXCOORD0; }; a2v_noSkin ProcessSkInput(a2v skIn) { float4x4 transformMatrix = GenerateBoneMatrix(skIn.SkinIndices,skIn.SkinWeights); a2v_noSkin ret; ret.position = MatrixMul(transformMatrix,float4(skIn.SkinnableVertex.xyz,1)); ret.normal = MatrixMul((float3x3)transformMatrix,skIn.SkinnableNormal); ret.color = skIn.color; ret.uv = skIn.uv; return ret; } #endif//SKINNING_ENABLED struct v2f { float4 position : POSITION_OUT; float4 color : TEXCOORD0; float4 uv : TEXCOORD1; float3 normal : TEXCOORD2; float3 eye : TEXCOORD3; #ifdef FOG float4 fog : TEXCOORD4; #endif #ifdef SOFT float4 pos : TEXCOORD5; #endif float4 zDepth : TEXCOORD6; }; #ifdef ADDITIVE_ZHACK float gAdditiveZHack; #endif //-------------------------------------------- // Simple vertex shader // Passes color and texture information on to // the frag shader. //-------------------------------------------- void main( #ifdef SKINNING_ENABLED in a2v IN_VAL, #else in a2v IN, #endif out v2f OUT) { #ifdef SKINNING_ENABLED a2v_noSkin IN = ProcessSkInput(IN_VAL); #endif float4 inPos = float4( IN.position.xyz, 1 ); #ifdef ADDITIVE_ZHACK inPos.xyz += IN.normal.xyz*gAdditiveZHack; #endif #ifdef SKINNING_ENABLED OUT.position = MatrixMul( viewprojection, inPos ); OUT.normal = normalize(IN.normal); float3 worldPos = IN.position.xyz; #else OUT.position = MatrixMul( modelViewProj, inPos ); OUT.normal = normalize(MatrixMul( (float3x3)modelIT, IN.normal.xyz )); float3 worldPos = ( MatrixMul( model, float4(IN.position.xyz,1.0f) ) ).xyz; #endif OUT.eye = eyePositionWS.xyz - worldPos; IN.color.rgb = IN.color.rgb * mltColor.xyz; OUT.color = IN.color; OUT.uv.xy = IN.uv; OUT.uv.zw = OUT.position.zw; #ifdef SPECULAR // Calculate the fresnel term of specular. half3 Ln = normalize( l_d.xyz ); half3 Vn = normalize( OUT.eye ); half3 Hn = normalize( Vn + Ln ); half3 fresnel = lerp( fresnelColor.rgb, half3(1.0,1.0,1.0f), pow( saturate( 1.0 - dot( Vn, Hn ) ), (5.0 * (1.0 + fresnelFalloff)) ) ); OUT.color.rgb *= fresnel; #endif #ifdef FOG float3 pos = worldPos; float3 eye = float3( eyePositionWS.xyz - pos.xyz ); 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( eye ) - f_se.x) / (f_se.y - f_se.x) ); fogRatio = fogRatio*fogRatio; float3 fogColor = lerp( f_cc.rgb, f_fc.rgb, fogRatio ); float fogAlpha = lerp( f_cc.a, f_fc.a, fogRatio ); OUT.fog = float4( fogColor, fogRatio*fogAlpha ); //OUT.fog.a = 0; #endif #ifdef SOFT OUT.pos = mul( SCALE_BIAS, OUT.position ); OUT.pos.w = OUT.position.w; #endif //#ifdef CLOUDTUBE OUT.zDepth.x = OUT.position.w - cameraNear.x; //#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 274 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" // Authour: John Edwards // Date C: 6-21-2007 #if defined(D_PLATFORM_GXM) #undef SOFT #endif #ifndef D_PREPASS_ENABLED // Both alpha and color modulation should come from this map. D_DECLARE_TEXTURE2D_4(tex); float alpha; float alphaFade; float scatter; HALF opacity; HALF alphaPremult; // Support scrolling uvs. #ifdef UV_OFFSET float4 uvOffset; #endif #ifdef SOFT #ifdef LOW_RES D_DECLARE_TEXTURE2D_4(depthTexLo); #else D_DECLARE_TEXTURE2D_4(depthTex); #endif float depthBias; float depthScale; float depthExtra; float softFadeoutRate; #endif #ifdef CLOUDTUBE float nearCutoff; float nearFadeDist; float farCutoff; float farFadeDist; #endif #ifdef SOFT float manualTexDepth2Dproj( D_DECLARE_TEXTURE2D_4(_depthTex), float4 uv ) { #if defined(D_PLATFORM_GCM) float3 depthColor = D_POINT_SAMPLE_TEXTURE_PROJ( _depthTex, uv ).rgb; float3 depthFactor = float3( 65536.0/16777215.0, 256.0/16777215.0, 1.0/16777215.0 ); return dot( round( depthColor * 255.0 ), depthFactor ); #else return D_POINT_SAMPLE_TEXTURE_PROJ( _depthTex, uv ).r; #endif } #endif #endif//D_PREPASS_ENABLED // Stream structs: struct v2f { float4 position : POSITION_OUT; float4 color : TEXCOORD0; float4 uv : TEXCOORD1; float3 normal : TEXCOORD2; float3 eye : TEXCOORD3; #ifdef FOG float4 fog : TEXCOORD4; #endif #ifdef SOFT float4 pos : TEXCOORD5; #endif float4 zDepth : TEXCOORD6; }; struct f2f { float4 color : FINAL_COLOR; }; //---------------------------------------------- // Program entry //---------------------------------------------- void main( in v2f IN, out f2f OUT ) { float3 N = normalize(IN.normal); float3 E = normalize(IN.eye); float colorInt = 1-dot(N,E); #ifdef UV_OFFSET IN.uv.xy += uvOffset.xy; #endif float4 texColor = D_H4_SAMPLE_WRAP_TEXTURE( tex, IN.uv.xy ); float4 baseColor = IN.color * texColor; #ifdef FOG // The correct behavior of the fog version of this shader is to fade out into the // fog. Problem is, the other implementations didn't do that and it would be // dangerous to change it now, globally. #ifdef SPECULAR baseColor.a *= (1.0 - IN.fog.a); #else baseColor.rgb = lerp( baseColor.rgb, IN.fog.rgb, IN.fog.a ); #endif #endif float a = saturate( IN.uv.z * 5.0 ) * saturate(1-colorInt*scatter); #ifdef SOFT #if defined( LOW_RES ) float depth = manualTexDepth2Dproj( depthTexLo, IN.pos ); #else float depth = manualTexDepth2Dproj( depthTex, IN.pos ); #endif #if defined(D_PLATFORM_GCM) float pdepth = depthScale / (depth - depthBias); #else float pdepth = ConvertDepth(depth); #endif float _distance = pdepth + depthExtra - IN.pos.w; a *= clamp( softFadeoutRate * _distance, 0, 1 ); #endif // Fade out the mesh as the camera gets closer to it #ifdef CLOUDTUBE float distFade = saturate( ( IN.zDepth.x - nearCutoff ) / nearFadeDist ) * ( 1.0 - saturate( ( IN.zDepth.x - farCutoff ) / farFadeDist ) ); a *= distFade; #else #ifndef NODEPTH a *= saturate( ( IN.zDepth.x ) / 10 ); #endif #endif // The scattering shader has traditionally squared the alpha intensity. // Not about to break with tradition, now. float alphaMult = a * alpha * (1 - alphaFade) * opacity; OUT.color = float4( baseColor.rgb, baseColor.a * alphaMult * alphaMult ); // Certain render modes want premultiplied alpha. OUT.color.rgb *= alphaPremult * OUT.color.a + (1.0f - alphaPremult); } // ------------------------------------------------------------------------------------------------------------------------------------------ #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_Scattering_vs__Scattering_fs__44974.fx�@1FOGSKINNING_ENABLEDSPECULARUV_OFFSET�GGGGGGGG€?€?€?€?€?€A€A€?°°ª 05spDXBC¨û¨ŒÌ:_ÁØ«Í!u;°ª8ˆXŒ ¨ RDEFH¼<ÿÿARD11< ($ œ ®ÿÿÿÿ ²LinearWrapSamplertex$Globals«²Ô Ìèÿÿÿÿÿÿÿÿ èÿÿÿÿÿÿÿÿ4ÿÿÿÿÿÿÿÿX 4ÿÿÿÿÿÿÿÿf04ÿÿÿÿÿÿÿÿq@@Œÿÿÿÿÿÿÿÿ°€4ÿÿÿÿÿÿÿÿ¹�4ÿÿÿÿÿÿÿÿ½ 4ÿÿÿÿÿÿÿÿʰèÿÿÿÿÿÿÿÿÙÀ4ÿÿÿÿÿÿÿÿÞÐ4ÿÿÿÿÿÿÿÿãà4ÿÿÿÿÿÿÿÿèðèÿÿÿÿÿÿÿÿîôèÿÿÿÿÿÿÿÿøøèÿÿÿÿÿÿÿÿüèÿÿÿÿÿÿÿÿèÿÿÿÿÿÿÿÿ4ÿÿÿÿÿÿÿÿcameraNearTimesFarfloat«««ßcameraFarMinusNearcameraNearFarfloat4-eyePositionWScameraNearviewprojectionfloat4x4«««€mltColorl_dfresnelColorfresnelFallofff_sef_ccf_fcalphaalphaFadescatteropacityalphaPremultuvOffsetMicrosoft (R) HLSL Shader Compiler 10.1««ISGNȰ¼¼¼¼¼¼SV_POSITIONTEXCOORD«««OSGN, SV_TARGET««SHEXxP^jˆYFŽ Z` XpUUbòbrbrbrb‚beò hFFD 8rF‚FFD‚:8röF+‚@FF6 €A :b� E‹Â€CUò–F~` 8òFF6":€A"@€?8":8B*@ @4B*@3B*@€?+‚@8 *€ 6 €A :4 @3 @€?8 *+B@ B *4B*@3B*@€?8* 8  € +B@6‚€ €AB:*8* 8 :€ 8" 8 6rF8"  € 6B € €AB*@€?"*8r VF6‚  >STAT”/'SPDBžMicrosoft C/C++ MSF 7.00 DSOXKÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ8ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ <ÿÿÿÿ”.1]Œ^³ùŠöO®ž©ŠÂz‘àÜQ3 ; 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ÆZLèd—©ë°Î½é�dP…h&ÈQÎ79ÎVUZ±Å’æ}ÚA$ʳ#line 1 "D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Scattering_vs__Scattering_fs__44974.fx" #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" #line 8 BlendState ourBlendState { BlendEnable [ 0 ] = FALSE ; BlendEnable [ 1 ] = FALSE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = ONE ; DestBlendAlpha [ 0 ] = ONE ; BlendOpAlpha [ 0 ] = ADD ; RenderTargetWriteMask [ 0 ] = 15 ; AlphaToCoverageEnable = false ; } ; DepthStencilState ourDepthStencilState { DepthEnable = true ; DepthFunc = less ; StencilEnable = false ; } ; RasterizerState ourRasterState { CullMode = None ; DepthBias = 0.0f ; ScissorEnable = false ; MultiSampleEnable = false ; DepthClipEnable = false ; AntialiasedLineEnable = false ; } ; #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 8 #line 16 #line 20 #line 135 #line 140 #line 147 BlendState NoBlend_BlendState { BlendEnable [ 0 ] = FALSE ; } ; BlendState Alpha_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; BlendState Additive_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = ONE ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = ONE ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; #line 180 BlendState ParticleBlended_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = ONE ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = ONE ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; DepthStencilState NoDepthTest_NoDepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState NoDepthTest_DepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_NoDepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_DepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; RasterizerState NoCull_RasterizerState { CullMode = None ; } ; RasterizerState BackFaceCull_RasterizerState { CullMode = Back ; FrontCounterClockwise = TRUE ; } ; RasterizerState FrontFaceCull_RasterizerState { CullMode = Front ; FrontCounterClockwise = TRUE ; } ; #line 243 #line 246 #line 264 #line 269 sampler PointClampSampler : register ( s8 ) { Filter = Min_Mag_Mip_Point ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearClampSampler : register ( s9 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearWrapTSampler : register ( s10 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Wrap ; AddressW = Clamp ; } ; sampler LinearWrapSampler : register ( s11 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler PointWrapSampler : register ( s12 ) { Filter = Min_Mag_Mip_Point ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler AnisoClampSampler : register ( s13 ) { Filter = ANISOTROPIC ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; MaxAnisotropy = 16 ; } ; sampler LinearWrapAnisoSampler : register ( s14 ) { Filter = ANISOTROPIC ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; sampler PointWrapAnisoSampler : register ( s15 ) { Filter = Min_Mag_Point_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; static const float kSRGB = 2.2f ; #line 358 #line 373 #line 408 #line 427 #line 435 #line 498 #line 516 #line 521 float cameraNearTimesFar ; float cameraFarMinusNear ; float4 cameraNearFar ; #line 527 float ConvertDepth ( float depth ) { #line 532 float viewSpaceZ = - ( cameraNearTimesFar / ( depth * cameraFarMinusNear - cameraNearFar . y ) ) ; return viewSpaceZ ; } #line 542 #line 563 struct PSkinTransforms { float4x4 Mtxs [ 32 ] ; } ; 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 ] ; } #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 57 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" float4 eyePositionWS : eyePositionWS ; float4 cameraNear : cameraNearFar ; float4x4 viewprojection : viewprojection ; #line 67 #line 70 float4 mltColor ; float4 l_d ; float4 fresnelColor ; float fresnelFalloff ; float4 f_se ; float4 f_cc , f_fc ; #line 92 struct Opaque_vs_a2v { #line 98 float3 SkinnableVertex : POSITION ; float3 SkinnableNormal : NORMAL ; float4 color : COLOR0 ; float2 uv : TEXCOORD0 ; float4 SkinWeights : BLENDWEIGHTS ; #line 107 uint4 SkinIndices : BLENDINDICES ; } ; #line 126 #line 129 struct a2v_noSkin { float4 position : POSITION ; float3 normal : NORMAL ; float4 color : COLOR0 ; float2 uv : TEXCOORD0 ; } ; a2v_noSkin ProcessSkInput ( Opaque_vs_a2v skIn ) { float4x4 transformMatrix = GenerateBoneMatrix ( skIn . SkinIndices , skIn . SkinWeights ) ; a2v_noSkin ret ; ret . position = mul ( float4 ( skIn . SkinnableVertex . xyz , 1 ) , transformMatrix ) ; ret . normal = mul ( skIn . SkinnableNormal , ( float3x3 ) transformMatrix ) ; ret . color = skIn . color ; ret . uv = skIn . uv ; return ret ; } struct Opaque_vs_v2f { float4 position : SV_POSITION ; float4 color : TEXCOORD0 ; float4 uv : TEXCOORD1 ; float3 normal : TEXCOORD2 ; float3 eye : TEXCOORD3 ; float4 fog : TEXCOORD4 ; #line 167 float4 zDepth : TEXCOORD6 ; } ; #line 175 #line 182 void Opaque_vs_main ( in Opaque_vs_a2v IN_VAL , #line 187 out Opaque_vs_v2f Opaque_vs_OUT ) { a2v_noSkin Opaque_vs_IN = ProcessSkInput ( IN_VAL ) ; float4 inPos = float4 ( Opaque_vs_IN . position . xyz , 1 ) ; #line 199 Opaque_vs_OUT . position = mul ( inPos , viewprojection ) ; Opaque_vs_OUT . normal = normalize ( Opaque_vs_IN . normal ) ; float3 worldPos = Opaque_vs_IN . position . xyz ; #line 209 #line 213 Opaque_vs_OUT . eye = eyePositionWS . xyz - worldPos ; Opaque_vs_IN . color . rgb = Opaque_vs_IN . color . rgb * mltColor . xyz ; Opaque_vs_OUT . color = Opaque_vs_IN . color ; Opaque_vs_OUT . uv . xy = Opaque_vs_IN . uv ; Opaque_vs_OUT . uv . zw = Opaque_vs_OUT . position . zw ; float3 Ln = normalize ( l_d . xyz ) ; float3 Vn = normalize ( Opaque_vs_OUT . eye ) ; float3 Hn = normalize ( Vn + Ln ) ; float3 fresnel = lerp ( fresnelColor . rgb , float3 ( 1.0 , 1.0 , 1.0f ) , pow ( saturate ( 1.0 - dot ( Vn , Hn ) ) , ( 5.0 * ( 1.0 + fresnelFalloff ) ) ) ) ; Opaque_vs_OUT . color . rgb *= fresnel ; float3 pos = worldPos ; float3 eye = float3 ( eyePositionWS . xyz - pos . xyz ) ; float rayS = min ( eyePositionWS . y , pos . y ) ; float rayE = max ( eyePositionWS . y , pos . y ) + 0.5 ; float rayH = rayE - rayS ; float fogS = f_se . z ; float fogE = f_se . w ; float fogH = fogE - fogS ; float midS = min ( rayS , fogE ) ; float midE = min ( rayE , fogE ) ; float midA = 0.5 * ( midS + midE ) ; float midH = midE - midS ; float fogY = ( ( fogE - midA ) * midH ) / ( fogH * rayH ) ; float fogRatio = saturate ( ( fogY * length ( eye ) - f_se . x ) / ( f_se . y - f_se . x ) ) ; fogRatio = fogRatio * fogRatio ; float3 fogColor = lerp ( f_cc . rgb , f_fc . rgb , fogRatio ) ; float fogAlpha = lerp ( f_cc . a , f_fc . a , fogRatio ) ; Opaque_vs_OUT . fog = float4 ( fogColor , fogRatio * fogAlpha ) ; #line 253 #line 256 Opaque_vs_OUT . zDepth . x = Opaque_vs_OUT . position . w - cameraNear . x ; } #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 642 #line 273 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" #line 279 #line 284 Texture2D < float4 > tex ; float alpha ; float alphaFade ; float scatter ; float opacity ; float alphaPremult ; float4 uvOffset ; #line 305 #line 312 #line 325 #line 335 struct Opaque_fs_v2f { float4 position : SV_POSITION ; float4 color : TEXCOORD0 ; float4 uv : TEXCOORD1 ; float3 normal : TEXCOORD2 ; float3 eye : TEXCOORD3 ; float4 fog : TEXCOORD4 ; #line 347 float4 zDepth : TEXCOORD6 ; } ; struct Opaque_fs_f2f { float4 color : SV_TARGET0 ; } ; #line 359 void Opaque_fs_main ( in Opaque_fs_v2f Opaque_fs_IN , out Opaque_fs_f2f Opaque_fs_OUT ) { float3 N = normalize ( Opaque_fs_IN . normal ) ; float3 E = normalize ( Opaque_fs_IN . eye ) ; float colorInt = 1 - dot ( N , E ) ; Opaque_fs_IN . uv . xy += uvOffset . xy ; float4 texColor = tex . Sample ( LinearWrapSampler , Opaque_fs_IN . uv . xy ) ; float4 baseColor = Opaque_fs_IN . color * texColor ; #line 376 baseColor . a *= ( 1.0 - Opaque_fs_IN . fog . a ) ; #line 380 float a = saturate ( Opaque_fs_IN . uv . z * 5.0 ) * saturate ( 1 - colorInt * scatter ) ; #line 398 #line 404 a *= saturate ( ( Opaque_fs_IN . zDepth . x ) / 10 ) ; #line 412 float alphaMult = a * alpha * ( 1 - alphaFade ) * opacity ; Opaque_fs_OUT . color = float4 ( baseColor . rgb , baseColor . a * alphaMult * alphaMult ) ; #line 416 Opaque_fs_OUT . color . rgb *= alphaPremult * Opaque_fs_OUT . color . a + ( 1.0f - alphaPremult ) ; } technique11 Opaque { pass pass0 { SetVertexShader ( CompileShader ( vs_5_0 , Opaque_vs_main ( ) ) ) ; SetPixelShader ( CompileShader ( ps_5_0 , Opaque_fs_main ( ) ) ) ; SetBlendState ( ourBlendState , float4 ( 0.0f , 0.0f , 0.0f , 0.0f ) , 0xFFFFFFFF ) ; SetDepthStencilState ( ourDepthStencilState , 0 ) ; SetRasterizerState ( ourRasterState ) ; } } #line 448 þïþïÙ/D:\Dev\TGC\Journey\head\Journey\shaderd:\dev\tgc\journey\head\journey\shader#line 1 "D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Scattering_vs__Scattering_fs__44974.fx" #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" #line 8 BlendState ourBlendState { BlendEnable [ 0 ] = FALSE ; BlendEnable [ 1 ] = FALSE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADDâ0€sk£‹¾ÊÕ)(â0•FkÉ›.()B< ºG ºGMicrosoft (R) HLSL Shader Compiler 10.1–=hlslFlags0x4005hlslTargetps_5_0hlslEntryOpaque_fs_mainhlslDefines /DSPECULAR=1 /DUV_OFFSET=1 /DSKINNING_ENABLED=1 /DPHYRE_D3DFX=1 /DFOG=16àää” Opaque_fs_main2> Opaque_fs_INP”äP”äP”äP ”ä P”äP”äP”äP”äP ”ä P$”ä$P(”ä(P,”ä,P0”ä0P4”ä4P8”ä8P<”ä@P@”äDPD”äHPH”äPPL”äTPP”äXPT”ä\PX”ä`P\”ädP`”ähPd”älP °`P$°´6> Opaque_fs_OUTP”äP”äP”äP ”ä P ¼¸PÐ�PÐ�PÐ�*>NPà|PàÐPàÐ*>EP,°P,°P,°.>@colorIntP�@.>texColorPÜPÜPÜP Ü2>baseColorPø€Pø€Pø€P øPP HX*>@aPX¤2>@alphaMultP„8ô0>:ùÐÞgýZÚÂj«ë.I/Ÿ/ò€x ^t”i€”i°i€°iÄi€Äiàj€àjüj€üjj€j,k€,k@k€@k\k€\ktk€tk�n€�n°q€°qÜr€Ürøy€øyy€y,y€,yH€Hd€d€€€œ€œ°€°Ð€Ðè€è€ € <€<X–€X–l–€l–ˆ–€ˆ–¤–€¤–À–€À–Üœ€Üœüœ€üœœ€œ,œ€,œHœ€Hœdœ€dœ„�€„� �€ �¼�€¼�Р€Ð ð €ð   €  ( €( D €D `¡€`¡t¡€t¡4242421/1/1/(&(&(&(&-+SQ86737375^4^6^6^EZ^IZ^EZ^EZ^:\^:\^\:6:6: 8: 8:8??%1?%1?%1?3?=`8P`8\`^g$KgQcgQcg$egeö$ H`|œ¸Ôø Ê18¸ ÿÿÿÿLLT@float4óòñ@ float3óòñ~ positionñ color  uvóòñ 0normalóòñ <eyeòñ Hfogòñ XzDepthóòñ"hOpaque_fs_v2f color"Opaque_fs_f2f  òñ    ¨òñ     @    Ê18 ÿÿÿÿ = false ; } ; #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 8 #line 16 #line 20 #line 135 #line 140 #line 147 BlendState NoBlend_BlendState { BlendEnable [ 0 ] = FALSE ; } ; BlendState Alpha_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; BlendState Additive_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = ONE ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = ONE ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; #line 180 BlendState ParticleBlended_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = ONE ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = ONE ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; DepthStencilState NoDepthTest_NoDepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState NoDepthTest_DepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_NoDepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_DepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; RasterizerState NoCull_RasterizerState { CullMode = None ; } ; RasterizerState BackFaceCull_RasterizerState { CullMode = Back ; FrontCounterClockwise = TRUE ; } ; RasterizerState FrontFaceCull_RasterizerState { CullMode = Front ; FrontCounterClockwise = TRUE ; } ; #line 243 #line 246 #line 264 #line 269 sampler PointClampSampler : register ( s8 ) { Filter = Min_Mag_Mip_Point ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearClampSampler : register ( s9 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearWrapTSampler : register ( s10 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Wrap ; AddressW = Clamp ; } ; sampler LinearWrapSampler : register ( s11 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler PointWrapSampler : register ( s12 ) { Filter = Min_Mag_Mip_Point ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler AnisoClampSampler : register ( s13 ) { Filter = ANISOTROPIC ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; MaxAnisotropy = 16 ; } ; sampler LinearWrapAnisoSampler : register ( s14 ) { Filter = ANISOTROPIC ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; sampler PointWrapAnisoSampler : register ( s15 ) { Filter = Min_Mag_Point_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; static const float kSRGB = 2.2f ; #line 358 #line 373 #line 408 #line 427 #line 435 #line 498 #line 516 #line 521 float cameraNearTimesFar ; float cameraFarMinusNear ; float4 cameraNearFar ; #line 527 float ConvertDepth ( float depth ) { #line 532 float viewSpaceZ = - ( cameraNearTimesFar / ( depth * cameraFarMinusNear - cameraNearFar . y ) ) ; return viewSpaceZ ; } #line 542 #line 563 struct PSkinTransforms { float4x4 Mtxs [ 32 ] ; } ; 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 ] ; } #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 57 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" float4 eyePositionWS : eyePositionWS ; float4 cameraNear : cameraNearFar ; float4x4 viewprojection : viewprojection ; #line 67 #line 70 float4 mltColor ; float4 l_d ; float4 fresnelColor ; float fresnelFalloff ; float4 f_se ; float4 f_cc , f_fc ; #line 92 struct Opaque_vs_a2v { #line 98 float3 SkinnableVertex : POSITION ; float3 SkinnableNormal : NORMAL ; float4 color : COLOR0 ; float2 uv : TEXCOORD0 ; float4 SkinWeights : BLENDWEIGHTS ; #line 107 uint4 SkinIndices : BLENDINDICES ; } ; #line 126 #line 129 struct a2v_noSkin { float4 position : POSITION ; float3 normal : NORMAL ; float4 color : COLOR0 ; float2 uv : TEXCOORD0 ; } ; a2v_noSkin ProcessSkInput ( Opaque_vs_a2v skIn ) { float4x4 transformMatrix = GenerateBoneMatrix ( skIn . SkinIndices , skIn . SkinWeights ) ; a2v_noSkin ret ; ret . position = mul ( float4 ( skIn . SkinnableVertex . xyz , 1 ) , transformMatrix ) ; ret . normal = mul ( skIn . SkinnableNormal , ( float3x3 ) transformMatrix ) ; ret . color = skIn . color ; ret . uv = skIn . uv ; return ret ; } struct Opaque_vs_v2f { float4 position : SV_POSITION ; float4 color : TEXCOORD0 ; float4 uv : TEXCOORD1 ; float3 normal : TEXCOORD2 ; float3 eye : TEXCOORD3 ; float4 fog : TEXCOORD4 ; #line 167 float4 zDepth : TEXCOORD6 ; } ; #line 175 #line 182 void Opaque_vs_main ( in Opaque_vs_a2v IN_VAL , #line 187 out Opaque_vs_v2f Opaque_vs_OUT ) { a2v_noSkin Opaque_vs_IN = ProcessSkInput ( IN_VAL ) ; float4 inPos = float4 ( Opaque_vs_IN . position . xyz , 1 ) ; #line 199 Opaque_vs_OUT . position = mul ( inPos , viewprojection ) ; Opaque_vs_OUT . normal = normalize ( Opaque_vs_IN . normal ) ; float3 worldPos = Opaque_vs_IN . position . xyz ; #line 209 #line 213 Opaque_vs_OUT . eye = eyePositionWS . xyz - worldPos ; Opaque_vs_IN . color . rgb = Opaque_vs_IN . color . rgb * mltColor . xyz ; Opaque_vs_OUT . color = Opaque_vs_IN . color ; Opaque_vs_OUT . uv . xy = Opaque_vs_IN . uv ; Opaque_vs_OUT . uv . zw = Opaque_vs_OUT . position . zw ; float3 Ln = normalize ( l_d . xyz ) ; float3 Vn = normalize ( Opaque_vs_OUT . eye ) ; float3 Hn = normalize ( Vn + Ln ) ; float3 fresnel = lerp ( fresnelColor . rgb , float3 ( 1.0 , 1.0 , 1.0f ) , pow ( saturate ( 1.0 - dot ( Vn , Hn ) ) , ( 5.0 * ( 1.0 + fresnelFalloff ) ) ) ) ; Opaque_vs_OUT . color . rgb *= fresnel ; float3 pos = worldPos ; float3 eye = float3 ( eyePositionWS . xyz - pos . xyz ) ; float rayS = min ( eyePositionWS . y , pos . y ) ; float rayE = max ( eyePositionWS . y , pos . y ) + 0.5 ; float rayH = rayE - rayS ; float fogS = f_se . z ; float fogE = f_se . w ; float fogH = fogE - fogS ; float midS = min ( rayS , fogE ) ; float midE = min ( rayE , fogE ) ; float midA = 0.5 * ( midS + midE ) ; float midH = midE - midS ; float fogY = ( ( fogE - midA ) * midH ) / ( fogH * rayH ) ; float fogRatio = saturate ( ( fogY * length ( eye ) - f_se . x ) / ( f_se . y - f_se . x ) ) ; fogRatio = fogRatio * fogRatio ; float3 fogColor = lerp ( f_cc . rgb , f_fc . rgb , fogRatio ) ; float fogAlpha = lerp ( f_cc . a , f_fc . a , fogRatio ) ; Opaque_vs_OUT . fog = float4 ( fogColor , fogRatio * fogAlpha ) ; #line 253 #line 256 Opaque_vs_OUT . zDepth . x = Opaque_vs_OUT . position . w - cameraNear . x ; } #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 642 #line 273 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" #line 279 #line 284 Texture2D < float4 > tex ; float alpha ; float alphaFade ; float scatter ; float opacity ; float alphaPremult ; float4 uvOffset ; #line 305 #line 312 #line 325 #line 335 struct Opaque_fs_v2f { float4 position : SV_POSITION ; float4 color : TEXCOORD0 ; float4 uv : TEXCOORD1 ; float3 normal : TEXCOORD2 ; float3 eye : TEXCOORD3 ; float4 fog : TEXCOORD4 ; #line 347 float4 zDepth : TEXCOORD6 ; } ; struct Opaque_fs_f2f { float4 color : SV_TARGET0 ; } ; #line 359 void Opaque_fs_main ( in Opaque_fs_v2f Opaque_fs_IN , out Opaque_fs_f2f Opaque_fs_OUT ) { float3 N = normalize ( Opaque_fs_IN . normal ) ; float3 E = normalize ( Opaque_fs_IN . eye ) ; float colorInt = 1 - dot ( N , E ) ; Opaque_fs_IN . uv . xy += uvOffset . xy ; float4 texColor = tex . Sample ( LinearWrapSampler , Opaque_fs_IN . uv . xy ) ; float4 baseColor = Opaque_fs_IN . color * texColor ; #line 376 baseColor . a *= ( 1.0 - Opaque_fs_IN . fog . a ) ; #line 380 float a = saturate ( Opaque_fs_IN . uv . z * 5.0 ) * saturate ( 1 - colorInt * scatter ) ; #line 398 #line 404 a *= saturate ( ( Opaque_fs_IN . zDepth . x ) / 10 ) ; #line 412 float alphaMult = a * alpha * ( 1 - alphaFade ) * opacity ; Opaque_fs_OUT . color = float4 ( baseColor . rgb , baseColor . a * alphaMult * alphaMult ) ; #line 416 Opaque_fs_OUT . color . rgb *= alphaPremult * Opaque_fs_OUT . color . a + ( 1.0f - alphaPremult ) ; } technique11 Opaque { pass pass0 { SetVertexShader ( CompileShader ( vs_5_0 , Opaque_vs_main ( ) ) ) ; SetPixelShader ( CompileShader ( ps_5_0 , Opaque_fs_main ( ) ) ) ; SetBlendState ( ourBlendState , float4 ( 0.0f , 0.0f , 0.0f , 0.0f ) , 0xFFFFFFFF ) ; SetDepthStencilState ( ourDepthStencilState , 0 ) ; SetRasterizerState ( ourRasterState ) ; } } #line 448 D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Scattering_vs__Scattering_fs__44974.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh Ÿ/(PI/ë.)D3DSHDRx `ÿÿÿÿ /ñH(}Iùa¹!Õ�@@ $0<HT`%àOpaque_fs_main&Q ÿÿÿÿÿÿ ÿÿLinearWrapSamplerQÿÿÿÿÿÿÿÿtexQðÿÿÿÿÿÿalphaQôÿÿÿÿÿÿalphaFadeQøÿÿÿÿÿÿscatterQüÿÿÿÿÿÿopacity"QÿÿÿÿÿÿalphaPremultQÿÿÿÿÿÿuvOffset0‘x€ÿÿÿÿ /ñMigratory.shþïþïÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿx ` äÌOpaque_fs_mainnoneÿÿÿÿw 1 Ž?\T ,0x ` äÌOpaque_fs_mainnone-º.ñx `ÿÿÿÿxÿÿÿÿÿÿÿÿ'…ÛD:\Dev\TGC\Journey\head\Journey\shaderD:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Scattering_vs__Scattering_fs__44974.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/”.1]Œ^³ùŠöO®ž©ŠÂz‘àT/LinkInfo/names/src/headerblock/src/files/d:\dev\tgc\journey\head\journey\shader" ÜQ3 °ð?80€›.Ø T(€,I)HG* +,-./0123456789:;<=>?@A! "#$%&'(BCDFEJ˜ 8Ph€  @@1àôðp0ˆð`€P�@ Œ°0À Ðàø„ô€øüü  @@1àôðp0ˆð`€P�@ Œ°0À Ðàø„ô€øüü ÿÿÿÿ4àÿÿÿÿ4Èÿÿÿÿ4°ÿÿÿÿ4˜ÿÿÿÿ4€ÿÿÿÿ4hÿÿÿÿ4Pÿÿÿÿ48ÿÿÿÿ4 4 4àÿÿÿÿ4Èÿÿÿÿ4°ÿÿÿÿ4˜ 4€ÿÿÿÿ4hÿÿÿÿ4Pÿÿÿÿ48ÿÿÿÿ4 ÿÿÿÿ4@p0@`€@P�@@ @Œ°@0À@ Ð@à@ˆð@„ô@€ø@üü@ø@G4àÿÿÿÿG4ÈÿÿÿÿG4°ÿÿÿÿG4˜ÿÿÿÿG4€ÿÿÿÿG4hÿÿÿÿG4PÿÿÿÿG48ÿÿÿÿB4 ÿÿÿÿ�4 AnisoClampSamplerBoneTransformConstantBufferLinearClampSamplerLinearWrapAnisoSamplerLinearWrapSamplerLinearWrapTSamplerPointClampSamplerPointWrapAnisoSamplerPointWrapSampleralphaalphaFadealphaPremultcameraNearf_ccf_fcf_sefresnelColorfresnelFalloffl_dmltColoropacityscattertexuvOffsetÝÁÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥   ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥05sv05spOpaque_fs_mainOpaque_vs_main˜jÊ ú8ÙP}Rh•è€¹Š BLENDINDICESBLENDWEIGHTSCOLORNORMALPOSITIONTEXCOORDLÎ 05svDXBCJgýGîп©BFóÎÔÕWLÎ8(Ô¨DRDEFè¤<þÿAÀRD11< ($ |…$GlobalsBoneTransformConstantBuffer«««|Ô … Ìèÿÿÿÿÿÿÿÿ èÿÿÿÿÿÿÿÿ4ÿÿÿÿÿÿÿÿX 4ÿÿÿÿÿÿÿÿf04ÿÿÿÿÿÿÿÿq@@Œÿÿÿÿÿÿÿÿ°€4ÿÿÿÿÿÿÿÿ¹�4ÿÿÿÿÿÿÿÿ½ 4ÿÿÿÿÿÿÿÿʰèÿÿÿÿÿÿÿÿÙÀ4ÿÿÿÿÿÿÿÿÞÐ4ÿÿÿÿÿÿÿÿãà4ÿÿÿÿÿÿÿÿèðèÿÿÿÿÿÿÿÿîôèÿÿÿÿÿÿÿÿøøèÿÿÿÿÿÿÿÿüèÿÿÿÿÿÿÿÿèÿÿÿÿÿÿÿÿ4ÿÿÿÿÿÿÿÿcameraNearTimesFarfloat«««ßcameraFarMinusNearcameraNearFarfloat4-eyePositionWScameraNearviewprojectionfloat4x4«««€mltColorl_dfresnelColorfresnelFallofff_sef_ccf_fcalphaalphaFadescatteropacityalphaPremultuvOffset««HœÿÿÿÿÿÿÿÿSkinTransformsPSkinTransformsMtxs €gl�WMicrosoft (R) HLSL Shader Compiler 10.1ISGNÔ˜¡¨®·ÄPOSITIONNORMALCOLORTEXCOORDBLENDWEIGHTSBLENDINDICES«««OSGNȰ¼¼¼¼¼¼SV_POSITIONTEXCOORD«««SHEXÌPójˆYFŽ YFŽ _r_r_ò_2_ò_ògò eò eò er er eò e h :6òF6rF6rF6b:&Ђ @8 òFŽ :8 òFŽ :8 òFŽ :&Ђ@8 òVFŽ :8 òVFŽ :8 ò VFŽ :òFFòFFòFF &Ђ*@8 ò¦FŽ :8 ò¦FŽ :8 ò ¦FŽ :òFFòFFòFF &Ђ:@8 òöFŽ :8 òöFŽ :8 ò öFŽ :òFFòFFòFF 6òF6òF6òF+‚@FF"FFBFFFF"FFBFF6òF6bV6rF6rF6rF6:6bV6rF6rF6rF6rF+‚@6rF FFŽ " FFŽ BFFŽ ‚FFŽ ‚FFD‚:8r öF6rF6rF€ArFF‚ 8rFF‚ 6rF6‚  62 –6 ¦ ‚F‚ F‚ D‚:8röF‚ ‚FFD‚:8röFrFF‚FFD‚:8röF‚FF6‚:€A‚:@€?4‚:@3‚:@€?‚ € @€?8‚:@ @/‚:8‚::‚:6rF‚ €A rF@€?€?€?8röFrFF‚ 8r FF6rF6rF€ArFF‚ 3‚€ 4‚€ ‚:@?6:€A: 6"*€ 6:€ 6"€A" 3‚: 3‚: "::8"@?6‚:€A‚::6‚€A‚: 8‚::8‚ ‚::FFK 8 :6" € €A  6" € €A "€  4 @3 @€?8  6≠€A âV‰ 8âVâV‰ 6‚:€ €A ‚::€ 8‚ :‚::€ 8‚  :6r –6 € €A  :6 ¦6r F>STAT”� hSPDB¶Microsoft C/C++ MSF 7.00 DS[�YÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ8üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ <ÿÿÿÿ”.1]Œ^r¿Bv€K“…K¯cÓavÜQ3 ; 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 ; AntialiasedLineEnableLèÆZuƒ©è÷m þ_-§ÿxžP…dÀ Õë�˜ÒZ…ögŸô÷8öëüA§©ÁË2í¸¬éðd¹Œ�’æ8™#line 1 "D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Scattering_vs__Scattering_fs__44974.fx" #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" #line 8 BlendState ourBlendState { BlendEnable [ 0 ] = FALSE ; BlendEnable [ 1 ] = FALSE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = ONE ; DestBlendAlpha [ 0 ] = ONE ; BlendOpAlpha [ 0 ] = ADD ; RenderTargetWriteMask [ 0 ] = 15 ; AlphaToCoverageEnable = false ; } ; DepthStencilState ourDepthStencilState { DepthEnable = true ; DepthFunc = less ; StencilEnable = false ; } ; RasterizerState ourRasterState { CullMode = None ; DepthBias = 0.0f ; ScissorEnable = false ; MultiSampleEnable = false ; DepthClipEnable = false ; AntialiasedLineEnable = false ; } ; #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 8 #line 16 #line 20 #line 135 #line 140 #line 147 BlendState NoBlend_BlendState { BlendEnable [ 0 ] = FALSE ; } ; BlendState Alpha_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; BlendState Additive_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = ONE ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = ONE ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; #line 180 BlendState ParticleBlended_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = ONE ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = ONE ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; DepthStencilState NoDepthTest_NoDepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState NoDepthTest_DepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_NoDepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_DepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; RasterizerState NoCull_RasterizerState { CullMode = None ; } ; RasterizerState BackFaceCull_RasterizerState { CullMode = Back ; FrontCounterClockwise = TRUE ; } ; RasterizerState FrontFaceCull_RasterizerState { CullMode = Front ; FrontCounterClockwise = TRUE ; } ; #line 243 #line 246 #line 264 #line 269 sampler PointClampSampler : register ( s8 ) { Filter = Min_Mag_Mip_Point ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearClampSampler : register ( s9 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearWrapTSampler : register ( s10 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Wrap ; AddressW = Clamp ; } ; sampler LinearWrapSampler : register ( s11 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler PointWrapSampler : register ( s12 ) { Filter = Min_Mag_Mip_Point ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler AnisoClampSampler : register ( s13 ) { Filter = ANISOTROPIC ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; MaxAnisotropy = 16 ; } ; sampler LinearWrapAnisoSampler : register ( s14 ) { Filter = ANISOTROPIC ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; sampler PointWrapAnisoSampler : register ( s15 ) { Filter = Min_Mag_Point_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; static const float kSRGB = 2.2f ; #line 358 #line 373 #line 408 #line 427 #line 435 #line 498 #line 516 #line 521 float cameraNearTimesFar ; float cameraFarMinusNear ; float4 cameraNearFar ; #line 527 float ConvertDepth ( float depth ) { #line 532 float viewSpaceZ = - ( cameraNearTimesFar / ( depth * cameraFarMinusNear - cameraNearFar . y ) ) ; return viewSpaceZ ; } #line 542 #line 563 struct PSkinTransforms { float4x4 Mtxs [ 32 ] ; } ; 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 ] ; } #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 57 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" float4 eyePositionWS : eyePositionWS ; float4 cameraNear : cameraNearFar ; float4x4 viewprojection : viewprojection ; #line 67 #line 70 float4 mltColor ; float4 l_d ; float4 fresnelColor ; float fresnelFalloff ; float4 f_se ; float4 f_cc , f_fc ; #line 92 struct Opaque_vs_a2v { #line 98 float3 SkinnableVertex : POSITION ; float3 SkinnableNormal : NORMAL ; float4 color : COLOR0 ; float2 uv : TEXCOORD0 ; float4 SkinWeights : BLENDWEIGHTS ; #line 107 uint4 SkinIndices : BLENDINDICES ; } ; #line 126 #line 129 struct a2v_noSkin { float4 position : POSITION ; float3 normal : NORMAL ; float4 color : COLOR0 ; float2 uv : TEXCOORD0 ; } ; a2v_noSkin ProcessSkInput ( Opaque_vs_a2v skIn ) { float4x4 transformMatrix = GenerateBoneMatrix ( skIn . SkinIndices , skIn . SkinWeights ) ; a2v_noSkin ret ; ret . position = mul ( float4 ( skIn . SkinnableVertex . xyz , 1 ) , transformMatrix ) ; ret . normal = mul ( skIn . SkinnableNormal , ( float3x3 ) transformMatrix ) ; ret . color = skIn . color ; ret . uv = skIn . uv ; return ret ; } struct Opaque_vs_v2f { float4 position : SV_POSITION ; float4 color : TEXCOORD0 ; float4 uv : TEXCOORD1 ; float3 normal : TEXCOORD2 ; float3 eye : TEXCOORD3 ; float4 fog : TEXCOORD4 ; #line 167 float4 zDepth : TEXCOORD6 ; } ; #line 175 #line 182 void Opaque_vs_main ( in Opaque_vs_a2v IN_VAL , #line 187 out Opaque_vs_v2f Opaque_vs_OUT ) { a2v_noSkin Opaque_vs_IN = ProcessSkInput ( IN_VAL ) ; float4 inPos = float4 ( Opaque_vs_IN . position . xyz , 1 ) ; #line 199 Opaque_vs_OUT . position = mul ( inPos , viewprojection ) ; Opaque_vs_OUT . normal = normalize ( Opaque_vs_IN . normal ) ; float3 worldPos = Opaque_vs_IN . position . xyz ; #line 209 #line 213 Opaque_vs_OUT . eye = eyePositionWS . xyz - worldPos ; Opaque_vs_IN . color . rgb = Opaque_vs_IN . color . rgb * mltColor . xyz ; Opaque_vs_OUT . color = Opaque_vs_IN . color ; Opaque_vs_OUT . uv . xy = Opaque_vs_IN . uv ; Opaque_vs_OUT . uv . zw = Opaque_vs_OUT . position . zw ; float3 Ln = normalize ( l_d . xyz ) ; float3 Vn = normalize ( Opaque_vs_OUT . eye ) ; float3 Hn = normalize ( Vn + Ln ) ; float3 fresnel = lerp ( fresnelColor . rgb , float3 ( 1.0 , 1.0 , 1.0f ) , pow ( saturate ( 1.0 - dot ( Vn , Hn ) ) , ( 5.0 * ( 1.0 + fresnelFalloff ) ) ) ) ; Opaque_vs_OUT . color . rgb *= fresnel ; float3 pos = worldPos ; float3 eye = float3 ( eyePositionWS . xyz - pos . xyz ) ; float rayS = min ( eyePositionWS . y , pos . y ) ; float rayE = max ( eyePositionWS . y , pos . y ) + 0.5 ; float rayH = rayE - rayS ; float fogS = f_se . z ; float fogE = f_se . w ; float fogH = fogE - fogS ; float midS = min ( rayS , fogE ) ; float midE = min ( rayE , fogE ) ; float midA = 0.5 * ( midS + midE ) ; float midH = midE - midS ; float fogY = ( ( fogE - midA ) * midH ) / ( fogH * rayH ) ; float fogRatio = saturate ( ( fogY * length ( eye ) - f_se . x ) / ( f_se . y - f_se . x ) ) ; fogRatio = fogRatio * fogRatio ; float3 fogColor = lerp ( f_cc . rgb , f_fc . rgb , fogRatio ) ; float fogAlpha = lerp ( f_cc . a , f_fc . a , fogRatio ) ; Opaque_vs_OUT . fog = float4 ( fogColor , fogRatio * fogAlpha ) ; #line 253 #line 256 Opaque_vs_OUT . zDepth . x = Opaque_vs_OUT . position . w - cameraNear . x ; } #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 642 #line 273 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" #line 279 #line 284 Texture2D < float4 > tex ; float alpha ; float alphaFade ; float scatter ; float opacity ; float alphaPremult ; float4 uvOffset ; #line 305 #line 312 #line 325 #line 335 struct Opaque_fs_v2f { float4 position : SV_POSITION ; float4 color : TEXCOORD0 ; float4 uv : TEXCOORD1 ; float3 normal : TEXCOORD2 ; float3 eye : TEXCOORD3 ; float4 fog : TEXCOORD4 ; #line 347 float4 zDepth : TEXCOORD6 ; } ; struct Opaque_fs_f2f { float4 color : SV_TARGET0 ; } ; #line 359 void Opaque_fs_main ( in Opaque_fs_v2f Opaque_fs_IN , out Opaque_fs_f2f Opaque_fs_OUT ) { float3 N = normalize ( Opaque_fs_IN . normal ) ; float3 E = normalize ( Opaque_fs_IN . eye ) ; float colorInt = 1 - dot ( N , E ) ; Opaque_fs_IN . uv . xy += uvOffset . xy ; float4 texColor = tex . Sample ( LinearWrapSampler , Opaque_fs_IN . uv . xy ) ; float4 baseColor = Opaque_fs_IN . color * texColor ; #line 376 baseColor . a *= ( 1.0 - Opaque_fs_IN . fog . a ) ; #line 380 float a = saturate ( Opaque_fs_IN . uv . z * 5.0 ) * saturate ( 1 - colorInt * scatter ) ; #line 398 #line 404 a *= saturate ( ( Opaque_fs_IN . zDepth . x ) / 10 ) ; #line 412 float alphaMult = a * alpha * ( 1 - alphaFade ) * opacity ; Opaque_fs_OUT . color = float4 ( baseColor . rgb , baseColor . a * alphaMult * alphaMult ) ; #line 416 Opaque_fs_OUT . color . rgb *= alphaPremult * Opaque_fs_OUT . color . a + ( 1.0f - alphaPremult ) ; } technique11 Opaque { pass pass0 { SetVertexShader ( CompileShader ( vs_5_0 , Opaque_vs_main ( ) ) ) ; SetPixelShader ( CompileShader ( ps_5_0 , Opaque_fs_main ( ) ) ) ; SetBlendState ( ourBlendState , float4 ( 0.0f , 0.0f , 0.0f , 0.0f ) , 0xFFFFFFFF ) ; SetDepthStencilState ( ourDepthStencilState , 0 ) ; SetRasterizerState ( ourRasterState ) ; } } #line 448 þïþïÙ/D:\Dev\TGC\Journey\head\Journey\shaderd:\dev\tgc\journey\head\journey\shader#line 1 "D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Scattering_vs__Scattering_fs__44974.fx" #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" #line 8 BlendState ourBlendState { BlendEnable [ 0 ] = FALSE ; BlendEnable [ 1 ] = FALSE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADDâ0€Ô½¡‹¾ÊÕ)(â0•FkÉ›.()B< ºG ºGMicrosoft (R) HLSL Shader Compiler 10.1–=hlslFlags0x4005hlslTargetvs_5_0hlslEntryOpaque_vs_mainhlslDefines /DSPECULAR=1 /DUV_OFFSET=1 /DSKINNING_ENABLED=1 /DPHYRE_D3DFX=1 /DFOG=16Pøø Ô Opaque_vs_main.> IN_VALPÔøPÔøPÔøP ÔøPÔøPÔøPÔø PÔø$P Ôø(P$Ôø,P(Ôø0P,Ôø4P0Ôø@P4ÔøDP8ÔøHP<ÔøLP@ÔøPPDÔøTPHÔøXPLÔø\6> Opaque_vs_OUTP\ÔødP`ÔøhPdÔølPXÔø`PHÔøPPLÔøTPPÔøXPTÔø\P<Ôø@P@ÔøDPDÔøHP0Ôø0P4Ôø4P8Ôø8P Ôø P$Ôø$P(Ôø(P,Ôø,PÔøPÔøPÔøPÔøPÔøPÔøPÔøP Ôø PÔà(P ôÀ,P<Œ<P@Œ<PDŒ<PÀìPÀìPÀì2> Opaque_vs_INP¼ pP¼ tP¼ xP$HP$HP$HP8 P 8 P$8 P(L0P,L4P0L8.>inPosP `l |PtX pPtX tPtX x.>worldPosPTxpPTxtPTxx*>LnPTh0PTh4PTh8*>VnP ,@P ,DP ,H*>HnP $0P $4P $8.>fresnelP� (0P� °4P� <8*>posPÀ  pPÀ  tPÀ  x*>eyePø <Pø ˆPø l*>@raySP ð *>@rayEPT Ð*>@rayHPˆ D *>@fogSP  0$*>@fogEP¸ 0*>@fogHPì à$*>@midSP l *>@midEP$ „*>@midAP\ p4*>@midHP� P *>@fogYP L .>@fogRatioP,X.>fogColorPÀ PÀ PÀ  .>@fogAlphaP8”vMàL  _T \ƒŒ Rh T   d ]�( ƒP  F<  Z  PT  T   dF>ˆP¬dpP¬dtP¬dxPÀPPÀPPÀPPÔ<P Ô<P$Ô<P(è(0P,ü4P0ü8*> skInP(èP(èP (èP$(è P(P(,P(HP (è P(è$P(è(P((è4P,(è86>transformMatrixPŒ„@PŒ„DPŒ„HP Œ„LP pPP pTP pXP p\P ´\`P$´\dP(´\hP,´\l*> retPä,pPtPôxP8ØPT¼Pp P„ŒP „ŒP$„ŒP(„Œ P,˜x4P0˜x8nMœH  G ƒLX 6�, J  1t E  t  1T E  t  1T E   TtJ>ˆP@L@P@LDP@LHP @LLP\0PP\0TP\0XP\0\P x`P$xdP(xhP,xlNNô0>:ùÐÞgýZÚÂj«ë.I/Ÿ/ò€ Ì t ÔÀ€ÔÀØÀ€ØÀìÀ€ìÀÀ€ÀÀ€À(À€(À,À€,ÀLÀ€LÀpÀ€pÀ˜À€˜ÀÀÀ€ÀÀàÀ€àÀÀ€À,À€,ÀTÀ€TÀpÀ€pÀŒÀ€ŒÀ¨À€¨ÀÈÀ€ÈÀìÀ€ìÀÀ€À<À€<ÀXÀ€XÀtÀ€tÀ�À€�À°À€°ÀÔÀ€ÔÀüÀ€üÀ$À€$À@À€@À\À€\ÀxÀ€xÀŒÀ€ŒÀ À€ À´À€´ÀÈÀ€ÈÀäÀ€äÀÀ€ÀÀ€À8À€8ÀTÀ€TÀpÀ€pÀ„À€„À˜À€˜À¬À€¬ÀÀÀ€ÀÀÔÀ€ÔÀèÀ€èÀüÀ€üÀÀ€À$À€$À8À€8ÀLÀLÃ`À`ÃtÊ€tʔʀ”Ê´Ê€´ÊÔÊ€ÔÊôË€ôËË€Ë$Ë€$Ë@Ì€@ÌTÕ€TÕlÕ€lՌրŒÖ¬×€¬×À×€À×ÔØ€ÔØèÙ€èÙüÝ€üÝ Ý€ Ý4Ý€4ÝTÞ€TÞpÞ€pÞ„Þ€„Þ ߀ ß¼߀¼ߨ߀Øßì߀ìß à€ à$ à€$ à< à€< àX à€X àt à€t à� à€� à° à€° àÌ à€Ì àà à€à àü à€ü à à€ à, à€, àT à€T àp à€p à� á€� ᬠ倬 åÀ æ€À æØ æ€Ø æø ç€ø ç è€ è8 è€8 èT é€T él é€l éˆ ê€ˆ ê  ë€  ë¸ ì€¸ ìÐ ì€Ð ìì í€ì í î€ î$ ï€$ ï@ ï€@ ï\ ð€\ ðt ð€t ð� ñ€� ñ¨ ñ€¨ ñÄ ñ€Ä ñà ñ€à ñü ñ€ü ñ ò€ ò4 ò€4 òH ò€H òd ò€d ò€ ò€€ òœ ò€œ ò¸ ò€¸ òØ ò€Ø òô ò€ô òò€ò,ó€,óHô€Hôdô€dô„ô€„ô ô€ ôÀõ€ÀõÜõ€Üõüõ€üõõ€õ8ö€8öTö€Töh€h„€„ € ´€´È€È97979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797A?A ?? =? =? =? =B@B@B@5 3:8:8N"L20201/=;)')')'313131'#'%'%'%¢gu¢au¢au¢Vw¢Vw¢…˜¢}š¢Pž¢Pž¢Pž¢ ¢ ¢ ¢ ,* =9=964<4<:  &$&$($(&? ? ?)?1;?=b*7b*7b#7b#Bb#BbJ\bJ\b!^b`b`$"CACACACA><><><><E/AECP"NP"Nö( Œ((B0 Dhˆ¬Ìä,Hd J positionñ normalóòñ color ,uvóòñ" 4a2v_noSkinóòñ    @@float4x4 "@ñ Mtxsñ&PSkinTransformsòñ      @  Ê18d ÿÿÿÿxx€@ float3óòñ@float4óòñ@float2óòñuuint4Š SkinnableVertexòñ  SkinnableNormalòñ color (uvóòñ 0SkinWeightsòñ @SkinIndicesòñ"POpaque_vs_a2v~ positionñ color  uvóòñ 0normalóòñ <eyeòñ Hfogòñ XzDepthóòñ"hOpaque_vs_v2f B”«A = false ; } ; #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 8 #line 16 #line 20 #line 135 #line 140 #line 147 BlendState NoBlend_BlendState { BlendEnable [ 0 ] = FALSE ; } ; BlendState Alpha_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; BlendState Additive_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = Src_Alpha ; DestBlend [ 0 ] = ONE ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = Src_Alpha ; DestBlendAlpha [ 0 ] = ONE ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; #line 180 BlendState ParticleBlended_BlendState { BlendEnable [ 0 ] = TRUE ; SrcBlend [ 0 ] = ONE ; DestBlend [ 0 ] = Inv_Src_Alpha ; BlendOp [ 0 ] = ADD ; SrcBlendAlpha [ 0 ] = ONE ; DestBlendAlpha [ 0 ] = Inv_Src_Alpha ; BlendOpAlpha [ 0 ] = ADD ; BlendEnable [ 1 ] = FALSE ; } ; DepthStencilState NoDepthTest_NoDepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState NoDepthTest_DepthWrite_DepthState { DepthEnable = FALSE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_NoDepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = Zero ; DepthFunc = Less ; StencilEnable = FALSE ; } ; DepthStencilState DepthTest_DepthWrite_DepthState { DepthEnable = TRUE ; DepthWriteMask = All ; DepthFunc = Less ; StencilEnable = FALSE ; } ; RasterizerState NoCull_RasterizerState { CullMode = None ; } ; RasterizerState BackFaceCull_RasterizerState { CullMode = Back ; FrontCounterClockwise = TRUE ; } ; RasterizerState FrontFaceCull_RasterizerState { CullMode = Front ; FrontCounterClockwise = TRUE ; } ; #line 243 #line 246 #line 264 #line 269 sampler PointClampSampler : register ( s8 ) { Filter = Min_Mag_Mip_Point ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearClampSampler : register ( s9 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; } ; sampler LinearWrapTSampler : register ( s10 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Clamp ; AddressV = Wrap ; AddressW = Clamp ; } ; sampler LinearWrapSampler : register ( s11 ) { Filter = Min_Mag_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler PointWrapSampler : register ( s12 ) { Filter = Min_Mag_Mip_Point ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; } ; sampler AnisoClampSampler : register ( s13 ) { Filter = ANISOTROPIC ; AddressU = Clamp ; AddressV = Clamp ; AddressW = Clamp ; MaxAnisotropy = 16 ; } ; sampler LinearWrapAnisoSampler : register ( s14 ) { Filter = ANISOTROPIC ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; sampler PointWrapAnisoSampler : register ( s15 ) { Filter = Min_Mag_Point_Mip_Linear ; AddressU = Wrap ; AddressV = Wrap ; AddressW = Wrap ; MaxAnisotropy = 16 ; } ; static const float kSRGB = 2.2f ; #line 358 #line 373 #line 408 #line 427 #line 435 #line 498 #line 516 #line 521 float cameraNearTimesFar ; float cameraFarMinusNear ; float4 cameraNearFar ; #line 527 float ConvertDepth ( float depth ) { #line 532 float viewSpaceZ = - ( cameraNearTimesFar / ( depth * cameraFarMinusNear - cameraNearFar . y ) ) ; return viewSpaceZ ; } #line 542 #line 563 struct PSkinTransforms { float4x4 Mtxs [ 32 ] ; } ; 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 ] ; } #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 57 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" float4 eyePositionWS : eyePositionWS ; float4 cameraNear : cameraNearFar ; float4x4 viewprojection : viewprojection ; #line 67 #line 70 float4 mltColor ; float4 l_d ; float4 fresnelColor ; float fresnelFalloff ; float4 f_se ; float4 f_cc , f_fc ; #line 92 struct Opaque_vs_a2v { #line 98 float3 SkinnableVertex : POSITION ; float3 SkinnableNormal : NORMAL ; float4 color : COLOR0 ; float2 uv : TEXCOORD0 ; float4 SkinWeights : BLENDWEIGHTS ; #line 107 uint4 SkinIndices : BLENDINDICES ; } ; #line 126 #line 129 struct a2v_noSkin { float4 position : POSITION ; float3 normal : NORMAL ; float4 color : COLOR0 ; float2 uv : TEXCOORD0 ; } ; a2v_noSkin ProcessSkInput ( Opaque_vs_a2v skIn ) { float4x4 transformMatrix = GenerateBoneMatrix ( skIn . SkinIndices , skIn . SkinWeights ) ; a2v_noSkin ret ; ret . position = mul ( float4 ( skIn . SkinnableVertex . xyz , 1 ) , transformMatrix ) ; ret . normal = mul ( skIn . SkinnableNormal , ( float3x3 ) transformMatrix ) ; ret . color = skIn . color ; ret . uv = skIn . uv ; return ret ; } struct Opaque_vs_v2f { float4 position : SV_POSITION ; float4 color : TEXCOORD0 ; float4 uv : TEXCOORD1 ; float3 normal : TEXCOORD2 ; float3 eye : TEXCOORD3 ; float4 fog : TEXCOORD4 ; #line 167 float4 zDepth : TEXCOORD6 ; } ; #line 175 #line 182 void Opaque_vs_main ( in Opaque_vs_a2v IN_VAL , #line 187 out Opaque_vs_v2f Opaque_vs_OUT ) { a2v_noSkin Opaque_vs_IN = ProcessSkInput ( IN_VAL ) ; float4 inPos = float4 ( Opaque_vs_IN . position . xyz , 1 ) ; #line 199 Opaque_vs_OUT . position = mul ( inPos , viewprojection ) ; Opaque_vs_OUT . normal = normalize ( Opaque_vs_IN . normal ) ; float3 worldPos = Opaque_vs_IN . position . xyz ; #line 209 #line 213 Opaque_vs_OUT . eye = eyePositionWS . xyz - worldPos ; Opaque_vs_IN . color . rgb = Opaque_vs_IN . color . rgb * mltColor . xyz ; Opaque_vs_OUT . color = Opaque_vs_IN . color ; Opaque_vs_OUT . uv . xy = Opaque_vs_IN . uv ; Opaque_vs_OUT . uv . zw = Opaque_vs_OUT . position . zw ; float3 Ln = normalize ( l_d . xyz ) ; float3 Vn = normalize ( Opaque_vs_OUT . eye ) ; float3 Hn = normalize ( Vn + Ln ) ; float3 fresnel = lerp ( fresnelColor . rgb , float3 ( 1.0 , 1.0 , 1.0f ) , pow ( saturate ( 1.0 - dot ( Vn , Hn ) ) , ( 5.0 * ( 1.0 + fresnelFalloff ) ) ) ) ; Opaque_vs_OUT . color . rgb *= fresnel ; float3 pos = worldPos ; float3 eye = float3 ( eyePositionWS . xyz - pos . xyz ) ; float rayS = min ( eyePositionWS . y , pos . y ) ; float rayE = max ( eyePositionWS . y , pos . y ) + 0.5 ; float rayH = rayE - rayS ; float fogS = f_se . z ; float fogE = f_se . w ; float fogH = fogE - fogS ; float midS = min ( rayS , fogE ) ; float midE = min ( rayE , fogE ) ; float midA = 0.5 * ( midS + midE ) ; float midH = midE - midS ; float fogY = ( ( fogE - midA ) * midH ) / ( fogH * rayH ) ; float fogRatio = saturate ( ( fogY * length ( eye ) - f_se . x ) / ( f_se . y - f_se . x ) ) ; fogRatio = fogRatio * fogRatio ; float3 fogColor = lerp ( f_cc . rgb , f_fc . rgb , fogRatio ) ; float fogAlpha = lerp ( f_cc . a , f_fc . a , fogRatio ) ; Opaque_vs_OUT . fog = float4 ( fogColor , fogRatio * fogAlpha ) ; #line 253 #line 256 Opaque_vs_OUT . zDepth . x = Opaque_vs_OUT . position . w - cameraNear . x ; } #line 0 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh" #line 642 #line 273 "D:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fx" #line 279 #line 284 Texture2D < float4 > tex ; float alpha ; float alphaFade ; float scatter ; float opacity ; float alphaPremult ; float4 uvOffset ; #line 305 #line 312 #line 325 #line 335 struct Opaque_fs_v2f { float4 position : SV_POSITION ; float4 color : TEXCOORD0 ; float4 uv : TEXCOORD1 ; float3 normal : TEXCOORD2 ; float3 eye : TEXCOORD3 ; float4 fog : TEXCOORD4 ; #line 347 float4 zDepth : TEXCOORD6 ; } ; struct Opaque_fs_f2f { float4 color : SV_TARGET0 ; } ; #line 359 void Opaque_fs_main ( in Opaque_fs_v2f Opaque_fs_IN , out Opaque_fs_f2f Opaque_fs_OUT ) { float3 N = normalize ( Opaque_fs_IN . normal ) ; float3 E = normalize ( Opaque_fs_IN . eye ) ; float colorInt = 1 - dot ( N , E ) ; Opaque_fs_IN . uv . xy += uvOffset . xy ; float4 texColor = tex . Sample ( LinearWrapSampler , Opaque_fs_IN . uv . xy ) ; float4 baseColor = Opaque_fs_IN . color * texColor ; #line 376 baseColor . a *= ( 1.0 - Opaque_fs_IN . fog . a ) ; #line 380 float a = saturate ( Opaque_fs_IN . uv . z * 5.0 ) * saturate ( 1 - colorInt * scatter ) ; #line 398 #line 404 a *= saturate ( ( Opaque_fs_IN . zDepth . x ) / 10 ) ; #line 412 float alphaMult = a * alpha * ( 1 - alphaFade ) * opacity ; Opaque_fs_OUT . color = float4 ( baseColor . rgb , baseColor . a * alphaMult * alphaMult ) ; #line 416 Opaque_fs_OUT . color . rgb *= alphaPremult * Opaque_fs_OUT . color . a + ( 1.0f - alphaPremult ) ; } technique11 Opaque { pass pass0 { SetVertexShader ( CompileShader ( vs_5_0 , Opaque_vs_main ( ) ) ) ; SetPixelShader ( CompileShader ( ps_5_0 , Opaque_fs_main ( ) ) ) ; SetBlendState ( ourBlendState , float4 ( 0.0f , 0.0f , 0.0f , 0.0f ) , 0xFFFFFFFF ) ; SetDepthStencilState ( ourDepthStencilState , 0 ) ; SetRasterizerState ( ourRasterState ) ; } } #line 448 D:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Scattering_vs__Scattering_fs__44974.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/Migratory.sh Ÿ/(PI/ë.) Ê18< ÿÿÿÿProcessSkInputñGenerateBoneMatrixñD3DSHDRÌ `ProcessSkInputñGenerateBoneMatrixñÿÿÿÿ /ñ`4Ie!-åi­EÍ ‰@ @ $0<HT`lx„%àOpaque_vs_main"QÿÿÿÿÿÿSkinTransforms"Q ÿÿÿÿÿÿeyePositionWSQ0ÿÿÿÿÿÿcameraNear"Q@ÿÿÿÿÿÿviewprojectionQ€ÿÿÿÿÿÿmltColorQ�ÿÿÿÿÿÿl_d"Q ÿÿÿÿÿÿfresnelColor"Q°ÿÿÿÿÿÿfresnelFalloffQÀÿÿÿÿÿÿf_seQÐÿÿÿÿÿÿf_ccQàÿÿÿÿÿÿf_fcËw‡Øÿÿÿÿ /ñMigratory.shþïþïÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÌ ` Tð Opaque_vs_mainnoneÿÿÿÿw 1 Ž?\T ,0Ì ` Tð Opaque_vs_mainnone-º.ñÌ `ÿÿÿÿÌÿÿÿÿÿÿÿÿ'…ÛD:\Dev\TGC\Journey\head\Journey\shaderD:\\Dev\\TGC\\Journey\\head\\Journey\\Data\\Shaders\\S_Scattering_vs__Scattering_fs__44974.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/S_Scattering_vs__Scattering_fs__44974.fxD:/Dev/TGC/Journey/head/Journey/Data/Shaders/”.1]Œ^r¿Bv€K“…K¯cÓavT/LinkInfo/names/src/headerblock/src/files/d:\dev\tgc\journey\head\journey\shader" ÜQ3 °œ?t0€›.x%€(¤,€W65VUO 89:;<=>?@ABCDEFGHIJKLMN! "#$%&'()*+,-./012347PQRTSXBLENDINDICESBLENDWEIGHTSCOLORNORMALPOSITIONTEXCOORDPEffectVariantPMaterialOpaqueSkinnableVertexSkinnableNormalColorSTSkinWeightsSkinIndices   0 @ F I Up`P@Œ0 ˆ„€üø5à5È5°5˜5€5h5P586 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ñ 0 h¦ P�h¶ ab˜ÂÁ" A°Õؘ”ö„ðäêºÀª¢Ê¶€.lZ¨B’²*"4AÌœ*"4