// ---- Created with 3Dmigoto v1.2.18 on Mon Dec 28 23:06:31 2015 cbuffer _Globals : register(b0) { float4x4 LocalToWorld : packoffset(c0); float4x4 InvViewProjectionMatrix : packoffset(c4); float3 CameraWorldPos : packoffset(c8); float4 ObjectWorldPositionAndRadius : packoffset(c9); float3 ObjectOrientation : packoffset(c10); float3 ObjectPostProjectionPosition : packoffset(c11); float3 ObjectNDCPosition : packoffset(c12); float4 ObjectMacroUVScales : packoffset(c13); float3 FoliageImpulseDirection : packoffset(c14); float4 FoliageNormalizedRotationAxisAndAngle : packoffset(c15); float4 WindDirectionAndSpeed : packoffset(c16); float3 CameraWorldDirection : packoffset(c17) = float3(1,0,0); float4 ObjectOriginAndPrimitiveID : packoffset(c18) = float4(0,0,0,0); float3x3 LocalToWorldMatrix : packoffset(c19); float3x3 WorldToLocalMatrix : packoffset(c22); float3x3 WorldToViewMatrix : packoffset(c25); float3x3 ViewToWorldMatrix : packoffset(c28); float4x4 WorldToFloatingSectionMatrix : packoffset(c31); float4 UniformPixelVector_0 : packoffset(c35); float4 UniformPixelVector_1 : packoffset(c36); float4 UniformPixelVector_2 : packoffset(c37); float4 UniformPixelVector_3 : packoffset(c38); float4 UniformPixelVector_4 : packoffset(c39); float4 UniformPixelVector_5 : packoffset(c40); float4 UniformPixelVector_6 : packoffset(c41); float4 UniformPixelVector_7 : packoffset(c42); float4 UniformPixelVector_8 : packoffset(c43); float4 UniformPixelScalars_0 : packoffset(c44); float4 UniformVertexScalars_0 : packoffset(c45); float4x3 WorldToLocal : packoffset(c46); float3 MeshOrigin : packoffset(c49); float3 MeshExtension : packoffset(c50); float4x4 PositionToPreshadowUVW : packoffset(c51); float3 PreshadowUVWScale : packoffset(c55); float3 PreshadowUVWBias : packoffset(c56); float4 BaseVolumePreShadow : packoffset(c57); } cbuffer VSOffsetConstants : register(b1) { float4x4 ViewProjectionMatrix : packoffset(c0); float4 PreViewTranslationAndViewOriginW : packoffset(c4); } cbuffer VSBoneConstants : register(b3) { float4x3 BoneMatrices[70] : packoffset(c0); } // 3Dmigoto declarations #define cmp - Texture1D IniParams : register(t120); Texture2D StereoParams : register(t125); void main( float4 v0 : POSITION0, float3 v1 : TANGENT0, float4 v2 : NORMAL0, uint4 v3 : BLENDINDICES0, float4 v4 : BLENDWEIGHT0, float4 v5 : TEXCOORD0, float2 v6 : TEXCOORD1, float4 v7 : COLOR0, out float4 o0 : TEXCOORD4, out float4 o1 : TEXCOORD8, out float4 o2 : TEXCOORD0, out float4 o3 : TEXCOORD1, out float4 o4 : TEXCOORD7, out float4 o5 : SV_Position0) { float4 r0,r1,r2,r3,r4,r5; uint4 bitmask, uiDest; float4 fDest; r0.xyz = v1.xyz * float3(2,2,2) + float3(-1,-1,-1); r1.xyzw = (int4)v3.xyzw * int4(3,3,3,3); r2.xyzw = BoneMatrices[v3.y]._m00_m10_m20_m30 * v4.yyyy; r2.xyzw = v4.xxxx * BoneMatrices[v3.x]._m00_m10_m20_m30 + r2.xyzw; r2.xyzw = v4.zzzz * BoneMatrices[v3.z]._m00_m10_m20_m30 + r2.xyzw; r2.xyzw = v4.wwww * BoneMatrices[v3.w]._m00_m10_m20_m30 + r2.xyzw; r3.z = dot(r0.xyz, r2.xyz); r4.xyzw = BoneMatrices[v3.y]._m01_m11_m21_m31 * v4.yyyy; r4.xyzw = v4.xxxx * BoneMatrices[v3.x]._m01_m11_m21_m31 + r4.xyzw; r4.xyzw = v4.zzzz * BoneMatrices[v3.z]._m01_m11_m21_m31 + r4.xyzw; r4.xyzw = v4.wwww * BoneMatrices[v3.w]._m01_m11_m21_m31 + r4.xyzw; r3.x = dot(r0.xyz, r4.xyz); r5.xyzw = BoneMatrices[v3.y]._m02_m12_m22_m32 * v4.yyyy; r5.xyzw = v4.xxxx * BoneMatrices[v3.x]._m02_m12_m22_m32 + r5.xyzw; r5.xyzw = v4.zzzz * BoneMatrices[v3.z]._m02_m12_m22_m32 + r5.xyzw; r1.xyzw = v4.wwww * BoneMatrices[v3.w]._m02_m12_m22_m32 + r5.xyzw; r3.y = dot(r0.xyz, r1.xyz); r0.xyzw = v2.xyzw * float4(2,2,2,2) + float4(-1,-1,-1,-1); r5.y = dot(r0.xyz, r2.xyz); r5.z = dot(r0.xyz, r4.xyz); r5.x = dot(r0.xyz, r1.xyz); r0.xyz = r5.xyz * r3.xyz; r0.xyz = r5.zxy * r3.yzx + -r0.xyz; r3.xw = LocalToWorld._m01_m21 * r3.xx; r3.xz = LocalToWorld._m00_m20 * r3.zz + r3.xw; r3.xy = LocalToWorld._m02_m22 * r3.yy + r3.xz; r5.zw = LocalToWorld._m01_m21 * r5.zz; r5.yz = LocalToWorld._m00_m20 * r5.yy + r5.zw; r5.xy = LocalToWorld._m02_m22 * r5.xx + r5.yz; r0.xyz = r0.xyz * r0.www; o1.w = WorldToLocal._m30 * r0.w; r0.yw = LocalToWorld._m01_m21 * r0.yy; r0.xy = LocalToWorld._m00_m20 * r0.xx + r0.yw; r0.xy = LocalToWorld._m02_m22 * r0.zz + r0.xy; r3.z = r0.x; r3.w = r5.x; r0.w = r5.y; r0.x = dot(r3.xzw, r3.xzw); r0.x = rsqrt(r0.x); o0.xyz = r3.xzw * r0.xxx; r0.z = r3.y; r0.x = dot(r0.yzw, r0.yzw); r0.x = rsqrt(r0.x); o1.xyz = r0.zyw * r0.xxx; o2.xy = UniformVertexScalars_0.xy * v5.xy; o2.zw = v6.yx; r0.xyz = v0.xyz * MeshExtension.xyz + MeshOrigin.xyz; r0.w = 1; r3.x = dot(r0.xyzw, r4.xyzw); r3.yzw = LocalToWorld._m01_m11_m21 * r3.xxx; r4.xyzw = LocalToWorld._m01_m11_m21_m31 * r3.xxxx; r2.x = dot(r0.xyzw, r2.xyzw); r0.x = dot(r0.xyzw, r1.xyzw); r0.yzw = LocalToWorld._m00_m10_m20 * r2.xxx + r3.yzw; r1.xyzw = LocalToWorld._m00_m10_m20_m30 * r2.xxxx + r4.xyzw; r1.xyzw = LocalToWorld._m02_m12_m22_m32 * r0.xxxx + r1.xyzw; r0.xyz = LocalToWorld._m02_m12_m22 * r0.xxx + r0.yzw; r0.xyz = LocalToWorld._m03_m13_m23 + r0.xyz; r0.xyz = -PreViewTranslationAndViewOriginW.xyz + r0.xyz; r1.xyzw = LocalToWorld._m03_m13_m23_m33 + r1.xyzw; r0.y = WorldToLocalMatrix._m01 * r0.y; r0.x = WorldToLocalMatrix._m00 * r0.x + r0.y; r0.x = WorldToLocalMatrix._m02 * r0.z + r0.x; r0.y = WorldToLocalMatrix._m01 * ObjectWorldPositionAndRadius.y; r0.y = WorldToLocalMatrix._m00 * ObjectWorldPositionAndRadius.x + r0.y; r0.y = WorldToLocalMatrix._m02 * ObjectWorldPositionAndRadius.z + r0.y; r0.y = -100 + r0.y; r0.x = r0.x + -r0.y; r0.y = 0.00249999994 * ObjectWorldPositionAndRadius.w; r0.x = r0.x * 0.00300000003 + r0.y; r0.y = log2(abs(r0.x)); r0.x = cmp(abs(r0.x) < 9.99999997e-007); r0.y = UniformVertexScalars_0.z * r0.y; r0.y = exp2(r0.y); r0.x = r0.x ? 0 : r0.y; r0.x = r0.x * r0.x; r0.x = 5 * r0.x; o3.xyzw = min(float4(1,1,1,1), r0.xxxx); r0.xyz = PositionToPreshadowUVW._m01_m11_m21 * r1.yyy; r0.xyz = PositionToPreshadowUVW._m00_m10_m20 * r1.xxx + r0.xyz; r0.xyz = PositionToPreshadowUVW._m02_m12_m22 * r1.zzz + r0.xyz; r0.xyz = PositionToPreshadowUVW._m03_m13_m23 + r0.xyz; r2.xyz = float3(-0.5,-0.5,-0.5) + r0.xyz; o4.xyz = r0.xyz * PreshadowUVWScale.xyz + PreshadowUVWBias.xyz; r0.xyz = max(float3(-0.400000006,-0.400000006,-0.400000006), r2.xyz); r0.xyz = min(float3(0.400000006,0.400000006,0.400000006), r0.xyz); r0.xyz = r0.xyz + -r2.xyz; r0.x = dot(r0.xyz, r0.xyz); o4.w = 100 * r0.x; r0.xyzw = ViewProjectionMatrix._m01_m11_m21_m31 * r1.yyyy; r0.xyzw = ViewProjectionMatrix._m00_m10_m20_m30 * r1.xxxx + r0.xyzw; r0.xyzw = ViewProjectionMatrix._m02_m12_m22_m32 * r1.zzzz + r0.xyzw; o5.xyzw = ViewProjectionMatrix._m03_m13_m23_m33 * r1.wwww + r0.xyzw; // o0=0; // o1=0; // o2=0; // o3=0; // o4=0; o5=0; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // using 3Dmigoto v1.2.18 on Mon Dec 28 23:06:31 2015 // // // Buffer Definitions: // // cbuffer $Globals // { // // float4x4 LocalToWorld; // Offset: 0 Size: 64 // float4x4 InvViewProjectionMatrix; // Offset: 64 Size: 64 [unused] // float3 CameraWorldPos; // Offset: 128 Size: 12 [unused] // float4 ObjectWorldPositionAndRadius;// Offset: 144 Size: 16 // float3 ObjectOrientation; // Offset: 160 Size: 12 [unused] // float3 ObjectPostProjectionPosition;// Offset: 176 Size: 12 [unused] // float3 ObjectNDCPosition; // Offset: 192 Size: 12 [unused] // float4 ObjectMacroUVScales; // Offset: 208 Size: 16 [unused] // float3 FoliageImpulseDirection; // Offset: 224 Size: 12 [unused] // float4 FoliageNormalizedRotationAxisAndAngle;// Offset: 240 Size: 16 [unused] // float4 WindDirectionAndSpeed; // Offset: 256 Size: 16 [unused] // float3 CameraWorldDirection; // Offset: 272 Size: 12 [unused] // = 0x3f800000 0x00000000 0x00000000 // float4 ObjectOriginAndPrimitiveID; // Offset: 288 Size: 16 [unused] // = 0x00000000 0x00000000 0x00000000 0x00000000 // float3x3 LocalToWorldMatrix; // Offset: 304 Size: 44 [unused] // float3x3 WorldToLocalMatrix; // Offset: 352 Size: 44 // float3x3 WorldToViewMatrix; // Offset: 400 Size: 44 [unused] // float3x3 ViewToWorldMatrix; // Offset: 448 Size: 44 [unused] // float4x4 WorldToFloatingSectionMatrix;// Offset: 496 Size: 64 [unused] // float4 UniformPixelVector_0; // Offset: 560 Size: 16 [unused] // float4 UniformPixelVector_1; // Offset: 576 Size: 16 [unused] // float4 UniformPixelVector_2; // Offset: 592 Size: 16 [unused] // float4 UniformPixelVector_3; // Offset: 608 Size: 16 [unused] // float4 UniformPixelVector_4; // Offset: 624 Size: 16 [unused] // float4 UniformPixelVector_5; // Offset: 640 Size: 16 [unused] // float4 UniformPixelVector_6; // Offset: 656 Size: 16 [unused] // float4 UniformPixelVector_7; // Offset: 672 Size: 16 [unused] // float4 UniformPixelVector_8; // Offset: 688 Size: 16 [unused] // float4 UniformPixelScalars_0; // Offset: 704 Size: 16 [unused] // float4 UniformVertexScalars_0; // Offset: 720 Size: 16 // float4x3 WorldToLocal; // Offset: 736 Size: 48 // float3 MeshOrigin; // Offset: 784 Size: 12 // float3 MeshExtension; // Offset: 800 Size: 12 // float4x4 PositionToPreshadowUVW; // Offset: 816 Size: 64 // float3 PreshadowUVWScale; // Offset: 880 Size: 12 // float3 PreshadowUVWBias; // Offset: 896 Size: 12 // float4 BaseVolumePreShadow; // Offset: 912 Size: 16 [unused] // // } // // cbuffer VSOffsetConstants // { // // float4x4 ViewProjectionMatrix; // Offset: 0 Size: 64 // float4 PreViewTranslationAndViewOriginW;// Offset: 64 Size: 16 // // } // // cbuffer VSBoneConstants // { // // float4x3 BoneMatrices[70]; // Offset: 0 Size: 3360 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // $Globals cbuffer NA NA 0 1 // VSOffsetConstants cbuffer NA NA 1 1 // VSBoneConstants cbuffer NA NA 3 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // POSITION 0 xyzw 0 NONE float xyz // TANGENT 0 xyz 1 NONE float xyz // NORMAL 0 xyzw 2 NONE float xyzw // BLENDINDICES 0 xyzw 3 NONE uint xyzw // BLENDWEIGHT 0 xyzw 4 NONE float xyzw // TEXCOORD 0 xy 5 NONE float xy // TEXCOORD 1 xy 6 NONE float xy // COLOR 0 xyzw 7 NONE float // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // TEXCOORD 4 xyz 0 NONE float xyz // TEXCOORD 8 xyzw 1 NONE float xyzw // TEXCOORD 0 xyzw 2 NONE float xyzw // TEXCOORD 1 xyzw 3 NONE float xyzw // TEXCOORD 7 xyzw 4 NONE float xyzw // SV_Position 0 xyzw 5 POS float xyzw // vs_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[57], immediateIndexed dcl_constantbuffer cb1[5], immediateIndexed dcl_constantbuffer cb3[210], dynamicIndexed dcl_input v0.xyz dcl_input v1.xyz dcl_input v2.xyzw dcl_input v3.xyzw dcl_input v4.xyzw dcl_input v5.xy dcl_input v6.xy dcl_output o0.xyz dcl_output o1.xyzw dcl_output o2.xyzw dcl_output o3.xyzw dcl_output o4.xyzw dcl_output_siv o5.xyzw, position dcl_temps 6 mad r0.xyz, v1.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) imul null, r1.xyzw, v3.xyzw, l(3, 3, 3, 3) mul r2.xyzw, v4.yyyy, cb3[r1.y + 0].xyzw mad r2.xyzw, v4.xxxx, cb3[r1.x + 0].xyzw, r2.xyzw mad r2.xyzw, v4.zzzz, cb3[r1.z + 0].xyzw, r2.xyzw mad r2.xyzw, v4.wwww, cb3[r1.w + 0].xyzw, r2.xyzw dp3 r3.z, r0.xyzx, r2.xyzx mul r4.xyzw, v4.yyyy, cb3[r1.y + 1].xyzw mad r4.xyzw, v4.xxxx, cb3[r1.x + 1].xyzw, r4.xyzw mad r4.xyzw, v4.zzzz, cb3[r1.z + 1].xyzw, r4.xyzw mad r4.xyzw, v4.wwww, cb3[r1.w + 1].xyzw, r4.xyzw dp3 r3.x, r0.xyzx, r4.xyzx mul r5.xyzw, v4.yyyy, cb3[r1.y + 2].xyzw mad r5.xyzw, v4.xxxx, cb3[r1.x + 2].xyzw, r5.xyzw mad r5.xyzw, v4.zzzz, cb3[r1.z + 2].xyzw, r5.xyzw mad r1.xyzw, v4.wwww, cb3[r1.w + 2].xyzw, r5.xyzw dp3 r3.y, r0.xyzx, r1.xyzx mad r0.xyzw, v2.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(-1.000000, -1.000000, -1.000000, -1.000000) dp3 r5.y, r0.xyzx, r2.xyzx dp3 r5.z, r0.xyzx, r4.xyzx dp3 r5.x, r0.xyzx, r1.xyzx mul r0.xyz, r3.xyzx, r5.xyzx mad r0.xyz, r5.zxyz, r3.yzxy, -r0.xyzx mul r3.xw, r3.xxxx, cb0[1].xxxz mad r3.xz, cb0[0].xxzx, r3.zzzz, r3.xxwx mad r3.xy, cb0[2].xzxx, r3.yyyy, r3.xzxx mul r5.zw, r5.zzzz, cb0[1].xxxz mad r5.yz, cb0[0].xxzx, r5.yyyy, r5.zzwz mad r5.xy, cb0[2].xzxx, r5.xxxx, r5.yzyy mul r0.xyz, r0.wwww, r0.xyzx mul o1.w, r0.w, cb0[46].w mul r0.yw, r0.yyyy, cb0[1].xxxz mad r0.xy, cb0[0].xzxx, r0.xxxx, r0.ywyy mad r0.xy, cb0[2].xzxx, r0.zzzz, r0.xyxx mov r3.z, r0.x mov r3.w, r5.x mov r0.w, r5.y dp3 r0.x, r3.xzwx, r3.xzwx rsq r0.x, r0.x mul o0.xyz, r0.xxxx, r3.xzwx mov r0.z, r3.y dp3 r0.x, r0.yzwy, r0.yzwy rsq r0.x, r0.x mul o1.xyz, r0.xxxx, r0.zywz mul o2.xy, v5.xyxx, cb0[45].xyxx mov o2.zw, v6.yyyx mad r0.xyz, v0.xyzx, cb0[50].xyzx, cb0[49].xyzx mov r0.w, l(1.000000) dp4 r3.x, r0.xyzw, r4.xyzw mul r3.yzw, r3.xxxx, cb0[1].xxyz mul r4.xyzw, r3.xxxx, cb0[1].xyzw dp4 r2.x, r0.xyzw, r2.xyzw dp4 r0.x, r0.xyzw, r1.xyzw mad r0.yzw, cb0[0].xxyz, r2.xxxx, r3.yyzw mad r1.xyzw, cb0[0].xyzw, r2.xxxx, r4.xyzw mad r1.xyzw, cb0[2].xyzw, r0.xxxx, r1.xyzw mad r0.xyz, cb0[2].xyzx, r0.xxxx, r0.yzwy add r0.xyz, r0.xyzx, cb0[3].xyzx add r0.xyz, r0.xyzx, -cb1[4].xyzx add r1.xyzw, r1.xyzw, cb0[3].xyzw mul r0.y, r0.y, cb0[23].x mad r0.x, cb0[22].x, r0.x, r0.y mad r0.x, cb0[24].x, r0.z, r0.x mul r0.y, cb0[9].y, cb0[23].x mad r0.y, cb0[22].x, cb0[9].x, r0.y mad r0.y, cb0[24].x, cb0[9].z, r0.y add r0.y, r0.y, l(-100.000000) add r0.x, -r0.y, r0.x mul r0.y, cb0[9].w, l(0.002500) mad r0.x, r0.x, l(0.003000), r0.y log r0.y, |r0.x| lt r0.x, |r0.x|, l(0.000001) mul r0.y, r0.y, cb0[45].z exp r0.y, r0.y movc r0.x, r0.x, l(0), r0.y mul r0.x, r0.x, r0.x mul r0.x, r0.x, l(5.000000) min o3.xyzw, r0.xxxx, l(1.000000, 1.000000, 1.000000, 1.000000) mul r0.xyz, r1.yyyy, cb0[52].xyzx mad r0.xyz, cb0[51].xyzx, r1.xxxx, r0.xyzx mad r0.xyz, cb0[53].xyzx, r1.zzzz, r0.xyzx add r0.xyz, r0.xyzx, cb0[54].xyzx add r2.xyz, r0.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000) mad o4.xyz, r0.xyzx, cb0[55].xyzx, cb0[56].xyzx max r0.xyz, r2.xyzx, l(-0.400000, -0.400000, -0.400000, 0.000000) min r0.xyz, r0.xyzx, l(0.400000, 0.400000, 0.400000, 0.000000) add r0.xyz, -r2.xyzx, r0.xyzx dp3 r0.x, r0.xyzx, r0.xyzx mul o4.w, r0.x, l(100.000000) mul r0.xyzw, r1.yyyy, cb1[1].xyzw mad r0.xyzw, cb1[0].xyzw, r1.xxxx, r0.xyzw mad r0.xyzw, cb1[2].xyzw, r1.zzzz, r0.xyzw mad o5.xyzw, cb1[3].xyzw, r1.wwww, r0.xyzw ret // Approximately 94 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/