#include "WaterPS.hlsli" float4 main(VS_OUTPUT input) : SV_TARGET { float4 c = float4(0.1, 0.18, 0.25, 0.8); //if (RenderMode == 0) c = float4(1, 1, 1, 1); //c.a *= input.Colour0.a; float3 camrel = input.CamRelPos; float3 worldpos = camrel + CameraPos.xyz; if ((EnableFoamMap == 0) && (EnableFogtex == 1)) { float2 fogtc = saturate((worldpos.xy - WaterFogParams.xy) * WaterFogParams.zw); fogtc.y = 1.0 - fogtc.y; c = WaterFog.Sample(TextureSS, fogtc); c.a = 0.9; } float3 norm = EnableFoamMap ? normalize(input.Normal) : RippleNormal(input, worldpos);// normalize(input.Normal); if (RenderMode == 1) //normals { c.rgb = norm*0.5+0.5; } else if (RenderMode == 2) //tangents { c.rgb = normalize(input.Tangent.rgb)*0.5+0.5; } else if (RenderMode == 3) //colours { c.rgb = input.Colour0.rgb; } else if (RenderMode == 4) //texcoords { c.rgb = float3(input.Texcoord0, 0); } else if ((RenderMode == 8) || (EnableTexture == 1)) //single texture or diffuse enabled { c.rgb = Colourmap.Sample(TextureSS, input.Texcoord0).rgb; } else if (EnableFoamMap) { c = Foammap.Sample(TextureSS, input.Texcoord0); } float3 spec = 0; if (RenderMode == 0) { float4 nv = Bumpmap.Sample(TextureSS, input.Texcoord0); //sample r1.xyzw, v2.xyxx, t3.xyzw, s3 (BumpSampler) float2 nmv = nv.xy; float4 r0 = 0, r1, r2, r3; float bumpiness = 0.5; if (EnableBumpMap) { norm = NormalMap(nmv, bumpiness, input.Normal.xyz, input.Tangent.xyz, input.Bitangent.xyz); } float3 tc = c.rgb; c.rgb = tc;// *r0.z; //diffuse factors... float3 incident = normalize(input.CamRelPos); float3 refl = normalize(reflect(incident, norm)); float specb = saturate(dot(refl, GlobalLights.LightDir)); float specp = max(exp(specb * 10) - 1, 0); spec += GlobalLights.LightDirColour.rgb * 0.00006 * specp * SpecularIntensity; if (ShaderMode == 1) //river foam { c.a *= input.Colour0.g; } else if (ShaderMode == 2) //terrain foam { c.a *= c.r; c.a *= input.Colour0.r; } else { ///c.a = 1; } } float4 fc = c; c.rgb = FullLighting(c.rgb, spec, norm, 0, GlobalLights, EnableShadows, input.Shadows.x, input.LightShadow); c.a = saturate(c.a); return c; } /* water_terrainfoam.fxc_PSFoam // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // // Buffer Definitions: // // cbuffer misc_globals // { // // float4 globalFade; // Offset: 0 Size: 16 [unused] // float globalHeightScale; // Offset: 16 Size: 4 [unused] // float4 g_Rage_Tessellation_CameraPosition;// Offset: 32 Size: 16 [unused] // float4 g_Rage_Tessellation_CameraZAxis;// Offset: 48 Size: 16 [unused] // float4 g_Rage_Tessellation_ScreenSpaceErrorParams;// Offset: 64 Size: 16 [unused] // float4 g_Rage_Tessellation_LinearScale;// Offset: 80 Size: 16 [unused] // float4 g_Rage_Tessellation_Frustum[4];// Offset: 96 Size: 64 [unused] // float4 g_Rage_Tessellation_Epsilons;// Offset: 160 Size: 16 [unused] // float4 globalScalars; // Offset: 176 Size: 16 // float4 globalScalars2; // Offset: 192 Size: 16 // float4 globalScalars3; // Offset: 208 Size: 16 [unused] // float4 globalScreenSize; // Offset: 224 Size: 16 [unused] // uint4 gTargetAAParams; // Offset: 240 Size: 16 [unused] // float4 colorize; // Offset: 256 Size: 16 [unused] // float4 gGlobalParticleShadowBias; // Offset: 272 Size: 16 [unused] // float gGlobalParticleDofAlphaScale;// Offset: 288 Size: 4 [unused] // float gGlobalFogIntensity; // Offset: 292 Size: 4 [unused] // float4 gPlayerLFootPos; // Offset: 304 Size: 16 [unused] // float4 gPlayerRFootPos; // Offset: 320 Size: 16 [unused] // // } // // cbuffer more_stuff // { // // float4 gEntitySelectColor[2]; // Offset: 0 Size: 32 [unused] // float4 gAmbientOcclusionEffect; // Offset: 32 Size: 16 [unused] // float4 gDynamicBakesAndWetness; // Offset: 48 Size: 16 // float4 gAlphaRefVec0; // Offset: 64 Size: 16 [unused] // float4 gAlphaRefVec1; // Offset: 80 Size: 16 [unused] // float gAlphaTestRef; // Offset: 96 Size: 4 [unused] // bool gTreesUseDiscard; // Offset: 100 Size: 4 [unused] // float gReflectionMipCount; // Offset: 104 Size: 4 [unused] // bool gUseTransparencyAA; // Offset: 108 Size: 4 [unused] // bool gUseFogRay; // Offset: 112 Size: 4 [unused] // // } // // cbuffer water_terrainfoam_locals // { // // float WaveOffset; // Offset: 0 Size: 4 // float WaterHeight; // Offset: 4 Size: 4 // float WaveMovement; // Offset: 8 Size: 4 // float HeightOpacity; // Offset: 12 Size: 4 // // } // // // Resource Bindings: // // Name Type Format Dim HLSL Bind Count // ------------------------------ ---------- ------- ----------- -------------- ------ // FoamSampler sampler NA NA s3 1 // WetSampler sampler NA NA s9 1 // WaterBumpSampler sampler NA NA s10 1 // FoamSampler texture float4 2d t3 1 // WetSampler texture float4 2d t9 1 // WaterBumpSampler texture float4 2d t10 1 // misc_globals cbuffer NA NA cb2 1 // more_stuff cbuffer NA NA cb5 1 // water_terrainfoam_locals cbuffer NA NA cb10 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Position 0 xyzw 0 POS float // TEXCOORD 0 xyzw 1 NONE float zw // TEXCOORD 1 xyz 2 NONE float xyz // TEXCOORD 2 xyz 3 NONE float // TEXCOORD 3 xyz 4 NONE float // TEXCOORD 4 xyzw 5 NONE float xyzw // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // SV_Target 1 xyzw 1 TARGET float xyzw // SV_Target 2 xyzw 2 TARGET float xyzw // SV_Target 3 xyzw 3 TARGET float xyzw // ps_4_0 dcl_constantbuffer CB2[13], immediateIndexed dcl_constantbuffer CB5[4], immediateIndexed dcl_constantbuffer CB10[1], immediateIndexed dcl_sampler s3, mode_default dcl_sampler s9, mode_default dcl_sampler s10, mode_default dcl_resource_texture2d (float,float,float,float) t3 dcl_resource_texture2d (float,float,float,float) t9 dcl_resource_texture2d (float,float,float,float) t10 dcl_input_ps linear v1.zw dcl_input_ps linear v2.xyz dcl_input_ps linear v5.xyzw dcl_output o0.xyzw dcl_output o1.xyzw dcl_output o2.xyzw dcl_output o3.xyzw dcl_temps 3 mov r0.x, l(0) sample r1.xyzw, v5.zwzz, t9.xyzw, s9 dp2 r0.y, r1.xxxx, cb10[0].zzzz add r0.xy, -r0.xyxx, v5.xyxx add r0.xy, r0.xyxx, cb10[0].xxxx add r0.zw, r0.xxxy, v5.xxxy sample r2.xyzw, r0.xyxx, t3.xyzw, s3 sample r0.xyzw, r0.zwzz, t10.xyzw, s10 mul r0.x, r0.x, r2.y add r0.y, v1.z, -cb10[0].y max r0.y, r0.y, l(0.000000) mul r0.y, r0.y, cb10[0].w mul r0.x, r0.y, r0.x mul r0.x, r0.x, v1.w mul_sat r0.x, r1.x, r0.x mul r0.x, r0.x, cb2[11].x mov o0.w, r0.x add r0.y, v2.z, l(-0.350000) mul_sat r0.y, r0.y, l(1.538462) mul r0.y, r0.y, cb5[3].z add r0.z, -cb2[12].z, l(1.000000) mul r0.y, r0.z, r0.y mul r0.y, r0.y, cb2[11].z mad o0.xyz, r0.yyyy, l(-0.500000, -0.500000, -0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) mul r0.yz, r0.yyyy, l(0.000000, 0.500000, 0.488281, 0.000000) sqrt o2.xy, r0.yzyy mov o1.w, r0.x mov o2.w, r0.x mad o1.xyz, v2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) mov o2.z, l(0.980000) mov o3.xyzw, l(0,0,0,0) ret // Approximately 32 instruction slots used */ /* water_riverfoam.fxc_PSFoam // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // // Buffer Definitions: // // cbuffer misc_globals // { // // float4 globalFade; // Offset: 0 Size: 16 [unused] // float globalHeightScale; // Offset: 16 Size: 4 [unused] // float4 g_Rage_Tessellation_CameraPosition;// Offset: 32 Size: 16 [unused] // float4 g_Rage_Tessellation_CameraZAxis;// Offset: 48 Size: 16 [unused] // float4 g_Rage_Tessellation_ScreenSpaceErrorParams;// Offset: 64 Size: 16 [unused] // float4 g_Rage_Tessellation_LinearScale;// Offset: 80 Size: 16 [unused] // float4 g_Rage_Tessellation_Frustum[4];// Offset: 96 Size: 64 [unused] // float4 g_Rage_Tessellation_Epsilons;// Offset: 160 Size: 16 [unused] // float4 globalScalars; // Offset: 176 Size: 16 [unused] // float4 globalScalars2; // Offset: 192 Size: 16 [unused] // float4 globalScalars3; // Offset: 208 Size: 16 // float4 globalScreenSize; // Offset: 224 Size: 16 [unused] // uint4 gTargetAAParams; // Offset: 240 Size: 16 [unused] // float4 colorize; // Offset: 256 Size: 16 [unused] // float4 gGlobalParticleShadowBias; // Offset: 272 Size: 16 [unused] // float gGlobalParticleDofAlphaScale;// Offset: 288 Size: 4 [unused] // float gGlobalFogIntensity; // Offset: 292 Size: 4 [unused] // float4 gPlayerLFootPos; // Offset: 304 Size: 16 [unused] // float4 gPlayerRFootPos; // Offset: 320 Size: 16 [unused] // // } // // // Resource Bindings: // // Name Type Format Dim HLSL Bind Count // ------------------------------ ---------- ------- ----------- -------------- ------ // FoamSampler sampler NA NA s2 1 // LightingSampler sampler NA NA s15 1 // FoamSampler texture float4 2d t2 1 // LightingSampler texture float4 2d t15 1 // misc_globals cbuffer NA NA cb2 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Position 0 xyzw 0 POS float // TEXCOORD 0 xyzw 1 NONE float w // TEXCOORD 1 xyzw 2 NONE float xy w // TEXCOORD 2 xy 3 NONE float xy // TEXCOORD 3 xyz 4 NONE float xyz // TEXCOORD 4 xyz 5 NONE float xyz // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_4_0 dcl_constantbuffer CB2[14], immediateIndexed dcl_sampler s2, mode_default dcl_sampler s15, mode_default dcl_resource_texture2d (float,float,float,float) t2 dcl_resource_texture2d (float,float,float,float) t15 dcl_input_ps linear v1.w dcl_input_ps linear v2.xyw dcl_input_ps linear v3.xy dcl_input_ps linear v4.xyz dcl_input_ps linear v5.xyz dcl_output o0.xyzw dcl_temps 1 div r0.xy, v2.xyxx, v2.wwww sample r0.xyzw, r0.xyxx, t15.xyzw, s15 mad r0.xyz, v5.xyzx, r0.wwww, v4.xyzx mul o0.xyz, r0.xyzx, cb2[13].zzzz sample r0.xyzw, v3.xyxx, t2.xyzw, s2 mul r0.x, r0.w, v1.w mul o0.w, r0.x, r0.x ret // Approximately 8 instruction slots used */ /* water_river.fxc_PS // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Position 0 xyzw 0 POS float // TEXCOORD 0 xyzw 1 NONE float xyzw // TEXCOORD 1 xyzw 2 NONE float xyzw // TEXCOORD 2 xyzw 3 NONE float zw // TEXCOORD 3 xyzw 4 NONE float xyzw // TEXCOORD 4 xyzw 5 NONE float zw // mul r0.xy, v5.zwzz, RippleSpeed mad r1.xyzw, -r0.xyxy, gFlowParams.xxyy, v2.xyxy dp2 r0.x, r0.xyxx, r0.xyxx sqrt r0.x, r0.x min r0.x, r0.x, l(1.000000) mul r0.yz, r1.xxyx, RippleScale mad r1.xy, r1.zwzz, RippleScale, l(0.500000, 0.500000, 0.000000, 0.000000) mul r1.xy, r1.xyxx, l(2.300000, 2.300000, 0.000000, 0.000000) mul r0.yz, r0.yyzy, l(0.000000, 2.300000, 2.300000, 0.000000) sample r2.xyzw, r0.yzyy, WaterBumpSampler2.xyzw, s14 sample r3.xyzw, r0.yzyy, WaterBumpSampler.xyzw, s10 sample r4.xyzw, r1.xyxx, WaterBumpSampler2.xyzw, s14 sample r1.xyzw, r1.xyxx, WaterBumpSampler.xyzw, s10 mov r3.zw, r1.xxxy mov r2.zw, r4.xxxy add r1.xyzw, r2.xyzw, r3.xyzw add r2.xyzw, r3.xyzw, l(0.500000, 0.500000, 0.500000, 0.500000) add r1.xyzw, r1.xyzw, -r2.xyzw mad r0.xyzw, r0.xxxx, r1.xyzw, r2.xyzw mad r0.xyzw, r0.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(-2.000000, -2.000000, -2.000000, -2.000000) mul r0.xyzw, r0.xyzw, gFlowParams.zzww add r0.xy, r0.zwzz, r0.xyxx mul r0.zw, r0.xxxy, RippleBumpiness dp2 r0.x, r0.xyxx, r0.xyxx sqrt r0.x, r0.x mad r0.x, r0.x, l(0.270000), l(0.440000) mad r1.xy, r0.zwzz, v2.wwww, v4.xyxx mov r1.z, v4.z dp3 r0.y, r1.xyzx, r1.xyzx rsq r0.y, r0.y mad r2.xyz, -r1.xyzx, r0.yyyy, l(0.000000, 0.000000, 1.000000, 0.000000) mul r0.yzw, r0.yyyy, r1.xxyz mad r1.xyz, r2.xyzx, l(0.833333, 0.833333, 0.833333, 0.000000), r0.yzwy add r2.xyz, v2.xyzx, -gViewInverse[3].xyzx dp3 r1.w, r2.xyzx, r2.xyzx rsq r1.w, r1.w mul r3.xyz, r1.wwww, r2.xyzx dp3 r2.w, r3.xyzx, r1.xyzx add r2.w, r2.w, r2.w mad r1.xyz, r1.xyzx, -r2.wwww, r3.xyzx dp3 r2.w, -r3.xyzx, r0.yzwy mad r1.z, -r2.z, r1.w, -r1.z mad r1.z, -r2.z, r1.w, |r1.z| mul r3.xyz, r1.yyyy, gReflectionWorldViewProj[1].xwyx mad r3.xyz, r1.xxxx, gReflectionWorldViewProj[0].xwyx, r3.xyzx mad r1.xyz, r1.zzzz, gReflectionWorldViewProj[2].xwyx, r3.xyzx mul r3.xyz, r1.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) mad r4.y, r1.y, l(0.500000), -r3.z add r4.x, r3.y, r3.x div r1.xy, r4.xyxx, r1.yyyy sample r3.xyzw, r1.xyxx, PlanarReflectionSampler.xyzw, s7 sample r4.xyzw, v1.zwzz, WetSampler.xyzw, s9 mul r1.x, r4.x, l(0.650000) add r1.y, -v4.w, l(512.000000) mul_sat r1.y, r1.y, l(0.001953) mul r1.x, r1.y, r1.x sample r4.xyzw, v3.zwzz, StaticFoamSampler.xyzw, s4 mul r1.y, r4.y, l(0.350000) mad r4.x, r1.y, r0.x, r1.x mov r4.yw, l(0,0.500000,0,0.500000) sample r5.xyzw, r4.xyxx, BlendSampler.xyzw, s6 mov r1.xy, -r0.yzyy mov r1.z, l(0) mad r1.xyz, r2.xyzx, r1.wwww, r1.xyzx mad r2.xyz, r2.xyzx, r1.wwww, gDirectionalLight.xyzx div r6.xy, v1.xyxx, v4.wwww sample r7.xyzw, r6.xyxx, LightingSampler.xyzw, s15 mad r1.xyz, r1.xyzx, r7.yyyy, v2.xyzx mov r6.z, r7.y mul r5.xzw, r1.yyyy, gRefractionWorldViewProj[1].xxwy mad r1.xyw, r1.xxxx, gRefractionWorldViewProj[0].xwxy, r5.xzxw mad r1.xyz, r1.zzzz, gRefractionWorldViewProj[2].xwyx, r1.xywx add r1.xyz, r1.xyzx, gRefractionWorldViewProj[3].xwyx mul r1.xzw, r1.xxyz, l(0.500000, 0.000000, 0.500000, 0.500000) mad r4.y, r1.y, l(0.500000), -r1.w add r4.x, r1.z, r1.x div r1.xy, r4.xyxx, r1.yyyy sample r7.xyzw, r1.xyxx, LightingSampler.xyzw, s15 ne r0.x, l(0.000000, 0.000000, 0.000000, 0.000000), r7.z mov r1.z, r7.y movc r1.xyz, r0.xxxx, r6.xyzx, r1.xyzx mul r0.x, r1.z, r5.y sample r5.xyzw, r1.xyxx, RefractionSampler.xyzw, s12 dp3 r1.x, r0.yzwy, -gDirectionalLight.xyzx mad_sat r1.x, r1.x, l(0.700000), l(0.300000) mul r1.xyw, r1.xxxx, gWaterDirectionalColor.xyxz mad r1.xyw, r1.xyxw, r7.wwww, gWaterAmbientColor.xyxz mad r1.xyw, r1.xyxw, r0.xxxx, r5.xyxz add r3.xyz, -r1.xywx, r3.xyzx add r0.x, -r2.w, l(1.000000) mad r4.z, r0.x, l(0.300000), r2.w sample r4.xyzw, r4.zwzz, BlendSampler.xyzw, s6 mad r3.xyz, r4.xxxx, r3.xyzx, r1.xywx dp3 r0.x, r2.xyzx, r2.xyzx rsq r0.x, r0.x mul r2.xyz, r0.xxxx, r2.xyzx dp3_sat r0.x, -r2.xyzx, r0.yzwy log r0.x, r0.x mul r0.x, r0.x, SpecularFalloff exp r0.x, r0.x mul r0.x, r0.x, SpecularIntensity mul r0.x, r7.w, r0.x mad r0.xyz, gWaterDirectionalColor.xyzx, r0.xxxx, r3.xyzx add r0.xyz, -r1.xywx, r0.xyzx mad r0.xyz, r1.zzzz, r0.xyzx, r1.xywx mul o0.xyz, r0.xyzx, globalScalars3.zzzz mov o0.w, l(0) ret // Approximately 108 instruction slots used // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // // Buffer Definitions: // // cbuffer rage_matrices // { // // row_major float4x4 gWorld; // Offset: 0 Size: 64 [unused] // row_major float4x4 gWorldView; // Offset: 64 Size: 64 [unused] // row_major float4x4 gWorldViewProj; // Offset: 128 Size: 64 [unused] // row_major float4x4 gViewInverse; // Offset: 192 Size: 64 // // } // // cbuffer misc_globals // { // // float4 globalFade; // Offset: 0 Size: 16 [unused] // float globalHeightScale; // Offset: 16 Size: 4 [unused] // float4 g_Rage_Tessellation_CameraPosition;// Offset: 32 Size: 16 [unused] // float4 g_Rage_Tessellation_CameraZAxis;// Offset: 48 Size: 16 [unused] // float4 g_Rage_Tessellation_ScreenSpaceErrorParams;// Offset: 64 Size: 16 [unused] // float4 g_Rage_Tessellation_LinearScale;// Offset: 80 Size: 16 [unused] // float4 g_Rage_Tessellation_Frustum[4];// Offset: 96 Size: 64 [unused] // float4 g_Rage_Tessellation_Epsilons;// Offset: 160 Size: 16 [unused] // float4 globalScalars; // Offset: 176 Size: 16 [unused] // float4 globalScalars2; // Offset: 192 Size: 16 [unused] // float4 globalScalars3; // Offset: 208 Size: 16 // float4 globalScreenSize; // Offset: 224 Size: 16 [unused] // uint4 gTargetAAParams; // Offset: 240 Size: 16 [unused] // float4 colorize; // Offset: 256 Size: 16 [unused] // float4 gGlobalParticleShadowBias; // Offset: 272 Size: 16 [unused] // float gGlobalParticleDofAlphaScale;// Offset: 288 Size: 4 [unused] // float gGlobalFogIntensity; // Offset: 292 Size: 4 [unused] // float4 gPlayerLFootPos; // Offset: 304 Size: 16 [unused] // float4 gPlayerRFootPos; // Offset: 320 Size: 16 [unused] // // } // // cbuffer lighting_globals // { // // float4 gDirectionalLight; // Offset: 0 Size: 16 // float4 gDirectionalColour; // Offset: 16 Size: 16 [unused] // int gNumForwardLights; // Offset: 32 Size: 4 [unused] // float4 gLightPositionAndInvDistSqr[8];// Offset: 48 Size: 128 [unused] // float4 gLightDirectionAndFalloffExponent[8];// Offset: 176 Size: 128 [unused] // float4 gLightColourAndCapsuleExtent[8];// Offset: 304 Size: 128 [unused] // float gLightConeScale[8]; // Offset: 432 Size: 116 [unused] // float gLightConeOffset[8]; // Offset: 560 Size: 116 [unused] // float4 gLightNaturalAmbient0; // Offset: 688 Size: 16 [unused] // float4 gLightNaturalAmbient1; // Offset: 704 Size: 16 [unused] // float4 gLightArtificialIntAmbient0;// Offset: 720 Size: 16 [unused] // float4 gLightArtificialIntAmbient1;// Offset: 736 Size: 16 [unused] // float4 gLightArtificialExtAmbient0;// Offset: 752 Size: 16 [unused] // float4 gLightArtificialExtAmbient1;// Offset: 768 Size: 16 [unused] // float4 gDirectionalAmbientColour; // Offset: 784 Size: 16 [unused] // float4 globalFogParams[5]; // Offset: 800 Size: 80 [unused] // float4 globalFogColor; // Offset: 880 Size: 16 [unused] // float4 globalFogColorE; // Offset: 896 Size: 16 [unused] // float4 globalFogColorN; // Offset: 912 Size: 16 [unused] // float4 globalFogColorMoon; // Offset: 928 Size: 16 [unused] // float4 gReflectionTweaks; // Offset: 944 Size: 16 [unused] // // } // // cbuffer water_globals // { // // float2 gWorldBaseVS; // Offset: 0 Size: 8 [unused] // float4 gFlowParams; // Offset: 16 Size: 16 // float4 gFlowParams2; // Offset: 32 Size: 16 [unused] // float4 gWaterAmbientColor; // Offset: 48 Size: 16 // float4 gWaterDirectionalColor; // Offset: 64 Size: 16 // float4 gScaledTime; // Offset: 80 Size: 16 [unused] // float4 gOceanParams0; // Offset: 96 Size: 16 [unused] // float4 gOceanParams1; // Offset: 112 Size: 16 [unused] // row_major float4x4 gReflectionWorldViewProj;// Offset: 128 Size: 64 // float4 gFogLight_Debugging; // Offset: 192 Size: 16 [unused] // row_major float4x4 gRefractionWorldViewProj;// Offset: 208 Size: 64 // // } // // cbuffer water_common_locals // { // // float RippleBumpiness; // Offset: 0 Size: 4 // float RippleSpeed; // Offset: 4 Size: 4 // float RippleScale; // Offset: 8 Size: 4 // float SpecularIntensity; // Offset: 12 Size: 4 // float SpecularFalloff; // Offset: 16 Size: 4 // float ParallaxIntensity; // Offset: 20 Size: 4 [unused] // // } // // // Resource Bindings: // // Name Type Format Dim HLSL Bind Count // ------------------------------ ---------- ------- ----------- -------------- ------ // StaticFoamSampler sampler NA NA s4 1 // BlendSampler sampler NA NA s6 1 // PlanarReflectionSampler sampler NA NA s7 1 // WetSampler sampler NA NA s9 1 // WaterBumpSampler sampler NA NA s10 1 // RefractionSampler sampler NA NA s12 1 // WaterBumpSampler2 sampler NA NA s14 1 // LightingSampler sampler NA NA s15 1 // StaticFoamSampler texture float4 2d t4 1 // BlendSampler texture float4 2d t6 1 // PlanarReflectionSampler texture float4 2d t7 1 // WetSampler texture float4 2d t9 1 // WaterBumpSampler texture float4 2d t10 1 // RefractionSampler texture float4 2d t12 1 // WaterBumpSampler2 texture float4 2d t14 1 // LightingSampler texture float4 2d t15 1 // rage_matrices cbuffer NA NA cb1 1 // misc_globals cbuffer NA NA cb2 1 // lighting_globals cbuffer NA NA cb3 1 // water_globals cbuffer NA NA cb4 1 // water_common_locals cbuffer NA NA cb10 1 // // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_4_0 dcl_constantbuffer CB1[16], immediateIndexed dcl_constantbuffer CB2[14], immediateIndexed dcl_constantbuffer CB3[1], immediateIndexed dcl_constantbuffer CB4[17], immediateIndexed dcl_constantbuffer CB10[2], immediateIndexed dcl_sampler s4, mode_default dcl_sampler s6, mode_default dcl_sampler s7, mode_default dcl_sampler s9, mode_default dcl_sampler s10, mode_default dcl_sampler s12, mode_default dcl_sampler s14, mode_default dcl_sampler s15, mode_default dcl_resource_texture2d (float,float,float,float) t4 dcl_resource_texture2d (float,float,float,float) t6 dcl_resource_texture2d (float,float,float,float) t7 dcl_resource_texture2d (float,float,float,float) t9 dcl_resource_texture2d (float,float,float,float) t10 dcl_resource_texture2d (float,float,float,float) t12 dcl_resource_texture2d (float,float,float,float) t14 dcl_resource_texture2d (float,float,float,float) t15 dcl_input_ps linear v1.xyzw dcl_input_ps linear v2.xyzw dcl_input_ps linear v3.zw dcl_input_ps linear v4.xyzw dcl_input_ps linear v5.zw dcl_output o0.xyzw dcl_temps 8 */