Skip to content

Commit

Permalink
Update to v3 of Mordor shaders.
Browse files Browse the repository at this point in the history
Should be final version from 11-14-14 drop.
  • Loading branch information
bo3b committed Nov 15, 2014
1 parent 68e41e9 commit 98f1c8c
Show file tree
Hide file tree
Showing 45 changed files with 8,556 additions and 34 deletions.
251 changes: 251 additions & 0 deletions Mordor/ShaderFixes/0123d9824cd9285f-ps_replace.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,251 @@
//decals
cbuffer _Globals : register(b0)
{
float k_fInvLightRadius : packoffset(c0);
row_major float3x4 k_mCubeProjector_LightTransform : packoffset(c1);
row_major float3x4 k_mDirectional_ObjectToTex : packoffset(c4);
row_major float4x4 k_mSpotProjector_LightTransform : packoffset(c7);
float4 k_vSpotProjector_TanXYRadiusZW : packoffset(c11);
row_major float3x4 k_mWorldToVolume : packoffset(c12);
float3 k_vDirectional_Dir : packoffset(c15);
float4 k_vObjectLightColor : packoffset(c16);
float3 k_vObjectSpaceLightPos : packoffset(c17);
float4 k_vSpecularColor : packoffset(c18);
float4 k_vSpotProjector_ClipFar : packoffset(c19);
float4 k_vSpotProjector_ClipNear : packoffset(c20);
float3 k_vHalfDims : packoffset(c21);
float4 k_vShadowMapParams : packoffset(c22);
float4 k_vShadowMapParams2 : packoffset(c23);
row_major float4x4 k_mShadowMapMatrix : packoffset(c24);
float4 k_vShadowCascadeOffsetX : packoffset(c28);
float4 k_vShadowCascadeOffsetZ : packoffset(c29);
float k_fStaticLightVolume_Mip : packoffset(c30);
float4 k_vShadowSplitDistSquared : packoffset(c31);
float4 k_vShadowSplitDistSelect : packoffset(c32);
float4 k_vShadowMoveX : packoffset(c33);
float4 k_vShadowMoveY : packoffset(c34);
float4 k_vShadowMoveZ : packoffset(c35);
float4 k_vShadowScaleXY : packoffset(c36);
float4 k_vShadowScaleX : packoffset(c37);
float4 k_vShadowScaleY : packoffset(c38);
float4 k_vShadowScaleZ : packoffset(c39);
float3 k_vLightBleed_Offset : packoffset(c40);
float4 k_vStaticLightVolume_PivotContrast : packoffset(c41);
float k_fLightLayer : packoffset(c42);
row_major float3x4 k_mViewToLight : packoffset(c43);
row_major float4x4 k_mObjectToClip : packoffset(c46);
row_major float3x4 k_mObjectToView : packoffset(c50);
row_major float3x4 k_mObjectToWorld : packoffset(c53);
float4 k_vObjectColor : packoffset(c56);
float3 k_vObjectSpaceEyePos : packoffset(c57);
row_major float4x4 k_mPrevObjectToClip : packoffset(c58);
row_major float3x4 k_mPrevObjectToView : packoffset(c62);
row_major float3x4 k_mPrevObjectToWorld : packoffset(c65);
float k_fDiffuseAlpha : packoffset(c68) = float(1.000000e+000);
float k_fMaxSpecularPower : packoffset(c68.y) = float(6.400000e+001);
float k_fSpecularScale : packoffset(c68.z) = float(1.000000e+000);
float k_fFresnelTerm : packoffset(c68.w) = float(1.000000e+000);
int k_bRendersEmissive : packoffset(c69) = int(1.401298e-045);
}
SamplerState sPoint_CLAMPCLAMPCLAMP_Sampler_s : register(s0);
SamplerState sAniso4X_WRAPWRAPCLAMP_Sampler_s : register(s1);
SamplerState sAniso8X_WRAPWRAPCLAMP_Sampler_s : register(s2);
Texture2D<float4> tDepthMap : register(t0);
Texture2D<float4> tNormalMap : register(t1);
Texture2D<float4> tDiffuseMap : register(t2);

Texture2D<float4> StereoParams : register(t125);

void main(
float4 v0 : SV_POSITION0,
float4 v1 : TEXCOORD0,
float2 v2 : TEXCOORD1,
float4 v4 : TEXCOORD3,
out float4 o0 : SV_Target0,
out float4 o1 : SV_Target1,
out float4 o2 : SV_Target2,
out float4 o3 : SV_Target3)
{
float4 r0,r1,r2;
uint4 bitmask;
o0.xyzw = float4(0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000);
r0.xy = v2.xy / v1.ww;
r0.zw = v1.xy / v1.ww;
r1.z = tDepthMap.Sample(sPoint_CLAMPCLAMPCLAMP_Sampler_s, r0.zw).x;
r1.xy = r1.zz * r0.xy;

float4 stereo = StereoParams.Load(0);
r1.x -= stereo.x * (r1.z - stereo.y)*v4.z/2;

r1.w = 1.000000000e+000;
r0.x = dot(k_mDirectional_ObjectToTex._m00_m01_m02_m03, r1.xyzw);
r0.y = dot(k_mDirectional_ObjectToTex._m10_m11_m12_m13, r1.xyzw);
r0.zw = tNormalMap.Sample(sAniso4X_WRAPWRAPCLAMP_Sampler_s, r0.xy).yw;
r1.xyzw = tDiffuseMap.Sample(sAniso8X_WRAPWRAPCLAMP_Sampler_s, r0.xy).xyzw;
r0.xy = r0.zw * float2(2.000000e+000,2.000000e+000) + float2(-1.000000e+000,-1.000000e+000);
r0.w = -r0.x * r0.x + 1.000000000e+000;
r0.w = -r0.y * r0.y + r0.w;
r0.w = sqrt(r0.w);
r0.z = -r0.w;
r2.x = dot(k_mObjectToWorld._m00_m01_m02, r0.xyz);
r2.y = dot(k_mObjectToWorld._m10_m11_m12, r0.xyz);
r2.z = dot(k_mObjectToWorld._m20_m21_m22, r0.xyz);
r0.x = dot(r2.xyz, r2.xyz);
r0.x = rsqrt(r0.x);
r0.xyz = r2.xyz * r0.xxx;
o1.xyz = r0.xyz * float3(5.000000e-001,5.000000e-001,5.000000e-001) + float3(5.000000e-001,5.000000e-001,5.000000e-001);
r0.x = k_fDiffuseAlpha * r1.w;
o2.xyz = k_vObjectColor.xyz * r1.xyz;
r0.x = k_vObjectColor.w * r0.x;
o1.w = r0.x;
o2.w = r0.x;
o3.w = r0.x;
o3.xyz = k_fMaxSpecularPower;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.20546
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
// float k_fInvLightRadius; // Offset: 0 Size: 4 [unused]
// row_major float3x4 k_mCubeProjector_LightTransform;// Offset: 16 Size: 48 [unused]
// row_major float3x4 k_mDirectional_ObjectToTex;// Offset: 64 Size: 48
// row_major float4x4 k_mSpotProjector_LightTransform;// Offset: 112 Size: 64 [unused]
// float4 k_vSpotProjector_TanXYRadiusZW;// Offset: 176 Size: 16 [unused]
// row_major float3x4 k_mWorldToVolume;// Offset: 192 Size: 48 [unused]
// float3 k_vDirectional_Dir; // Offset: 240 Size: 12 [unused]
// float4 k_vObjectLightColor; // Offset: 256 Size: 16 [unused]
// float3 k_vObjectSpaceLightPos; // Offset: 272 Size: 12 [unused]
// float4 k_vSpecularColor; // Offset: 288 Size: 16 [unused]
// float4 k_vSpotProjector_ClipFar; // Offset: 304 Size: 16 [unused]
// float4 k_vSpotProjector_ClipNear; // Offset: 320 Size: 16 [unused]
// float3 k_vHalfDims; // Offset: 336 Size: 12 [unused]
// float4 k_vShadowMapParams; // Offset: 352 Size: 16 [unused]
// float4 k_vShadowMapParams2; // Offset: 368 Size: 16 [unused]
// row_major float4x4 k_mShadowMapMatrix;// Offset: 384 Size: 64 [unused]
// float4 k_vShadowCascadeOffsetX; // Offset: 448 Size: 16 [unused]
// float4 k_vShadowCascadeOffsetZ; // Offset: 464 Size: 16 [unused]
// float k_fStaticLightVolume_Mip; // Offset: 480 Size: 4 [unused]
// float4 k_vShadowSplitDistSquared; // Offset: 496 Size: 16 [unused]
// float4 k_vShadowSplitDistSelect; // Offset: 512 Size: 16 [unused]
// float4 k_vShadowMoveX; // Offset: 528 Size: 16 [unused]
// float4 k_vShadowMoveY; // Offset: 544 Size: 16 [unused]
// float4 k_vShadowMoveZ; // Offset: 560 Size: 16 [unused]
// float4 k_vShadowScaleXY; // Offset: 576 Size: 16 [unused]
// float4 k_vShadowScaleX; // Offset: 592 Size: 16 [unused]
// float4 k_vShadowScaleY; // Offset: 608 Size: 16 [unused]
// float4 k_vShadowScaleZ; // Offset: 624 Size: 16 [unused]
// float3 k_vLightBleed_Offset; // Offset: 640 Size: 12 [unused]
// float4 k_vStaticLightVolume_PivotContrast;// Offset: 656 Size: 16 [unused]
// float k_fLightLayer; // Offset: 672 Size: 4 [unused]
// row_major float3x4 k_mViewToLight; // Offset: 688 Size: 48 [unused]
// row_major float4x4 k_mObjectToClip;// Offset: 736 Size: 64 [unused]
// row_major float3x4 k_mObjectToView;// Offset: 800 Size: 48 [unused]
// row_major float3x4 k_mObjectToWorld;// Offset: 848 Size: 48
// float4 k_vObjectColor; // Offset: 896 Size: 16
// float3 k_vObjectSpaceEyePos; // Offset: 912 Size: 12 [unused]
// row_major float4x4 k_mPrevObjectToClip;// Offset: 928 Size: 64 [unused]
// row_major float3x4 k_mPrevObjectToView;// Offset: 992 Size: 48 [unused]
// row_major float3x4 k_mPrevObjectToWorld;// Offset: 1040 Size: 48 [unused]
// float k_fDiffuseAlpha; // Offset: 1088 Size: 4
// = 0x3f800000
// float k_fMaxSpecularPower; // Offset: 1092 Size: 4
// = 0x42800000
// float k_fSpecularScale; // Offset: 1096 Size: 4
// = 0x3f800000
// float k_fFresnelTerm; // Offset: 1100 Size: 4
// = 0x3f800000
// int k_bRendersEmissive; // Offset: 1104 Size: 4 [unused]
// = 0x00000001
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// sPoint_CLAMPCLAMPCLAMP_Sampler sampler NA NA 0 1
// sAniso4X_WRAPWRAPCLAMP_Sampler sampler NA NA 1 1
// sAniso8X_WRAPWRAPCLAMP_Sampler sampler NA NA 2 1
// tDepthMap texture float4 2d 0 1
// tNormalMap texture float4 2d 1 1
// tDiffuseMap texture float4 2d 2 1
// $Globals cbuffer NA NA 0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float
// TEXCOORD 0 xyzw 1 NONE float xy w
// TEXCOORD 1 xy 2 NONE float xy
//
//
// 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_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[69], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_input_ps linear v1.xyw
dcl_input_ps linear v2.xy
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_temps 3
mov o0.xyzw, l(0,0,0,0)
div r0.xy, v2.xyxx, v1.wwww
div r0.zw, v1.xxxy, v1.wwww
sample_indexable(texture2d)(float,float,float,float) r1.z, r0.zwzz, t0.yzxw, s0
mul r1.xy, r0.xyxx, r1.zzzz
mov r1.w, l(1.000000)
dp4 r0.x, cb0[4].xyzw, r1.xyzw
dp4 r0.y, cb0[5].xyzw, r1.xyzw
sample_indexable(texture2d)(float,float,float,float) r0.zw, r0.xyxx, t1.xzyw, s1
sample_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyxx, t2.xyzw, s2
mad r0.xy, r0.zwzz, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
mad r0.w, -r0.x, r0.x, l(1.000000)
mad r0.w, -r0.y, r0.y, r0.w
sqrt r0.w, r0.w
mov r0.z, -r0.w
dp3 r2.x, cb0[53].xyzx, r0.xyzx
dp3 r2.y, cb0[54].xyzx, r0.xyzx
dp3 r2.z, cb0[55].xyzx, r0.xyzx
dp3 r0.x, r2.xyzx, r2.xyzx
rsq r0.x, r0.x
mul r0.xyz, r0.xxxx, r2.xyzx
mad o1.xyz, r0.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
mul r0.x, r1.w, cb0[68].x
mul o2.xyz, r1.xyzx, cb0[56].xyzx
mul r0.x, r0.x, cb0[56].w
mov o1.w, r0.x
mov o2.w, r0.x
mov o3.w, r0.x
mov o3.xyz, cb0[68].yzwy
ret
// Approximately 30 instruction slots used
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Loading

0 comments on commit 98f1c8c

Please sign in to comment.