Please help with screen depth light in Black the Fall (already fixed)
[s]Hi, I've fixed shadows, halos, crosshair and lights but this red light beam is going me crazy. This light is at screen depth and I don't know how to fix it.[/s] VS [code]// red light beams // hlsltool.py --install-to c:\py\1 --auto-fix-vertex-halo --only-autofixed --no-validate --ignore-other-errors 45b0db6397be922c-vs_replace.txt // ---- Created with 3Dmigoto v1.2.62 on Sun Jul 16 13:11:39 2017 cbuffer cb2 : register(b2) { float4 cb2[16]; } cbuffer cb1 : register(b1) { float4 cb1[6]; } cbuffer cb0 : register(b0) { float4 cb0[20]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : POSITION0, out float4 o0 : SV_POSITION0, out float4 o1 : TEXCOORD0, out float3 o2 : TEXCOORD1) { float4 r0,r1; uint4 bitmask, uiDest; float4 fDest; float4 stereo = StereoParams.Load(0); float separation = stereo.x, convergence = stereo.y, eye = stereo.z; r0.xyzw = cb0[17].xyzw * v0.yyyy; r0.xyzw = cb0[16].xyzw * v0.xxxx + r0.xyzw; r0.xyzw = cb0[18].xyzw * v0.zzzz + r0.xyzw; r0.xyzw = cb0[19].xyzw * v0.wwww + r0.xyzw; o0.xyzw = r0.xyzw; // Automatic vertex shader halo fix inserted with DarkStarSword's hlsltool.py: // hlsltool.py --install-to c:\py\1 --auto-fix-vertex-halo --only-autofixed --no-validate --ignore-other-errors 45b0db6397be922c-vs_replace.txt //if (r0.w != 1.0) { r0.x += separation * (r0.w - convergence); } r1.xyz = float3(0.5,0.5,0.5) * r0.xyw; o1.zw = r0.zw; r1.w = cb1[5].x * r1.y; o1.xy = r1.xw + r1.zz; r0.xyz = cb2[13].xyz * v0.yyy; r0.xyz = cb2[12].xyz * v0.xxx + r0.xyz; r0.xyz = cb2[14].xyz * v0.zzz + r0.xyz; o2.xyz = cb2[15].xyz * v0.www + r0.xyz; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Original ASM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // POSITION 0 xyzw 0 NONE float xyzw // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float xyzw // TEXCOORD 0 xyzw 1 NONE float xyzw // TEXCOORD 1 xyz 2 NONE float xyz // vs_4_0 dcl_constantbuffer cb0[20], immediateIndexed dcl_constantbuffer cb1[6], immediateIndexed dcl_constantbuffer cb2[16], immediateIndexed dcl_input v0.xyzw dcl_output_siv o0.xyzw, position dcl_output o1.xyzw dcl_output o2.xyz dcl_temps 2 mul r0.xyzw, v0.yyyy, cb0[17].xyzw mad r0.xyzw, cb0[16].xyzw, v0.xxxx, r0.xyzw mad r0.xyzw, cb0[18].xyzw, v0.zzzz, r0.xyzw mad r0.xyzw, cb0[19].xyzw, v0.wwww, r0.xyzw mov o0.xyzw, r0.xyzw mul r1.xyz, r0.xywx, l(0.500000, 0.500000, 0.500000, 0.000000) mov o1.zw, r0.zzzw mul r1.w, r1.y, cb1[5].x add o1.xy, r1.zzzz, r1.xwxx mul r0.xyz, v0.yyyy, cb2[13].xyzx mad r0.xyz, cb2[12].xyzx, v0.xxxx, r0.xyzx mad r0.xyz, cb2[14].xyzx, v0.zzzz, r0.xyzx mad o2.xyz, cb2[15].xyzx, v0.wwww, r0.xyzx ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] PS [code]// red light // ---- Created with 3Dmigoto v1.2.62 on Sun Jul 16 13:39:50 2017 Texture2D<float4> t4 : register(t4); Texture2D<float4> t3 : register(t3); Texture2D<float4> t2 : register(t2); Texture2D<float4> t1 : register(t1); Texture2D<float4> t0 : register(t0); SamplerState s4_s : register(s4); SamplerState s3_s : register(s3); SamplerState s2_s : register(s2); SamplerState s1_s : register(s1); SamplerState s0_s : register(s0); cbuffer cb1 : register(b1) { float4 cb1[8]; } cbuffer cb0 : register(b0) { float4 cb0[38]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : SV_POSITION0, float4 v1 : TEXCOORD0, float3 v2 : TEXCOORD1, out float4 o0 : SV_Target0) { float4 r0,r1,r2,r3,r4,r5,r6; uint4 bitmask, uiDest; float4 fDest; r0.xy = v1.xy / v1.ww; r0.xyzw = t0.Sample(s0_s, r0.xy).xyzw; r0.yzw = -cb1[4].xyz + v2.xyz; r1.x = dot(r0.yzw, r0.yzw); r1.x = sqrt(r1.x); r0.yzw = r0.yzw / r1.xxx; r1.yzw = r0.yzw * float3(0.00100000005,0.00100000005,0.00100000005) + v2.xyz; r2.x = dot(cb0[35].xyz, r0.yzw); r2.y = dot(cb0[35].xyz, r1.yzw); r2.y = cb0[37].x + r2.y; r2.y = -r2.y / r2.x; r2.z = cmp(r2.y < 0); r2.y = r2.z ? 100000 : r2.y; r1.yzw = -cb0[36].xyz + r1.yzw; r2.z = dot(r0.yzw, r0.yzw); r2.w = dot(r1.yzw, cb0[35].xyz); r3.x = dot(r1.yzw, r0.yzw); r1.y = dot(r1.yzw, r1.yzw); r1.z = cb0[34].z * cb0[34].z; r1.w = r2.z * r1.z; r1.w = r2.x * r2.x + -r1.w; r2.z = r3.x * r1.z; r2.z = r2.w * r2.x + -r2.z; r2.z = r2.z + r2.z; r1.y = r1.y * r1.z; r1.y = r2.w * r2.w + -r1.y; r1.y = r1.y * r1.w; r1.y = 4 * r1.y; r1.y = r2.z * r2.z + -r1.y; r1.z = cmp(0 < r1.y); r3.y = sqrt(r1.y); r1.y = cmp(0 < r1.w); r3.z = cmp(r1.w < 0); r1.y = (int)-r1.y + (int)r3.z; r1.y = (int)r1.y; r3.x = -r3.y; r3.xy = r1.yy * r3.xy + -r2.zz; r1.y = r1.w + r1.w; r1.yw = r3.xy / r1.yy; r2.xz = r2.xx * r1.yw + r2.ww; r2.xz = cmp(float2(0,0) < r2.xz); r3.xy = cmp(float2(0,0) < r1.yw); r2.xz = r2.xz ? r3.xy : 0; r3.xy = r2.xz ? float2(1,1) : 0; r2.xz = r2.xz ? float2(0,0) : float2(10000,10000); r1.yw = r1.yw * r3.xy + r2.xz; r1.yz = r1.zz ? r1.yw : float2(10000,10000); r0.x = cb1[7].z * r0.x + cb1[7].w; r0.x = 1 / r0.x; r1.w = dot(cb0[28].xyz, r0.yzw); r0.x = r0.x / r1.w; r0.x = r0.x + -r1.x; r1.x = min(r1.y, r1.z); r1.x = min(r2.y, r1.x); r0.x = min(r1.x, r0.x); r1.xy = v0.xy / cb0[11].zw; r1.z = dot(cb1[0].xy, float2(12.9898005,78.2330017)); r1.z = sin(r1.z); r1.z = 43758.5469 * r1.z; r1.z = frac(r1.z); r1.xy = r1.xy + r1.zz; r1.xyzw = t1.Sample(s3_s, r1.xy).xyzw; r1.x = r1.x * 2 + -1; r1.x = max(-1, r1.x); r1.x = min(1, r1.x); r1.y = asint(cb0[34].y); r0.x = r0.x / r1.y; r1.yzw = r0.yzw * r0.xxx; r1.xyz = r1.yzw * r1.xxx + v2.xyz; r2.xyz = cb1[4].xyz + -r1.xyz; r1.w = dot(r2.xyz, r2.xyz); r1.w = sqrt(r1.w); r1.w = cb0[29].y * r1.w; r1.w = 0.5 * r1.w; r2.x = cb0[29].x * r0.x; r2.yzw = float3(0,0,0); r3.xyzw = r1.xyzw; r4.x = 0; while (true) { r4.y = cmp((int)r4.x >= asint(cb0[34].y)); if (r4.y != 0) break; r4.yzw = cb0[4].xyz + -r3.xyz; r5.xyz = cb0[21].xyw * r3.yyy; r5.xyz = cb0[20].xyw * r3.xxx + r5.xyz; r5.xyz = cb0[22].xyw * r3.zzz + r5.xyz; r5.xyz = cb0[23].xyw + r5.xyz; r5.xy = r5.xy / r5.zz; r6.xyzw = t2.SampleBias(s2_s, r5.xy, -8).xyzw; r5.x = cmp(r5.z < 0); r5.x = r5.x ? 1.000000 : 0; r5.x = r6.w * r5.x; r4.y = dot(r4.yzw, r4.yzw); r4.y = cb0[4].w * r4.y; r6.xyzw = t3.Sample(s1_s, r4.yy).xyzw; r4.y = r6.x * r5.x; r5.xyzw = cb0[25].xyzw * r3.yyyy; r5.xyzw = cb0[24].xyzw * r3.xxxx + r5.xyzw; r5.xyzw = cb0[26].xyzw * r3.zzzz + r5.xyzw; r5.xyzw = cb0[27].xyzw + r5.xyzw; r5.xyz = r5.xyz / r5.www; r6.xyzw = t4.Sample(s4_s, r5.xy).xyzw; r4.z = cmp(r6.x < r5.z); r4.z = r4.z ? 1.000000 : 0; r4.y = r4.y * r4.z; r3.w = cb0[29].y * r0.x + r3.w; r4.y = r4.y * r2.x; r4.z = -1.44269502 * r3.w; r4.z = exp2(r4.z); r4.y = r4.y * r4.z; r5.xyz = -cb0[4].xyz + r3.xyz; r4.z = dot(r5.xyz, r5.xyz); r4.z = rsqrt(r4.z); r5.xyz = r5.xyz * r4.zzz; r4.z = dot(r5.xyz, -r0.yzw); r4.z = -cb0[30].z * r4.z + cb0[30].y; r4.z = log2(r4.z); r4.z = 1.5 * r4.z; r4.z = exp2(r4.z); r4.z = cb0[30].x / r4.z; r4.z = cb0[30].w * r4.z; r2.yzw = r4.yyy * r4.zzz + r2.yzw; r3.xyz = r0.yzw * r0.xxx + r3.xyz; r4.x = (int)r4.x + 1; } r0.xyz = cb0[5].xyz * r2.yzw; o0.xyz = max(float3(0,0,0), r0.xyz); o0.w = 0; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // using 3Dmigoto v1.2.62 on Sun Jul 16 13:39:50 2017 // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float xy // TEXCOORD 0 xyzw 1 NONE float xy w // TEXCOORD 1 xyz 2 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 cb0[38], immediateIndexed dcl_constantbuffer cb1[8], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default dcl_sampler s3, mode_default dcl_sampler s4, 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_resource_texture2d (float,float,float,float) t3 dcl_resource_texture2d (float,float,float,float) t4 dcl_input_ps_siv linear noperspective v0.xy, position dcl_input_ps linear v1.xyw dcl_input_ps linear v2.xyz dcl_output o0.xyzw dcl_temps 7 div r0.xy, v1.xyxx, v1.wwww sample r0.xyzw, r0.xyxx, t0.xyzw, s0 add r0.yzw, v2.xxyz, -cb1[4].xxyz dp3 r1.x, r0.yzwy, r0.yzwy sqrt r1.x, r1.x div r0.yzw, r0.yyzw, r1.xxxx mad r1.yzw, r0.yyzw, l(0.000000, 0.001000, 0.001000, 0.001000), v2.xxyz dp3 r2.x, cb0[35].xyzx, r0.yzwy dp3 r2.y, cb0[35].xyzx, r1.yzwy add r2.y, r2.y, cb0[37].x div r2.y, -r2.y, r2.x lt r2.z, r2.y, l(0.000000) movc r2.y, r2.z, l(100000.000000), r2.y add r1.yzw, r1.yyzw, -cb0[36].xxyz dp3 r2.z, r0.yzwy, r0.yzwy dp3 r2.w, r1.yzwy, cb0[35].xyzx dp3 r3.x, r1.yzwy, r0.yzwy dp3 r1.y, r1.yzwy, r1.yzwy mul r1.z, cb0[34].z, cb0[34].z mul r1.w, r1.z, r2.z mad r1.w, r2.x, r2.x, -r1.w mul r2.z, r1.z, r3.x mad r2.z, r2.w, r2.x, -r2.z add r2.z, r2.z, r2.z mul r1.y, r1.z, r1.y mad r1.y, r2.w, r2.w, -r1.y mul r1.y, r1.w, r1.y mul r1.y, r1.y, l(4.000000) mad r1.y, r2.z, r2.z, -r1.y lt r1.z, l(0.000000), r1.y sqrt r3.y, r1.y lt r1.y, l(0.000000), r1.w lt r3.z, r1.w, l(0.000000) iadd r1.y, -r1.y, r3.z itof r1.y, r1.y mov r3.x, -r3.y mad r3.xy, r1.yyyy, r3.xyxx, -r2.zzzz add r1.y, r1.w, r1.w div r1.yw, r3.xxxy, r1.yyyy mad r2.xz, r2.xxxx, r1.yywy, r2.wwww lt r2.xz, l(0.000000, 0.000000, 0.000000, 0.000000), r2.xxzx lt r3.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r1.ywyy and r2.xz, r2.xxzx, r3.xxyx and r3.xy, r2.xzxx, l(0x3f800000, 0x3f800000, 0, 0) movc r2.xz, r2.xxzx, l(0,0,0,0), l(10000.000000,0,10000.000000,0) mad r1.yw, r1.yyyw, r3.xxxy, r2.xxxz movc r1.yz, r1.zzzz, r1.yywy, l(0,10000.000000,10000.000000,0) mad r0.x, cb1[7].z, r0.x, cb1[7].w div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x dp3 r1.w, cb0[28].xyzx, r0.yzwy div r0.x, r0.x, r1.w add r0.x, -r1.x, r0.x min r1.x, r1.z, r1.y min r1.x, r1.x, r2.y min r0.x, r0.x, r1.x div r1.xy, v0.xyxx, cb0[11].zwzz dp2 r1.z, cb1[0].xyxx, l(12.989800, 78.233002, 0.000000, 0.000000) sincos r1.z, null, r1.z mul r1.z, r1.z, l(43758.546875) frc r1.z, r1.z add r1.xy, r1.zzzz, r1.xyxx sample r1.xyzw, r1.xyxx, t1.xyzw, s3 mad r1.x, r1.x, l(2.000000), l(-1.000000) max r1.x, r1.x, l(-1.000000) min r1.x, r1.x, l(1.000000) itof r1.y, cb0[34].y div r0.x, r0.x, r1.y mul r1.yzw, r0.xxxx, r0.yyzw mad r1.xyz, r1.yzwy, r1.xxxx, v2.xyzx add r2.xyz, -r1.xyzx, cb1[4].xyzx dp3 r1.w, r2.xyzx, r2.xyzx sqrt r1.w, r1.w mul r1.w, r1.w, cb0[29].y mul r1.w, r1.w, l(0.500000) mul r2.x, r0.x, cb0[29].x mov r2.yzw, l(0,0,0,0) mov r3.xyzw, r1.xyzw mov r4.x, l(0) loop ige r4.y, r4.x, cb0[34].y breakc_nz r4.y add r4.yzw, -r3.xxyz, cb0[4].xxyz mul r5.xyz, r3.yyyy, cb0[21].xywx mad r5.xyz, cb0[20].xywx, r3.xxxx, r5.xyzx mad r5.xyz, cb0[22].xywx, r3.zzzz, r5.xyzx add r5.xyz, r5.xyzx, cb0[23].xywx div r5.xy, r5.xyxx, r5.zzzz sample_b r6.xyzw, r5.xyxx, t2.xyzw, s2, l(-8.000000) lt r5.x, r5.z, l(0.000000) and r5.x, r5.x, l(0x3f800000) mul r5.x, r5.x, r6.w dp3 r4.y, r4.yzwy, r4.yzwy mul r4.y, r4.y, cb0[4].w sample r6.xyzw, r4.yyyy, t3.xyzw, s1 mul r4.y, r5.x, r6.x mul r5.xyzw, r3.yyyy, cb0[25].xyzw mad r5.xyzw, cb0[24].xyzw, r3.xxxx, r5.xyzw mad r5.xyzw, cb0[26].xyzw, r3.zzzz, r5.xyzw add r5.xyzw, r5.xyzw, cb0[27].xyzw div r5.xyz, r5.xyzx, r5.wwww sample r6.xyzw, r5.xyxx, t4.xyzw, s4 lt r4.z, r6.x, r5.z and r4.z, r4.z, l(0x3f800000) mul r4.y, r4.z, r4.y mad r3.w, cb0[29].y, r0.x, r3.w mul r4.y, r2.x, r4.y mul r4.z, r3.w, l(-1.442695) exp r4.z, r4.z mul r4.y, r4.z, r4.y add r5.xyz, r3.xyzx, -cb0[4].xyzx dp3 r4.z, r5.xyzx, r5.xyzx rsq r4.z, r4.z mul r5.xyz, r4.zzzz, r5.xyzx dp3 r4.z, r5.xyzx, -r0.yzwy mad r4.z, -cb0[30].z, r4.z, cb0[30].y log r4.z, r4.z mul r4.z, r4.z, l(1.500000) exp r4.z, r4.z div r4.z, cb0[30].x, r4.z mul r4.z, r4.z, cb0[30].w mad r2.yzw, r4.yyyy, r4.zzzz, r2.yyzw mad r3.xyz, r0.yzwy, r0.xxxx, r3.xyzx iadd r4.x, r4.x, l(1) endloop mul r0.xyz, r2.yzwy, cb0[5].xyzx max o0.xyz, r0.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) mov o0.w, l(0) ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] [url]https://drive.google.com/open?id=0B7-C-G8Te2HbNGR3MUlEb3ZYWmM[/url] Picture of the red light beam Thanks for the help!!!
Hi, I've fixed shadows, halos, crosshair and lights but this red light beam is going me crazy. This light is at screen depth and I don't know how to fix it.
VS
// red light beams
// hlsltool.py --install-to c:\py\1 --auto-fix-vertex-halo --only-autofixed --no-validate --ignore-other-errors 45b0db6397be922c-vs_replace.txt
// ---- Created with 3Dmigoto v1.2.62 on Sun Jul 16 13:11:39 2017
cbuffer cb2 : register(b2)
{
float4 cb2[16];
}

cbuffer cb1 : register(b1)
{
float4 cb1[6];
}

cbuffer cb0 : register(b0)
{
float4 cb0[20];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : POSITION0,
out float4 o0 : SV_POSITION0,
out float4 o1 : TEXCOORD0,
out float3 o2 : TEXCOORD1)
{
float4 r0,r1;
uint4 bitmask, uiDest;
float4 fDest;

float4 stereo = StereoParams.Load(0);
float separation = stereo.x, convergence = stereo.y, eye = stereo.z;

r0.xyzw = cb0[17].xyzw * v0.yyyy;
r0.xyzw = cb0[16].xyzw * v0.xxxx + r0.xyzw;
r0.xyzw = cb0[18].xyzw * v0.zzzz + r0.xyzw;
r0.xyzw = cb0[19].xyzw * v0.wwww + r0.xyzw;
o0.xyzw = r0.xyzw;

// Automatic vertex shader halo fix inserted with DarkStarSword's hlsltool.py:
// hlsltool.py --install-to c:\py\1 --auto-fix-vertex-halo --only-autofixed --no-validate --ignore-other-errors 45b0db6397be922c-vs_replace.txt
//if (r0.w != 1.0) { r0.x += separation * (r0.w - convergence); }

r1.xyz = float3(0.5,0.5,0.5) * r0.xyw;
o1.zw = r0.zw;
r1.w = cb1[5].x * r1.y;
o1.xy = r1.xw + r1.zz;
r0.xyz = cb2[13].xyz * v0.yyy;
r0.xyz = cb2[12].xyz * v0.xxx + r0.xyz;
r0.xyz = cb2[14].xyz * v0.zzz + r0.xyz;
o2.xyz = cb2[15].xyz * v0.www + r0.xyz;



return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Original ASM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyzw 0 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float xyzw
// TEXCOORD 0 xyzw 1 NONE float xyzw
// TEXCOORD 1 xyz 2 NONE float xyz
//
vs_4_0
dcl_constantbuffer cb0[20], immediateIndexed
dcl_constantbuffer cb1[6], immediateIndexed
dcl_constantbuffer cb2[16], immediateIndexed
dcl_input v0.xyzw
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyz
dcl_temps 2
mul r0.xyzw, v0.yyyy, cb0[17].xyzw
mad r0.xyzw, cb0[16].xyzw, v0.xxxx, r0.xyzw
mad r0.xyzw, cb0[18].xyzw, v0.zzzz, r0.xyzw
mad r0.xyzw, cb0[19].xyzw, v0.wwww, r0.xyzw
mov o0.xyzw, r0.xyzw
mul r1.xyz, r0.xywx, l(0.500000, 0.500000, 0.500000, 0.000000)
mov o1.zw, r0.zzzw
mul r1.w, r1.y, cb1[5].x
add o1.xy, r1.zzzz, r1.xwxx
mul r0.xyz, v0.yyyy, cb2[13].xyzx
mad r0.xyz, cb2[12].xyzx, v0.xxxx, r0.xyzx
mad r0.xyz, cb2[14].xyzx, v0.zzzz, r0.xyzx
mad o2.xyz, cb2[15].xyzx, v0.wwww, r0.xyzx
ret
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

PS
// red light
// ---- Created with 3Dmigoto v1.2.62 on Sun Jul 16 13:39:50 2017
Texture2D<float4> t4 : register(t4);

Texture2D<float4> t3 : register(t3);

Texture2D<float4> t2 : register(t2);

Texture2D<float4> t1 : register(t1);

Texture2D<float4> t0 : register(t0);

SamplerState s4_s : register(s4);

SamplerState s3_s : register(s3);

SamplerState s2_s : register(s2);

SamplerState s1_s : register(s1);

SamplerState s0_s : register(s0);

cbuffer cb1 : register(b1)
{
float4 cb1[8];
}

cbuffer cb0 : register(b0)
{
float4 cb0[38];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : SV_POSITION0,
float4 v1 : TEXCOORD0,
float3 v2 : TEXCOORD1,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3,r4,r5,r6;
uint4 bitmask, uiDest;
float4 fDest;

r0.xy = v1.xy / v1.ww;
r0.xyzw = t0.Sample(s0_s, r0.xy).xyzw;
r0.yzw = -cb1[4].xyz + v2.xyz;
r1.x = dot(r0.yzw, r0.yzw);
r1.x = sqrt(r1.x);
r0.yzw = r0.yzw / r1.xxx;
r1.yzw = r0.yzw * float3(0.00100000005,0.00100000005,0.00100000005) + v2.xyz;
r2.x = dot(cb0[35].xyz, r0.yzw);
r2.y = dot(cb0[35].xyz, r1.yzw);
r2.y = cb0[37].x + r2.y;
r2.y = -r2.y / r2.x;
r2.z = cmp(r2.y < 0);
r2.y = r2.z ? 100000 : r2.y;
r1.yzw = -cb0[36].xyz + r1.yzw;
r2.z = dot(r0.yzw, r0.yzw);
r2.w = dot(r1.yzw, cb0[35].xyz);
r3.x = dot(r1.yzw, r0.yzw);
r1.y = dot(r1.yzw, r1.yzw);
r1.z = cb0[34].z * cb0[34].z;
r1.w = r2.z * r1.z;
r1.w = r2.x * r2.x + -r1.w;
r2.z = r3.x * r1.z;
r2.z = r2.w * r2.x + -r2.z;
r2.z = r2.z + r2.z;
r1.y = r1.y * r1.z;
r1.y = r2.w * r2.w + -r1.y;
r1.y = r1.y * r1.w;
r1.y = 4 * r1.y;
r1.y = r2.z * r2.z + -r1.y;
r1.z = cmp(0 < r1.y);
r3.y = sqrt(r1.y);
r1.y = cmp(0 < r1.w);
r3.z = cmp(r1.w < 0);
r1.y = (int)-r1.y + (int)r3.z;
r1.y = (int)r1.y;
r3.x = -r3.y;
r3.xy = r1.yy * r3.xy + -r2.zz;
r1.y = r1.w + r1.w;
r1.yw = r3.xy / r1.yy;
r2.xz = r2.xx * r1.yw + r2.ww;
r2.xz = cmp(float2(0,0) < r2.xz);
r3.xy = cmp(float2(0,0) < r1.yw);
r2.xz = r2.xz ? r3.xy : 0;
r3.xy = r2.xz ? float2(1,1) : 0;
r2.xz = r2.xz ? float2(0,0) : float2(10000,10000);
r1.yw = r1.yw * r3.xy + r2.xz;
r1.yz = r1.zz ? r1.yw : float2(10000,10000);
r0.x = cb1[7].z * r0.x + cb1[7].w;
r0.x = 1 / r0.x;
r1.w = dot(cb0[28].xyz, r0.yzw);
r0.x = r0.x / r1.w;
r0.x = r0.x + -r1.x;
r1.x = min(r1.y, r1.z);
r1.x = min(r2.y, r1.x);
r0.x = min(r1.x, r0.x);
r1.xy = v0.xy / cb0[11].zw;
r1.z = dot(cb1[0].xy, float2(12.9898005,78.2330017));
r1.z = sin(r1.z);
r1.z = 43758.5469 * r1.z;
r1.z = frac(r1.z);
r1.xy = r1.xy + r1.zz;
r1.xyzw = t1.Sample(s3_s, r1.xy).xyzw;
r1.x = r1.x * 2 + -1;
r1.x = max(-1, r1.x);
r1.x = min(1, r1.x);
r1.y = asint(cb0[34].y);
r0.x = r0.x / r1.y;
r1.yzw = r0.yzw * r0.xxx;
r1.xyz = r1.yzw * r1.xxx + v2.xyz;
r2.xyz = cb1[4].xyz + -r1.xyz;
r1.w = dot(r2.xyz, r2.xyz);
r1.w = sqrt(r1.w);
r1.w = cb0[29].y * r1.w;
r1.w = 0.5 * r1.w;
r2.x = cb0[29].x * r0.x;
r2.yzw = float3(0,0,0);
r3.xyzw = r1.xyzw;
r4.x = 0;
while (true) {
r4.y = cmp((int)r4.x >= asint(cb0[34].y));
if (r4.y != 0) break;
r4.yzw = cb0[4].xyz + -r3.xyz;
r5.xyz = cb0[21].xyw * r3.yyy;
r5.xyz = cb0[20].xyw * r3.xxx + r5.xyz;
r5.xyz = cb0[22].xyw * r3.zzz + r5.xyz;
r5.xyz = cb0[23].xyw + r5.xyz;
r5.xy = r5.xy / r5.zz;
r6.xyzw = t2.SampleBias(s2_s, r5.xy, -8).xyzw;
r5.x = cmp(r5.z < 0);
r5.x = r5.x ? 1.000000 : 0;
r5.x = r6.w * r5.x;
r4.y = dot(r4.yzw, r4.yzw);
r4.y = cb0[4].w * r4.y;
r6.xyzw = t3.Sample(s1_s, r4.yy).xyzw;
r4.y = r6.x * r5.x;
r5.xyzw = cb0[25].xyzw * r3.yyyy;
r5.xyzw = cb0[24].xyzw * r3.xxxx + r5.xyzw;
r5.xyzw = cb0[26].xyzw * r3.zzzz + r5.xyzw;
r5.xyzw = cb0[27].xyzw + r5.xyzw;
r5.xyz = r5.xyz / r5.www;
r6.xyzw = t4.Sample(s4_s, r5.xy).xyzw;
r4.z = cmp(r6.x < r5.z);
r4.z = r4.z ? 1.000000 : 0;
r4.y = r4.y * r4.z;
r3.w = cb0[29].y * r0.x + r3.w;
r4.y = r4.y * r2.x;
r4.z = -1.44269502 * r3.w;
r4.z = exp2(r4.z);
r4.y = r4.y * r4.z;
r5.xyz = -cb0[4].xyz + r3.xyz;
r4.z = dot(r5.xyz, r5.xyz);
r4.z = rsqrt(r4.z);
r5.xyz = r5.xyz * r4.zzz;
r4.z = dot(r5.xyz, -r0.yzw);
r4.z = -cb0[30].z * r4.z + cb0[30].y;
r4.z = log2(r4.z);
r4.z = 1.5 * r4.z;
r4.z = exp2(r4.z);
r4.z = cb0[30].x / r4.z;
r4.z = cb0[30].w * r4.z;
r2.yzw = r4.yyy * r4.zzz + r2.yzw;
r3.xyz = r0.yzw * r0.xxx + r3.xyz;
r4.x = (int)r4.x + 1;
}
r0.xyz = cb0[5].xyz * r2.yzw;
o0.xyz = max(float3(0,0,0), r0.xyz);
o0.w = 0;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.2.62 on Sun Jul 16 13:39:50 2017
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float xy
// TEXCOORD 0 xyzw 1 NONE float xy w
// TEXCOORD 1 xyz 2 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 cb0[38], immediateIndexed
dcl_constantbuffer cb1[8], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, 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_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_input_ps linear v1.xyw
dcl_input_ps linear v2.xyz
dcl_output o0.xyzw
dcl_temps 7
div r0.xy, v1.xyxx, v1.wwww
sample r0.xyzw, r0.xyxx, t0.xyzw, s0
add r0.yzw, v2.xxyz, -cb1[4].xxyz
dp3 r1.x, r0.yzwy, r0.yzwy
sqrt r1.x, r1.x
div r0.yzw, r0.yyzw, r1.xxxx
mad r1.yzw, r0.yyzw, l(0.000000, 0.001000, 0.001000, 0.001000), v2.xxyz
dp3 r2.x, cb0[35].xyzx, r0.yzwy
dp3 r2.y, cb0[35].xyzx, r1.yzwy
add r2.y, r2.y, cb0[37].x
div r2.y, -r2.y, r2.x
lt r2.z, r2.y, l(0.000000)
movc r2.y, r2.z, l(100000.000000), r2.y
add r1.yzw, r1.yyzw, -cb0[36].xxyz
dp3 r2.z, r0.yzwy, r0.yzwy
dp3 r2.w, r1.yzwy, cb0[35].xyzx
dp3 r3.x, r1.yzwy, r0.yzwy
dp3 r1.y, r1.yzwy, r1.yzwy
mul r1.z, cb0[34].z, cb0[34].z
mul r1.w, r1.z, r2.z
mad r1.w, r2.x, r2.x, -r1.w
mul r2.z, r1.z, r3.x
mad r2.z, r2.w, r2.x, -r2.z
add r2.z, r2.z, r2.z
mul r1.y, r1.z, r1.y
mad r1.y, r2.w, r2.w, -r1.y
mul r1.y, r1.w, r1.y
mul r1.y, r1.y, l(4.000000)
mad r1.y, r2.z, r2.z, -r1.y
lt r1.z, l(0.000000), r1.y
sqrt r3.y, r1.y
lt r1.y, l(0.000000), r1.w
lt r3.z, r1.w, l(0.000000)
iadd r1.y, -r1.y, r3.z
itof r1.y, r1.y
mov r3.x, -r3.y
mad r3.xy, r1.yyyy, r3.xyxx, -r2.zzzz
add r1.y, r1.w, r1.w
div r1.yw, r3.xxxy, r1.yyyy
mad r2.xz, r2.xxxx, r1.yywy, r2.wwww
lt r2.xz, l(0.000000, 0.000000, 0.000000, 0.000000), r2.xxzx
lt r3.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r1.ywyy
and r2.xz, r2.xxzx, r3.xxyx
and r3.xy, r2.xzxx, l(0x3f800000, 0x3f800000, 0, 0)
movc r2.xz, r2.xxzx, l(0,0,0,0), l(10000.000000,0,10000.000000,0)
mad r1.yw, r1.yyyw, r3.xxxy, r2.xxxz
movc r1.yz, r1.zzzz, r1.yywy, l(0,10000.000000,10000.000000,0)
mad r0.x, cb1[7].z, r0.x, cb1[7].w
div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x
dp3 r1.w, cb0[28].xyzx, r0.yzwy
div r0.x, r0.x, r1.w
add r0.x, -r1.x, r0.x
min r1.x, r1.z, r1.y
min r1.x, r1.x, r2.y
min r0.x, r0.x, r1.x
div r1.xy, v0.xyxx, cb0[11].zwzz
dp2 r1.z, cb1[0].xyxx, l(12.989800, 78.233002, 0.000000, 0.000000)
sincos r1.z, null, r1.z
mul r1.z, r1.z, l(43758.546875)
frc r1.z, r1.z
add r1.xy, r1.zzzz, r1.xyxx
sample r1.xyzw, r1.xyxx, t1.xyzw, s3
mad r1.x, r1.x, l(2.000000), l(-1.000000)
max r1.x, r1.x, l(-1.000000)
min r1.x, r1.x, l(1.000000)
itof r1.y, cb0[34].y
div r0.x, r0.x, r1.y
mul r1.yzw, r0.xxxx, r0.yyzw
mad r1.xyz, r1.yzwy, r1.xxxx, v2.xyzx
add r2.xyz, -r1.xyzx, cb1[4].xyzx
dp3 r1.w, r2.xyzx, r2.xyzx
sqrt r1.w, r1.w
mul r1.w, r1.w, cb0[29].y
mul r1.w, r1.w, l(0.500000)
mul r2.x, r0.x, cb0[29].x
mov r2.yzw, l(0,0,0,0)
mov r3.xyzw, r1.xyzw
mov r4.x, l(0)
loop
ige r4.y, r4.x, cb0[34].y
breakc_nz r4.y
add r4.yzw, -r3.xxyz, cb0[4].xxyz
mul r5.xyz, r3.yyyy, cb0[21].xywx
mad r5.xyz, cb0[20].xywx, r3.xxxx, r5.xyzx
mad r5.xyz, cb0[22].xywx, r3.zzzz, r5.xyzx
add r5.xyz, r5.xyzx, cb0[23].xywx
div r5.xy, r5.xyxx, r5.zzzz
sample_b r6.xyzw, r5.xyxx, t2.xyzw, s2, l(-8.000000)
lt r5.x, r5.z, l(0.000000)
and r5.x, r5.x, l(0x3f800000)
mul r5.x, r5.x, r6.w
dp3 r4.y, r4.yzwy, r4.yzwy
mul r4.y, r4.y, cb0[4].w
sample r6.xyzw, r4.yyyy, t3.xyzw, s1
mul r4.y, r5.x, r6.x
mul r5.xyzw, r3.yyyy, cb0[25].xyzw
mad r5.xyzw, cb0[24].xyzw, r3.xxxx, r5.xyzw
mad r5.xyzw, cb0[26].xyzw, r3.zzzz, r5.xyzw
add r5.xyzw, r5.xyzw, cb0[27].xyzw
div r5.xyz, r5.xyzx, r5.wwww
sample r6.xyzw, r5.xyxx, t4.xyzw, s4
lt r4.z, r6.x, r5.z
and r4.z, r4.z, l(0x3f800000)
mul r4.y, r4.z, r4.y
mad r3.w, cb0[29].y, r0.x, r3.w
mul r4.y, r2.x, r4.y
mul r4.z, r3.w, l(-1.442695)
exp r4.z, r4.z
mul r4.y, r4.z, r4.y
add r5.xyz, r3.xyzx, -cb0[4].xyzx
dp3 r4.z, r5.xyzx, r5.xyzx
rsq r4.z, r4.z
mul r5.xyz, r4.zzzz, r5.xyzx
dp3 r4.z, r5.xyzx, -r0.yzwy
mad r4.z, -cb0[30].z, r4.z, cb0[30].y
log r4.z, r4.z
mul r4.z, r4.z, l(1.500000)
exp r4.z, r4.z
div r4.z, cb0[30].x, r4.z
mul r4.z, r4.z, cb0[30].w
mad r2.yzw, r4.yyyy, r4.zzzz, r2.yyzw
mad r3.xyz, r0.yzwy, r0.xxxx, r3.xyzx
iadd r4.x, r4.x, l(1)
endloop
mul r0.xyz, r2.yzwy, cb0[5].xyzx
max o0.xyz, r0.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
mov o0.w, l(0)
ret
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

https://drive.google.com/open?id=0B7-C-G8Te2HbNGR3MUlEb3ZYWmM
Picture of the red light beam


Thanks for the help!!!

#1
Posted 07/16/2017 05:47 PM   
[code] // red light beams // hlsltool.py --install-to c:\py\1 --auto-fix-vertex-halo --only-autofixed --no-validate --ignore-other-errors 45b0db6397be922c-vs_replace.txt // ---- Created with 3Dmigoto v1.2.62 on Sun Jul 16 13:11:39 2017 cbuffer cb2 : register(b2) { float4 cb2[16]; } cbuffer cb1 : register(b1) { float4 cb1[6]; } cbuffer cb0 : register(b0) { float4 cb0[20]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : POSITION0, out float4 o0 : SV_POSITION0, out float4 o1 : TEXCOORD0, out float3 o2 : TEXCOORD1) { float4 r0,r1; uint4 bitmask, uiDest; float4 fDest; //float4 stereo = StereoParams.Load(0); //float separation = stereo.x, convergence = stereo.y, eye = stereo.z; r0.xyzw = cb0[17].xyzw * v0.yyyy; r0.xyzw = cb0[16].xyzw * v0.xxxx + r0.xyzw; r0.xyzw = cb0[18].xyzw * v0.zzzz + r0.xyzw; r0.xyzw = cb0[19].xyzw * v0.wwww + r0.xyzw; o0.xyzw = r0.xyzw; // Automatic vertex shader halo fix inserted with DarkStarSword's hlsltool.py: // hlsltool.py --install-to c:\py\1 --auto-fix-vertex-halo --only-autofixed --no-validate --ignore-other-errors 45b0db6397be922c-vs_replace.txt //if (r0.w != 1.0) { r0.x += separation * (r0.w - convergence); } r1.xyz = float3(0.5,0.5,0.5) * r0.xyw; o1.zw = r0.zw; r1.w = cb1[5].x * r1.y; o1.xy = r1.xw + r1.zz; r0.xyz = cb2[13].xyz * v0.yyy; r0.xyz = cb2[12].xyz * v0.xxx + r0.xyz; r0.xyz = cb2[14].xyz * v0.zzz + r0.xyz; o2.xyz = cb2[15].xyz * v0.www + r0.xyz; float4 stereo = StereoParams.Load(0); float seperation = stereo.x; float convergence = stereo.y; o0.x += seperation * .99; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Original ASM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // POSITION 0 xyzw 0 NONE float xyzw // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float xyzw // TEXCOORD 0 xyzw 1 NONE float xyzw // TEXCOORD 1 xyz 2 NONE float xyz // vs_4_0 dcl_constantbuffer cb0[20], immediateIndexed dcl_constantbuffer cb1[6], immediateIndexed dcl_constantbuffer cb2[16], immediateIndexed dcl_input v0.xyzw dcl_output_siv o0.xyzw, position dcl_output o1.xyzw dcl_output o2.xyz dcl_temps 2 mul r0.xyzw, v0.yyyy, cb0[17].xyzw mad r0.xyzw, cb0[16].xyzw, v0.xxxx, r0.xyzw mad r0.xyzw, cb0[18].xyzw, v0.zzzz, r0.xyzw mad r0.xyzw, cb0[19].xyzw, v0.wwww, r0.xyzw mov o0.xyzw, r0.xyzw mul r1.xyz, r0.xywx, l(0.500000, 0.500000, 0.500000, 0.000000) mov o1.zw, r0.zzzw mul r1.w, r1.y, cb1[5].x add o1.xy, r1.zzzz, r1.xwxx mul r0.xyz, v0.yyyy, cb2[13].xyzx mad r0.xyz, cb2[12].xyzx, v0.xxxx, r0.xyzx mad r0.xyz, cb2[14].xyzx, v0.zzzz, r0.xyzx mad o2.xyz, cb2[15].xyzx, v0.wwww, r0.xyzx ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] IF that looks like it did not put it in Stereo try increasing the Number .99 to a higher number, on line 65.... I had a similar instance where clouds in FFXIV where not moving or seperating I increased the number to 2500 and they went into seperation and in Stereo.. IF this does nothing I am unsure what would make it go in Stereo??
// red light beams
// hlsltool.py --install-to c:\py\1 --auto-fix-vertex-halo --only-autofixed --no-validate --ignore-other-errors 45b0db6397be922c-vs_replace.txt
// ---- Created with 3Dmigoto v1.2.62 on Sun Jul 16 13:11:39 2017
cbuffer cb2 : register(b2)
{
float4 cb2[16];
}

cbuffer cb1 : register(b1)
{
float4 cb1[6];
}

cbuffer cb0 : register(b0)
{
float4 cb0[20];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : POSITION0,
out float4 o0 : SV_POSITION0,
out float4 o1 : TEXCOORD0,
out float3 o2 : TEXCOORD1)
{
float4 r0,r1;
uint4 bitmask, uiDest;
float4 fDest;

//float4 stereo = StereoParams.Load(0);
//float separation = stereo.x, convergence = stereo.y, eye = stereo.z;

r0.xyzw = cb0[17].xyzw * v0.yyyy;
r0.xyzw = cb0[16].xyzw * v0.xxxx + r0.xyzw;
r0.xyzw = cb0[18].xyzw * v0.zzzz + r0.xyzw;
r0.xyzw = cb0[19].xyzw * v0.wwww + r0.xyzw;
o0.xyzw = r0.xyzw;

// Automatic vertex shader halo fix inserted with DarkStarSword's hlsltool.py:
// hlsltool.py --install-to c:\py\1 --auto-fix-vertex-halo --only-autofixed --no-validate --ignore-other-errors 45b0db6397be922c-vs_replace.txt
//if (r0.w != 1.0) { r0.x += separation * (r0.w - convergence); }

r1.xyz = float3(0.5,0.5,0.5) * r0.xyw;
o1.zw = r0.zw;
r1.w = cb1[5].x * r1.y;
o1.xy = r1.xw + r1.zz;
r0.xyz = cb2[13].xyz * v0.yyy;
r0.xyz = cb2[12].xyz * v0.xxx + r0.xyz;
r0.xyz = cb2[14].xyz * v0.zzz + r0.xyz;
o2.xyz = cb2[15].xyz * v0.www + r0.xyz;



float4 stereo = StereoParams.Load(0);
float seperation = stereo.x;
float convergence = stereo.y;
o0.x += seperation * .99;


return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Original ASM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyzw 0 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float xyzw
// TEXCOORD 0 xyzw 1 NONE float xyzw
// TEXCOORD 1 xyz 2 NONE float xyz
//
vs_4_0
dcl_constantbuffer cb0[20], immediateIndexed
dcl_constantbuffer cb1[6], immediateIndexed
dcl_constantbuffer cb2[16], immediateIndexed
dcl_input v0.xyzw
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyz
dcl_temps 2
mul r0.xyzw, v0.yyyy, cb0[17].xyzw
mad r0.xyzw, cb0[16].xyzw, v0.xxxx, r0.xyzw
mad r0.xyzw, cb0[18].xyzw, v0.zzzz, r0.xyzw
mad r0.xyzw, cb0[19].xyzw, v0.wwww, r0.xyzw
mov o0.xyzw, r0.xyzw
mul r1.xyz, r0.xywx, l(0.500000, 0.500000, 0.500000, 0.000000)
mov o1.zw, r0.zzzw
mul r1.w, r1.y, cb1[5].x
add o1.xy, r1.zzzz, r1.xwxx
mul r0.xyz, v0.yyyy, cb2[13].xyzx
mad r0.xyz, cb2[12].xyzx, v0.xxxx, r0.xyzx
mad r0.xyz, cb2[14].xyzx, v0.zzzz, r0.xyzx
mad o2.xyz, cb2[15].xyzx, v0.wwww, r0.xyzx
ret
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/


IF that looks like it did not put it in Stereo try increasing the Number .99 to a higher number, on line 65....
I had a similar instance where clouds in FFXIV where not moving or seperating I increased the number to 2500 and they went into seperation and in Stereo..

IF this does nothing I am unsure what would make it go in Stereo??

Intel i5 7600K @ 4.8ghz / MSI Z270 SLI / Asus 1080GTX - 416.16 / Optoma HD142x Projector / 1 4'x10' Curved Screen PVC / TrackIR / HOTAS Cougar / Cougar MFD's / Track IR / NVidia 3D Vision / Win 10 64bit

#2
Posted 07/17/2017 03:47 AM   
[quote="The_Nephilim"][code] // red light beams // hlsltool.py --install-to c:\py\1 --auto-fix-vertex-halo --only-autofixed --no-validate --ignore-other-errors 45b0db6397be922c-vs_replace.txt // ---- Created with 3Dmigoto v1.2.62 on Sun Jul 16 13:11:39 2017 cbuffer cb2 : register(b2) { float4 cb2[16]; } cbuffer cb1 : register(b1) { float4 cb1[6]; } cbuffer cb0 : register(b0) { float4 cb0[20]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : POSITION0, out float4 o0 : SV_POSITION0, out float4 o1 : TEXCOORD0, out float3 o2 : TEXCOORD1) { float4 r0,r1; uint4 bitmask, uiDest; float4 fDest; //float4 stereo = StereoParams.Load(0); //float separation = stereo.x, convergence = stereo.y, eye = stereo.z; r0.xyzw = cb0[17].xyzw * v0.yyyy; r0.xyzw = cb0[16].xyzw * v0.xxxx + r0.xyzw; r0.xyzw = cb0[18].xyzw * v0.zzzz + r0.xyzw; r0.xyzw = cb0[19].xyzw * v0.wwww + r0.xyzw; o0.xyzw = r0.xyzw; // Automatic vertex shader halo fix inserted with DarkStarSword's hlsltool.py: // hlsltool.py --install-to c:\py\1 --auto-fix-vertex-halo --only-autofixed --no-validate --ignore-other-errors 45b0db6397be922c-vs_replace.txt //if (r0.w != 1.0) { r0.x += separation * (r0.w - convergence); } r1.xyz = float3(0.5,0.5,0.5) * r0.xyw; o1.zw = r0.zw; r1.w = cb1[5].x * r1.y; o1.xy = r1.xw + r1.zz; r0.xyz = cb2[13].xyz * v0.yyy; r0.xyz = cb2[12].xyz * v0.xxx + r0.xyz; r0.xyz = cb2[14].xyz * v0.zzz + r0.xyz; o2.xyz = cb2[15].xyz * v0.www + r0.xyz; float4 stereo = StereoParams.Load(0); float seperation = stereo.x; float convergence = stereo.y; o0.x += seperation * .99; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Original ASM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // POSITION 0 xyzw 0 NONE float xyzw // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float xyzw // TEXCOORD 0 xyzw 1 NONE float xyzw // TEXCOORD 1 xyz 2 NONE float xyz // vs_4_0 dcl_constantbuffer cb0[20], immediateIndexed dcl_constantbuffer cb1[6], immediateIndexed dcl_constantbuffer cb2[16], immediateIndexed dcl_input v0.xyzw dcl_output_siv o0.xyzw, position dcl_output o1.xyzw dcl_output o2.xyz dcl_temps 2 mul r0.xyzw, v0.yyyy, cb0[17].xyzw mad r0.xyzw, cb0[16].xyzw, v0.xxxx, r0.xyzw mad r0.xyzw, cb0[18].xyzw, v0.zzzz, r0.xyzw mad r0.xyzw, cb0[19].xyzw, v0.wwww, r0.xyzw mov o0.xyzw, r0.xyzw mul r1.xyz, r0.xywx, l(0.500000, 0.500000, 0.500000, 0.000000) mov o1.zw, r0.zzzw mul r1.w, r1.y, cb1[5].x add o1.xy, r1.zzzz, r1.xwxx mul r0.xyz, v0.yyyy, cb2[13].xyzx mad r0.xyz, cb2[12].xyzx, v0.xxxx, r0.xyzx mad r0.xyz, cb2[14].xyzx, v0.zzzz, r0.xyzx mad o2.xyz, cb2[15].xyzx, v0.wwww, r0.xyzx ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] IF that looks like it did not put it in Stereo try increasing the Number .99 to a higher number, on line 65.... I had a similar instance where clouds in FFXIV where not moving or seperating I increased the number to 2500 and they went into seperation and in Stereo.. IF this does nothing I am unsure what would make it go in Stereo??[/quote] Hi, this formula makes stereo but the deepness it's all the same and this light must comes from the top of behind to a low forward place. There must be another way to fix all this lights.
The_Nephilim said:
// red light beams
// hlsltool.py --install-to c:\py\1 --auto-fix-vertex-halo --only-autofixed --no-validate --ignore-other-errors 45b0db6397be922c-vs_replace.txt
// ---- Created with 3Dmigoto v1.2.62 on Sun Jul 16 13:11:39 2017
cbuffer cb2 : register(b2)
{
float4 cb2[16];
}

cbuffer cb1 : register(b1)
{
float4 cb1[6];
}

cbuffer cb0 : register(b0)
{
float4 cb0[20];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : POSITION0,
out float4 o0 : SV_POSITION0,
out float4 o1 : TEXCOORD0,
out float3 o2 : TEXCOORD1)
{
float4 r0,r1;
uint4 bitmask, uiDest;
float4 fDest;

//float4 stereo = StereoParams.Load(0);
//float separation = stereo.x, convergence = stereo.y, eye = stereo.z;

r0.xyzw = cb0[17].xyzw * v0.yyyy;
r0.xyzw = cb0[16].xyzw * v0.xxxx + r0.xyzw;
r0.xyzw = cb0[18].xyzw * v0.zzzz + r0.xyzw;
r0.xyzw = cb0[19].xyzw * v0.wwww + r0.xyzw;
o0.xyzw = r0.xyzw;

// Automatic vertex shader halo fix inserted with DarkStarSword's hlsltool.py:
// hlsltool.py --install-to c:\py\1 --auto-fix-vertex-halo --only-autofixed --no-validate --ignore-other-errors 45b0db6397be922c-vs_replace.txt
//if (r0.w != 1.0) { r0.x += separation * (r0.w - convergence); }

r1.xyz = float3(0.5,0.5,0.5) * r0.xyw;
o1.zw = r0.zw;
r1.w = cb1[5].x * r1.y;
o1.xy = r1.xw + r1.zz;
r0.xyz = cb2[13].xyz * v0.yyy;
r0.xyz = cb2[12].xyz * v0.xxx + r0.xyz;
r0.xyz = cb2[14].xyz * v0.zzz + r0.xyz;
o2.xyz = cb2[15].xyz * v0.www + r0.xyz;



float4 stereo = StereoParams.Load(0);
float seperation = stereo.x;
float convergence = stereo.y;
o0.x += seperation * .99;


return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Original ASM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyzw 0 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float xyzw
// TEXCOORD 0 xyzw 1 NONE float xyzw
// TEXCOORD 1 xyz 2 NONE float xyz
//
vs_4_0
dcl_constantbuffer cb0[20], immediateIndexed
dcl_constantbuffer cb1[6], immediateIndexed
dcl_constantbuffer cb2[16], immediateIndexed
dcl_input v0.xyzw
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyz
dcl_temps 2
mul r0.xyzw, v0.yyyy, cb0[17].xyzw
mad r0.xyzw, cb0[16].xyzw, v0.xxxx, r0.xyzw
mad r0.xyzw, cb0[18].xyzw, v0.zzzz, r0.xyzw
mad r0.xyzw, cb0[19].xyzw, v0.wwww, r0.xyzw
mov o0.xyzw, r0.xyzw
mul r1.xyz, r0.xywx, l(0.500000, 0.500000, 0.500000, 0.000000)
mov o1.zw, r0.zzzw
mul r1.w, r1.y, cb1[5].x
add o1.xy, r1.zzzz, r1.xwxx
mul r0.xyz, v0.yyyy, cb2[13].xyzx
mad r0.xyz, cb2[12].xyzx, v0.xxxx, r0.xyzx
mad r0.xyz, cb2[14].xyzx, v0.zzzz, r0.xyzx
mad o2.xyz, cb2[15].xyzx, v0.wwww, r0.xyzx
ret
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/


IF that looks like it did not put it in Stereo try increasing the Number .99 to a higher number, on line 65....
I had a similar instance where clouds in FFXIV where not moving or seperating I increased the number to 2500 and they went into seperation and in Stereo..

IF this does nothing I am unsure what would make it go in Stereo??


Hi, this formula makes stereo but the deepness it's all the same and this light must comes from the top of behind to a low forward place. There must be another way to fix all this lights.

#3
Posted 07/17/2017 02:12 PM   
[s]This is a very similar fixed shader from another game, maybe this help:[/s] [code]// ---- Created with 3Dmigoto v1.2.36 on Fri May 06 11:15:51 2016 Texture2D<float4> t3 : register(t3); Texture2D<float4> t2 : register(t2); Texture2D<float4> t1 : register(t1); Texture2D<float4> t0 : register(t0); SamplerState s3_s : register(s3); SamplerState s2_s : register(s2); SamplerState s1_s : register(s1); SamplerState s0_s : register(s0); cbuffer cb1 : register(b1) { float4 cb1[8]; } cbuffer cb0 : register(b0) { float4 cb0[18]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); #include <matrix.hlsl> void main( float4 v0 : SV_POSITION0, float2 v1 : TEXCOORD0, float2 w1 : TEXCOORD1, out float4 o0 : SV_Target0) { const float4 icb[] = { { 1.000000, 0, 0, 0}, { -1.000000, 0, 0, 0}, { 0, 1.000000, 0, 0}, { 0, -1.000000, 0, 0} }; float4 r0,r1,r2,r3,r4,r5,r6; uint4 bitmask, uiDest; float4 fDest; float4 stereo = StereoParams.Load(0); row_major matrix _InverseViewProject = matrix(cb0[7], cb0[8], cb0[9], cb0[10]); row_major matrix vp = inverse(_InverseViewProject); float4 tmp; r0.xyzw = t0.Sample(s1_s, v1.xy).xyzw; r0.y = cb1[7].z * r0.x + cb1[7].w; r0.y = 1 / r0.y; r0.zw = v1.xy * float2(2,2) + float2(-1,-1); // _InverseViewProject r1.xyzw = cb0[8].xyzw * r0.wwww; r1.xyzw = cb0[7].xyzw * r0.zzzz + r1.xyzw; r1.xyzw = cb0[9].xyzw * r0.xxxx + r1.xyzw; r1.xyzw = cb0[10].xyzw + r1.xyzw; r0.xzw = r1.xyz / r1.www; tmp = mul(float4(r0.xzw, 1), vp); tmp.x -= stereo.x * (tmp.w - stereo.y); r0.xzw = mul(tmp, _InverseViewProject); r1.xyzw = t1.Sample(s2_s, v1.xy).xyzw; r1.xyz = r1.xyz * float3(3.55539989,3.55539989,0) + float3(-1.77769995,-1.77769995,1); r1.z = dot(r1.xyz, r1.xyz); r1.z = 2 / r1.z; r1.xy = r1.zz * r1.xy; r1.z = -1 + r1.z; // _CameraModelView r2.xyz = cb0[12].xyz * r1.yyy; r1.xyw = cb0[11].xyz * r1.xxx + r2.xyz; r1.xyz = cb0[13].xyz * r1.zzz + r1.xyw; r2.xy = cb1[6].xy * v1.xy; r2.xy = r2.xy / cb0[15].xx; r2.xyzw = t2.Sample(s3_s, r2.xy).xyzw; r2.xy = r2.xy * float2(2,2) + float2(-1,-1); r1.w = dot(r2.xy, r2.xy); r1.w = rsqrt(r1.w); r2.xy = r2.xy * r1.ww; r1.w = cb0[15].y / r0.y; r1.w = max(0.00499999989, r1.w); r2.z = cb0[16].z + -r0.y; r2.z = cmp(r2.z < 0); if (r2.z != 0) discard; r2.zw = float2(0,0); while (true) { r3.x = cmp((int)r2.w >= 4); if (r3.x != 0) break; r3.x = dot(icb[r2.w+0].xxyy, r2.xxyy); r3.xy = r2.xy * -r3.xx + icb[r2.w+0].xy; r3.xy = r3.xy * r1.ww; r3.zw = float2(0.707000017,0.707000017) * r3.xy; r4.x = r3.x * 0.707000017 + -r3.w; r4.y = r3.z + r3.w; r3.zw = r3.xy * float2(0.300000012,0.300000012) + v1.xy; r5.xyzw = t0.Sample(s1_s, r3.zw).xyzw; r3.zw = r3.zw * float2(2,2) + float2(-1,-1); // _InverseViewProject r6.xyzw = cb0[8].xyzw * r3.wwww; r6.xyzw = cb0[7].xyzw * r3.zzzz + r6.xyzw; r5.xyzw = cb0[9].xyzw * r5.xxxx + r6.xyzw; r5.xyzw = cb0[10].xyzw + r5.xyzw; r5.xyz = r5.xyz / r5.www; tmp = mul(float4(r5.xyz, 1), vp); tmp.x -= stereo.x * (tmp.w - stereo.y); r5.xyz = mul(tmp, _InverseViewProject); r5.xyz = r5.xyz + -r0.xzw; r3.z = dot(r5.xyz, r5.xyz); r3.w = rsqrt(r3.z); r5.xyz = r5.xyz * r3.www; r3.z = sqrt(r3.z); r3.w = dot(r1.xyz, r5.xyz); r3.w = -cb0[16].x + r3.w; r3.w = max(0, r3.w); r3.z = r3.z * cb0[15].w + 1; r3.z = 1 / r3.z; r3.z = r3.w * r3.z; r3.z = r3.z * cb0[15].z + r2.z; r4.xy = r4.xy * float2(0.600000024,0.600000024) + v1.xy; r5.xyzw = t0.Sample(s1_s, r4.xy).xyzw; r4.xy = r4.xy * float2(2,2) + float2(-1,-1); // _InverseViewProject r6.xyzw = cb0[8].xyzw * r4.yyyy; r4.xyzw = cb0[7].xyzw * r4.xxxx + r6.xyzw; r4.xyzw = cb0[9].xyzw * r5.xxxx + r4.xyzw; r4.xyzw = cb0[10].xyzw + r4.xyzw; r4.xyz = r4.xyz / r4.www; tmp = mul(float4(r4.xyz, 1), vp); tmp.x -= stereo.x * (tmp.w - stereo.y); r4.xyz = mul(tmp, _InverseViewProject); r4.xyz = r4.xyz + -r0.xzw; r3.w = dot(r4.xyz, r4.xyz); r4.w = rsqrt(r3.w); r4.xyz = r4.xyz * r4.www; r3.w = sqrt(r3.w); r4.x = dot(r1.xyz, r4.xyz); r4.x = -cb0[16].x + r4.x; r4.x = max(0, r4.x); r3.w = r3.w * cb0[15].w + 1; r3.w = 1 / r3.w; r3.w = r4.x * r3.w; r3.z = r3.w * cb0[15].z + r3.z; r3.xy = r3.xy * float2(0.899999976,0.899999976) + v1.xy; r4.xyzw = t0.Sample(s1_s, r3.xy).xyzw; r3.xy = r3.xy * float2(2,2) + float2(-1,-1); // _InverseViewProject r5.xyzw = cb0[8].xyzw * r3.yyyy; r5.xyzw = cb0[7].xyzw * r3.xxxx + r5.xyzw; r4.xyzw = cb0[9].xyzw * r4.xxxx + r5.xyzw; r4.xyzw = cb0[10].xyzw + r4.xyzw; r3.xyw = r4.xyz / r4.www; tmp = mul(float4(r3.xyw, 1), vp); tmp.x -= stereo.x * (tmp.w - stereo.y); r3.xyw = mul(tmp, _InverseViewProject); r3.xyw = r3.xyw + -r0.xzw; r4.x = dot(r3.xyw, r3.xyw); r4.y = rsqrt(r4.x); r3.xyw = r4.yyy * r3.xyw; r4.x = sqrt(r4.x); r3.x = dot(r1.xyz, r3.xyw); r3.x = -cb0[16].x + r3.x; r3.x = max(0, r3.x); r3.y = r4.x * cb0[15].w + 1; r3.y = 1 / r3.y; r3.x = r3.x * r3.y; r2.z = r3.x * cb0[15].z + r3.z; r2.w = (int)r2.w + 1; } r0.x = -r2.z * 0.0833333358 + 1; r0.z = cb0[16].z + -cb0[16].w; r0.y = r0.y + -r0.z; r0.z = cb0[16].z + -r0.z; r0.y = saturate(r0.y / r0.z); r0.z = 1 + -r0.x; r0.x = r0.y * r0.z + r0.x; r1.xyzw = t3.Sample(s0_s, w1.xy).xyzw; r0.y = dot(r1.xyz, float3(0.298999995,0.587000012,0.114)); r0.y = cb0[16].y * r0.y; r0.z = 1 + -r0.x; r0.xyz = r0.yyy * r0.zzz + r0.xxx; r0.w = 1; o0.xyzw = saturate(cb0[17].xyzw + r0.xyzw); return; }[/code]
This is a very similar fixed shader from another game, maybe this help:
// ---- Created with 3Dmigoto v1.2.36 on Fri May 06 11:15:51 2016
Texture2D<float4> t3 : register(t3);

Texture2D<float4> t2 : register(t2);

Texture2D<float4> t1 : register(t1);

Texture2D<float4> t0 : register(t0);

SamplerState s3_s : register(s3);

SamplerState s2_s : register(s2);

SamplerState s1_s : register(s1);

SamplerState s0_s : register(s0);

cbuffer cb1 : register(b1)
{
float4 cb1[8];
}

cbuffer cb0 : register(b0)
{
float4 cb0[18];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);

#include <matrix.hlsl>

void main(
float4 v0 : SV_POSITION0,
float2 v1 : TEXCOORD0,
float2 w1 : TEXCOORD1,
out float4 o0 : SV_Target0)
{
const float4 icb[] = { { 1.000000, 0, 0, 0},
{ -1.000000, 0, 0, 0},
{ 0, 1.000000, 0, 0},
{ 0, -1.000000, 0, 0} };
float4 r0,r1,r2,r3,r4,r5,r6;
uint4 bitmask, uiDest;
float4 fDest;

float4 stereo = StereoParams.Load(0);
row_major matrix _InverseViewProject = matrix(cb0[7], cb0[8], cb0[9], cb0[10]);
row_major matrix vp = inverse(_InverseViewProject);
float4 tmp;

r0.xyzw = t0.Sample(s1_s, v1.xy).xyzw;
r0.y = cb1[7].z * r0.x + cb1[7].w;
r0.y = 1 / r0.y;
r0.zw = v1.xy * float2(2,2) + float2(-1,-1);

// _InverseViewProject
r1.xyzw = cb0[8].xyzw * r0.wwww;
r1.xyzw = cb0[7].xyzw * r0.zzzz + r1.xyzw;
r1.xyzw = cb0[9].xyzw * r0.xxxx + r1.xyzw;
r1.xyzw = cb0[10].xyzw + r1.xyzw;

r0.xzw = r1.xyz / r1.www;

tmp = mul(float4(r0.xzw, 1), vp);
tmp.x -= stereo.x * (tmp.w - stereo.y);
r0.xzw = mul(tmp, _InverseViewProject);

r1.xyzw = t1.Sample(s2_s, v1.xy).xyzw;
r1.xyz = r1.xyz * float3(3.55539989,3.55539989,0) + float3(-1.77769995,-1.77769995,1);
r1.z = dot(r1.xyz, r1.xyz);
r1.z = 2 / r1.z;
r1.xy = r1.zz * r1.xy;
r1.z = -1 + r1.z;

// _CameraModelView
r2.xyz = cb0[12].xyz * r1.yyy;
r1.xyw = cb0[11].xyz * r1.xxx + r2.xyz;
r1.xyz = cb0[13].xyz * r1.zzz + r1.xyw;

r2.xy = cb1[6].xy * v1.xy;
r2.xy = r2.xy / cb0[15].xx;
r2.xyzw = t2.Sample(s3_s, r2.xy).xyzw;
r2.xy = r2.xy * float2(2,2) + float2(-1,-1);
r1.w = dot(r2.xy, r2.xy);
r1.w = rsqrt(r1.w);
r2.xy = r2.xy * r1.ww;
r1.w = cb0[15].y / r0.y;
r1.w = max(0.00499999989, r1.w);
r2.z = cb0[16].z + -r0.y;
r2.z = cmp(r2.z < 0);
if (r2.z != 0) discard;
r2.zw = float2(0,0);
while (true) {
r3.x = cmp((int)r2.w >= 4);
if (r3.x != 0) break;
r3.x = dot(icb[r2.w+0].xxyy, r2.xxyy);
r3.xy = r2.xy * -r3.xx + icb[r2.w+0].xy;
r3.xy = r3.xy * r1.ww;
r3.zw = float2(0.707000017,0.707000017) * r3.xy;
r4.x = r3.x * 0.707000017 + -r3.w;
r4.y = r3.z + r3.w;
r3.zw = r3.xy * float2(0.300000012,0.300000012) + v1.xy;
r5.xyzw = t0.Sample(s1_s, r3.zw).xyzw;
r3.zw = r3.zw * float2(2,2) + float2(-1,-1);

// _InverseViewProject
r6.xyzw = cb0[8].xyzw * r3.wwww;
r6.xyzw = cb0[7].xyzw * r3.zzzz + r6.xyzw;
r5.xyzw = cb0[9].xyzw * r5.xxxx + r6.xyzw;
r5.xyzw = cb0[10].xyzw + r5.xyzw;
r5.xyz = r5.xyz / r5.www;

tmp = mul(float4(r5.xyz, 1), vp);
tmp.x -= stereo.x * (tmp.w - stereo.y);
r5.xyz = mul(tmp, _InverseViewProject);

r5.xyz = r5.xyz + -r0.xzw;
r3.z = dot(r5.xyz, r5.xyz);
r3.w = rsqrt(r3.z);
r5.xyz = r5.xyz * r3.www;
r3.z = sqrt(r3.z);
r3.w = dot(r1.xyz, r5.xyz);
r3.w = -cb0[16].x + r3.w;
r3.w = max(0, r3.w);
r3.z = r3.z * cb0[15].w + 1;
r3.z = 1 / r3.z;
r3.z = r3.w * r3.z;
r3.z = r3.z * cb0[15].z + r2.z;
r4.xy = r4.xy * float2(0.600000024,0.600000024) + v1.xy;
r5.xyzw = t0.Sample(s1_s, r4.xy).xyzw;
r4.xy = r4.xy * float2(2,2) + float2(-1,-1);

// _InverseViewProject
r6.xyzw = cb0[8].xyzw * r4.yyyy;
r4.xyzw = cb0[7].xyzw * r4.xxxx + r6.xyzw;
r4.xyzw = cb0[9].xyzw * r5.xxxx + r4.xyzw;
r4.xyzw = cb0[10].xyzw + r4.xyzw;
r4.xyz = r4.xyz / r4.www;

tmp = mul(float4(r4.xyz, 1), vp);
tmp.x -= stereo.x * (tmp.w - stereo.y);
r4.xyz = mul(tmp, _InverseViewProject);

r4.xyz = r4.xyz + -r0.xzw;
r3.w = dot(r4.xyz, r4.xyz);
r4.w = rsqrt(r3.w);
r4.xyz = r4.xyz * r4.www;
r3.w = sqrt(r3.w);
r4.x = dot(r1.xyz, r4.xyz);
r4.x = -cb0[16].x + r4.x;
r4.x = max(0, r4.x);
r3.w = r3.w * cb0[15].w + 1;
r3.w = 1 / r3.w;
r3.w = r4.x * r3.w;
r3.z = r3.w * cb0[15].z + r3.z;
r3.xy = r3.xy * float2(0.899999976,0.899999976) + v1.xy;
r4.xyzw = t0.Sample(s1_s, r3.xy).xyzw;
r3.xy = r3.xy * float2(2,2) + float2(-1,-1);

// _InverseViewProject
r5.xyzw = cb0[8].xyzw * r3.yyyy;
r5.xyzw = cb0[7].xyzw * r3.xxxx + r5.xyzw;
r4.xyzw = cb0[9].xyzw * r4.xxxx + r5.xyzw;
r4.xyzw = cb0[10].xyzw + r4.xyzw;
r3.xyw = r4.xyz / r4.www;

tmp = mul(float4(r3.xyw, 1), vp);
tmp.x -= stereo.x * (tmp.w - stereo.y);
r3.xyw = mul(tmp, _InverseViewProject);

r3.xyw = r3.xyw + -r0.xzw;
r4.x = dot(r3.xyw, r3.xyw);
r4.y = rsqrt(r4.x);
r3.xyw = r4.yyy * r3.xyw;
r4.x = sqrt(r4.x);
r3.x = dot(r1.xyz, r3.xyw);
r3.x = -cb0[16].x + r3.x;
r3.x = max(0, r3.x);
r3.y = r4.x * cb0[15].w + 1;
r3.y = 1 / r3.y;
r3.x = r3.x * r3.y;
r2.z = r3.x * cb0[15].z + r3.z;
r2.w = (int)r2.w + 1;
}
r0.x = -r2.z * 0.0833333358 + 1;
r0.z = cb0[16].z + -cb0[16].w;
r0.y = r0.y + -r0.z;
r0.z = cb0[16].z + -r0.z;
r0.y = saturate(r0.y / r0.z);
r0.z = 1 + -r0.x;
r0.x = r0.y * r0.z + r0.x;
r1.xyzw = t3.Sample(s0_s, w1.xy).xyzw;
r0.y = dot(r1.xyz, float3(0.298999995,0.587000012,0.114));
r0.y = cb0[16].y * r0.y;
r0.z = 1 + -r0.x;
r0.xyz = r0.yyy * r0.zzz + r0.xxx;
r0.w = 1;
o0.xyzw = saturate(cb0[17].xyzw + r0.xyzw);
return;
}

#4
Posted 07/17/2017 09:05 PM   
I was wrong with the last shader.. This lights shaders are very similar to light shafts shaders. [code]// hlsltool.py -I ../.. --fix-unity-sun-shafts --only-autofixed --fxc /home/dss/fxc.exe cdb6f9913b4eac3a-vs_replace.txt // 3DMigoto: cdb6f9913b4eac3a | Unity headers extracted from NewSunshafts.shader // Shader "Hidden/SunShaftsComposite" { // Properties { // _MainTex ("Base", 2D) = "" { } // _ColorBuffer ("Color", 2D) = "" { } // _Skybox ("Skybox", 2D) = "" { } // } // Fallback Off // SubShader 1/1 { // Pass 2/5 { // ZTest Always // ZWrite Off // Cull Off // GpuProgramID 129903 // Program "vp" { // SubProgram "d3d11 " { // GpuProgramIndex 7 // } // } // } // } // } // // Unity 5.3 headers extracted from NewSunshafts.shader.decompressed: // API d3d11 // Shader model vs_4_0 // undeciphered1: 6 0 0 // undeciphered2: 1 0 2 0 0 // undeciphered3: 9 2 0 0 3 4 // ConstBuffer "$Globals" 176 // Vector 128 [_BlurRadius4] // Vector 144 [_SunPosition] // ConstBuffer "UnityPerDraw" 352 // Matrix 0 [glstate_matrix_mvp] // BindCB "$Globals" 0 // BindCB "UnityPerDraw" 1 // // Headers extracted with DarkStarSword's extract_unity53_shaders.py // https://raw.githubusercontent.com/DarkStarSword/3d-fixes/master/extract_unity53_shaders.py // ---- Created with 3Dmigoto v1.2.36 on Fri May 06 11:04:53 2016 cbuffer cb1 : register(b1) { float4 cb1[4]; } cbuffer cb0 : register(b0) { float4 cb0[11]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : POSITION0, float2 v1 : TEXCOORD0, out float4 o0 : SV_Position0, out float2 o1 : TEXCOORD0, out float2 p1 : TEXCOORD1) { float4 r0; uint4 bitmask, uiDest; float4 fDest; float4 stereo = StereoParams.Load(0); float separation = stereo.x, convergence = stereo.y, eye = stereo.z; // Unity sun position fix inserted with DarkStarSword's hlsltool.py: // hlsltool.py -I ../.. --fix-unity-sun-shafts --only-autofixed --fxc /home/dss/fxc.exe cdb6f9913b4eac3a-vs_replace.txt float4 _SunPosition = cb0[9]; _SunPosition.x += separation / 2; r0.xyzw = cb1[1].xyzw * v0.yyyy; r0.xyzw = cb1[0].xyzw * v0.xxxx + r0.xyzw; r0.xyzw = cb1[2].xyzw * v0.zzzz + r0.xyzw; o0.xyzw = cb1[3].xyzw * v0.wwww + r0.xyzw; r0.xy = _SunPosition.xy + -v1.xy; p1.xy = cb0[8].xy * r0.xy; o1.xy = v1.xy; return; } [/code] [code]// red lights beam // ---- Created with 3Dmigoto v1.2.62 on Sun Jul 16 17:56:52 2017 cbuffer cb1 : register(b1) { float4 cb1[4]; } cbuffer cb0 : register(b0) { float4 cb0[6]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : POSITION0, float2 v1 : TEXCOORD0, out float2 o0 : TEXCOORD0, out float2 p0 : TEXCOORD1, out float2 o1 : TEXCOORD2, out float2 p1 : TEXCOORD3, out float2 o2 : TEXCOORD4, out float4 o3 : SV_POSITION0) { float4 r0,r1; uint4 bitmask, uiDest; float4 fDest; o0.xy = v1.xy; r0.xy = -cb0[5].xy * float2(0.5,0.5) + v1.xy; p0.xy = r0.xy; r0.z = cb0[5].x; r0.w = 0; p1.xy = r0.xy + r0.zw; r1.x = 0; r1.y = cb0[5].y; o1.xy = r1.xy + r0.xy; o2.xy = cb0[5].xy + r0.xy; r0.xyzw = cb1[1].xyzw * v0.yyyy; r0.xyzw = cb1[0].xyzw * v0.xxxx + r0.xyzw; r0.xyzw = cb1[2].xyzw * v0.zzzz + r0.xyzw; o3.xyzw = cb1[3].xyzw * v0.wwww + r0.xyzw; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // using 3Dmigoto v1.2.62 on Sun Jul 16 17:56:52 2017 // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // POSITION 0 xyzw 0 NONE float xyzw // TEXCOORD 0 xy 1 NONE float xy // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // TEXCOORD 0 xy 0 NONE float xy // TEXCOORD 1 zw 0 NONE float zw // TEXCOORD 2 xy 1 NONE float xy // TEXCOORD 3 zw 1 NONE float zw // TEXCOORD 4 xy 2 NONE float xy // SV_POSITION 0 xyzw 3 POS float xyzw // vs_4_0 dcl_constantbuffer cb0[6], immediateIndexed dcl_constantbuffer cb1[4], immediateIndexed dcl_input v0.xyzw dcl_input v1.xy dcl_output o0.xy dcl_output o0.zw dcl_output o1.xy dcl_output o1.zw dcl_output o2.xy dcl_output_siv o3.xyzw, position dcl_temps 2 mov o0.xy, v1.xyxx mad r0.xy, -cb0[5].xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), v1.xyxx mov o0.zw, r0.xxxy mov r0.z, cb0[5].x mov r0.w, l(0) add o1.zw, r0.zzzw, r0.xxxy mov r1.x, l(0) mov r1.y, cb0[5].y add o1.xy, r0.xyxx, r1.xyxx add o2.xy, r0.xyxx, cb0[5].xyxx mul r0.xyzw, v0.yyyy, cb1[1].xyzw mad r0.xyzw, cb1[0].xyzw, v0.xxxx, r0.xyzw mad r0.xyzw, cb1[2].xyzw, v0.zzzz, r0.xyzw mad o3.xyzw, cb1[3].xyzw, v0.wwww, r0.xyzw ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code]
I was wrong with the last shader.. This lights shaders are very similar to light shafts shaders.
// hlsltool.py -I ../.. --fix-unity-sun-shafts --only-autofixed --fxc /home/dss/fxc.exe cdb6f9913b4eac3a-vs_replace.txt
// 3DMigoto: cdb6f9913b4eac3a | Unity headers extracted from NewSunshafts.shader
// Shader "Hidden/SunShaftsComposite" {
// Properties {
// _MainTex ("Base", 2D) = "" { }
// _ColorBuffer ("Color", 2D) = "" { }
// _Skybox ("Skybox", 2D) = "" { }
// }
// Fallback Off
// SubShader 1/1 {
// Pass 2/5 {
// ZTest Always
// ZWrite Off
// Cull Off
// GpuProgramID 129903
// Program "vp" {
// SubProgram "d3d11 " {
// GpuProgramIndex 7
// }
// }
// }
// }
// }
//
// Unity 5.3 headers extracted from NewSunshafts.shader.decompressed:
// API d3d11
// Shader model vs_4_0
// undeciphered1: 6 0 0
// undeciphered2: 1 0 2 0 0
// undeciphered3: 9 2 0 0 3 4
// ConstBuffer "$Globals" 176
// Vector 128 [_BlurRadius4]
// Vector 144 [_SunPosition]
// ConstBuffer "UnityPerDraw" 352
// Matrix 0 [glstate_matrix_mvp]
// BindCB "$Globals" 0
// BindCB "UnityPerDraw" 1
//
// Headers extracted with DarkStarSword's extract_unity53_shaders.py
// https://raw.githubusercontent.com/DarkStarSword/3d-fixes/master/extract_unity53_shaders.py


// ---- Created with 3Dmigoto v1.2.36 on Fri May 06 11:04:53 2016
cbuffer cb1 : register(b1)
{
float4 cb1[4];
}

cbuffer cb0 : register(b0)
{
float4 cb0[11];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : POSITION0,
float2 v1 : TEXCOORD0,
out float4 o0 : SV_Position0,
out float2 o1 : TEXCOORD0,
out float2 p1 : TEXCOORD1)
{
float4 r0;
uint4 bitmask, uiDest;
float4 fDest;

float4 stereo = StereoParams.Load(0);
float separation = stereo.x, convergence = stereo.y, eye = stereo.z;

// Unity sun position fix inserted with DarkStarSword's hlsltool.py:
// hlsltool.py -I ../.. --fix-unity-sun-shafts --only-autofixed --fxc /home/dss/fxc.exe cdb6f9913b4eac3a-vs_replace.txt
float4 _SunPosition = cb0[9];
_SunPosition.x += separation / 2;

r0.xyzw = cb1[1].xyzw * v0.yyyy;
r0.xyzw = cb1[0].xyzw * v0.xxxx + r0.xyzw;
r0.xyzw = cb1[2].xyzw * v0.zzzz + r0.xyzw;
o0.xyzw = cb1[3].xyzw * v0.wwww + r0.xyzw;
r0.xy = _SunPosition.xy + -v1.xy;
p1.xy = cb0[8].xy * r0.xy;
o1.xy = v1.xy;
return;
}


// red lights beam
// ---- Created with 3Dmigoto v1.2.62 on Sun Jul 16 17:56:52 2017
cbuffer cb1 : register(b1)
{
float4 cb1[4];
}

cbuffer cb0 : register(b0)
{
float4 cb0[6];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : POSITION0,
float2 v1 : TEXCOORD0,
out float2 o0 : TEXCOORD0,
out float2 p0 : TEXCOORD1,
out float2 o1 : TEXCOORD2,
out float2 p1 : TEXCOORD3,
out float2 o2 : TEXCOORD4,
out float4 o3 : SV_POSITION0)
{
float4 r0,r1;
uint4 bitmask, uiDest;
float4 fDest;

o0.xy = v1.xy;
r0.xy = -cb0[5].xy * float2(0.5,0.5) + v1.xy;
p0.xy = r0.xy;
r0.z = cb0[5].x;
r0.w = 0;
p1.xy = r0.xy + r0.zw;
r1.x = 0;
r1.y = cb0[5].y;
o1.xy = r1.xy + r0.xy;
o2.xy = cb0[5].xy + r0.xy;
r0.xyzw = cb1[1].xyzw * v0.yyyy;
r0.xyzw = cb1[0].xyzw * v0.xxxx + r0.xyzw;
r0.xyzw = cb1[2].xyzw * v0.zzzz + r0.xyzw;
o3.xyzw = cb1[3].xyzw * v0.wwww + r0.xyzw;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.2.62 on Sun Jul 16 17:56:52 2017
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyzw 0 NONE float xyzw
// TEXCOORD 0 xy 1 NONE float xy
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD 0 xy 0 NONE float xy
// TEXCOORD 1 zw 0 NONE float zw
// TEXCOORD 2 xy 1 NONE float xy
// TEXCOORD 3 zw 1 NONE float zw
// TEXCOORD 4 xy 2 NONE float xy
// SV_POSITION 0 xyzw 3 POS float xyzw
//
vs_4_0
dcl_constantbuffer cb0[6], immediateIndexed
dcl_constantbuffer cb1[4], immediateIndexed
dcl_input v0.xyzw
dcl_input v1.xy
dcl_output o0.xy
dcl_output o0.zw
dcl_output o1.xy
dcl_output o1.zw
dcl_output o2.xy
dcl_output_siv o3.xyzw, position
dcl_temps 2
mov o0.xy, v1.xyxx
mad r0.xy, -cb0[5].xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), v1.xyxx
mov o0.zw, r0.xxxy
mov r0.z, cb0[5].x
mov r0.w, l(0)
add o1.zw, r0.zzzw, r0.xxxy
mov r1.x, l(0)
mov r1.y, cb0[5].y
add o1.xy, r0.xyxx, r1.xyxx
add o2.xy, r0.xyxx, cb0[5].xyxx
mul r0.xyzw, v0.yyyy, cb1[1].xyzw
mad r0.xyzw, cb1[0].xyzw, v0.xxxx, r0.xyzw
mad r0.xyzw, cb1[2].xyzw, v0.zzzz, r0.xyzw
mad o3.xyzw, cb1[3].xyzw, v0.wwww, r0.xyzw
ret
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

#5
Posted 07/19/2017 12:01 AM   
Scroll To Top