SuperDepth 3d
  6 / 17    
ok, but I didn't want to worry ioxa anymore. I bugged him to death in the past lol. He made me that specialty gaussian one. He tried to replicate the effects but could not. The color filter one is in the same boat. He was unable to port that and just made the updated one from scratch.
ok, but I didn't want to worry ioxa anymore. I bugged him to death in the past lol. He made me that specialty gaussian one. He tried to replicate the effects but could not. The color filter one is in the same boat. He was unable to port that and just made the updated one from scratch.

Model: Clevo P570WM Laptop
GPU: GeForce GTX 980M ~8GB GDDR5
CPU: Intel Core i7-4960X CPU +4.2GHz (12 CPUs)
Memory: 32GB Corsair Vengeance DDR3L 1600MHz, 4x8gb
OS: Microsoft Windows 7 Ultimate

#76
Posted 09/04/2016 09:47 PM   
[quote="Shinra358"]ok, but I didn't want to worry ioxa anymore. I bugged him to death in the past lol. He made me that specialty gaussian one. He tried to replicate the effects but could not. The color filter one is in the same boat. He was unable to port that and just made the updated one from scratch.[/quote] I see why now Man this will take time to port over since he used a lot of #define, #if, and #endif you are also going to have this make this shader Self dependent. RFX_backbufferColor needs to be changed. It's do able but time consuming. First thing you recommend is changing all the #if, and #endif to a more normal lay out like this. add this line in the shader [code]#define pix float2(BUFFER_RCP_WIDTH, BUFFER_RCP_HEIGHT)[/code] and [code] texture BackBufferTex : COLOR; sampler BackBuffer { Texture = BackBufferTex; }; [/code] Example Code conversion. [code]float4 HGaussianBlurPS(in float4 pos : SV_Position, in float2 texcoord : TEXCOORD) : COLOR { #if (GaussQuality == 0) float sampleOffsets[5] = { 0.0, 1.4347826, 3.3478260, 5.2608695, 7.1739130 }; float sampleWeights[5] = { 0.16818994, 0.27276957, 0.11690125, 0.024067905, 0.0021112196 }; #else float sampleOffsets[9] = { 0.0, 1.43*.50, 1.43, 2, 3.35, 4, 5.26, 6, 7.17 }; float sampleWeights[9] = { 0.168, 0.273, 0.273, 0.117, 0.117, 0.024, 0.024, 0.002, 0.002}; #endif float4 color = tex2D(RFX_backbufferColor, texcoord) * sampleWeights[0]; for(int i = 1; i < N_PASSES; ++i) { color += tex2D(RFX_backbufferColor, texcoord + float2(sampleOffsets[i]*HW * PIXEL_SIZE.x, 0.0)) * sampleWeights[i]; color += tex2D(RFX_backbufferColor, texcoord - float2(sampleOffsets[i]*HW * PIXEL_SIZE.x, 0.0)) * sampleWeights[i]; } return color; }[/code] to this. [code]float4 HGaussianBlurPS(in float4 pos : SV_Position, in float2 texcoord : TEXCOORD) : COLOR { if (GaussQuality == 0) { float sampleOffsets[5] = { 0.0, 1.4347826, 3.3478260, 5.2608695, 7.1739130 }; float sampleWeights[5] = { 0.16818994, 0.27276957, 0.11690125, 0.024067905, 0.0021112196 }; } else { float sampleOffsets[9] = { 0.0, 1.43*.50, 1.43, 2, 3.35, 4, 5.26, 6, 7.17 }; float sampleWeights[9] = { 0.168, 0.273, 0.273, 0.117, 0.117, 0.024, 0.024, 0.002, 0.002}; } float4 color = tex2D(BackBuffer , texcoord) * sampleWeights[0]; for(int i = 1; i < N_PASSES; ++i) { color += tex2D(BackBuffer , texcoord + float2(sampleOffsets[i]*HW * pix.x, 0.0)) * sampleWeights[i]; color += tex2D(BackBuffer , texcoord - float2(sampleOffsets[i]*HW * pix.x, 0.0)) * sampleWeights[i]; } return color; }[/code] Not hard just time taking. You can do it your self. But, the problem comes around the bottom you would need to separate and clean this up to each category. also for 3.0 do this add this code. [code]// Vertex shader generating a triangle covering the entire screen void PostProcessVS(in uint id : SV_VertexID, out float4 position : SV_Position, out float2 texcoord : TEXCOORD) { texcoord.x = (id == 2) ? 2.0 : 0.0; texcoord.y = (id == 1) ? 2.0 : 0.0; position = float4(texcoord * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); }[/code] so you can change VertexShader = RFX_VS_PostProcess; to VertexShader = PostProcessVS; The part that require a code change. remove the if's and endif's then ad them back in. From this [code]technique GAUSS < bool enabled = true; toggle = GAUSS_TOGGLE; > { pass { VertexShader = RFX_VS_PostProcess; PixelShader = PassThrough; RenderTarget = origframeTex2D; } #if (USE_BP == 1) pass P0 { VertexShader = RFX_VS_PostProcess; PixelShader = BrightPassFilterPS; } #endif #if (USE_HorizontalGauss == 1) pass P1 { VertexShader = RFX_VS_PostProcess; PixelShader = HGaussianBlurPS; } #endif #if (USE_VerticalGauss == 1) pass P2 { VertexShader = RFX_VS_PostProcess; PixelShader = VGaussianBlurPS; } #endif #if (USE_SlantGauss == 1) pass P3 { VertexShader = RFX_VS_PostProcess; PixelShader = SGaussianBlurPS; } #endif pass P5 { VertexShader = RFX_VS_PostProcess; PixelShader = CombinePS; } }[/code] The part that require a code change. remove the if's and endif's then ad them back in. so it looks like this. [code]technique GAUSS { pass { VertexShader = PostProcessVS; PixelShader = PassThrough; RenderTarget = origframeTex2D; } pass { VertexShader = PostProcessVS; PixelShader = BrightPassFilterPS; } pass { VertexShader = PostProcessVS; PixelShader = HGaussianBlurPS; } pass { VertexShader = PostProcessVS; PixelShader = VGaussianBlurPS; } pass { VertexShader = PostProcessVS; PixelShader = SGaussianBlurPS; } pass P5 { VertexShader = PostProcessVS; PixelShader = CombinePS; } }[/code] Now for the if's we removed need to be added back in but back where the code was stated befor. I will show you with a example. [code]#if (USE_BP == 1) pass P0 { VertexShader = RFX_VS_PostProcess; PixelShader = BrightPassFilterPS; } #endif[/code] Lets go look for USE_BP and BrightPassFilterPS ok found USE_BP here is the code [code]//BrightPass *also affects blur and unsharpmask* *Recommend off for blur* //Doesn't seem to be working right but it makes bloom look better. 1 = on, 0 = off. #define USE_BP 1[/code] now we need to change this too the new way. [code]uniform bool USE_BP < ui_label = "BrightPass"; ui_tooltip = "affects blur and unsharpmask blah blah blah what ever you want."; > = false;[/code] now lets look for BrightPassFilterPS [code]float4 BrightPassFilterPS(in float4 pos : SV_Position, in float2 texcoord : TEXCOORD) : COLOR { float4 color = tex2D(RFX_backbufferColor, texcoord); return float4 (color.rgb * pow (abs (max (color.r, max (color.g, color.b))), 2.0), 2.0f)*BloomIntensity; }[/code] You need change it to this. [code]float4 BrightPassFilterPS(in float4 pos : SV_Position, in float2 texcoord : TEXCOORD) : COLOR { float4 color; if(USE_BP == 0) { color = tex2D(BackBuffer, texcoord) } else { color = (color.rgb * pow (abs (max (color.r, max (color.g, color.b))), 2.0), 2.0f)*BloomIntensity; } return color; }[/code] This is a time taking process but it can be done.
Shinra358 said:ok, but I didn't want to worry ioxa anymore. I bugged him to death in the past lol. He made me that specialty gaussian one. He tried to replicate the effects but could not. The color filter one is in the same boat. He was unable to port that and just made the updated one from scratch.


I see why now Man this will take time to port over since he used a lot of #define, #if, and #endif you are also going to have this make this shader Self dependent. RFX_backbufferColor needs to be changed. It's do able but time consuming.

First thing you recommend is changing all the #if, and #endif to a more normal lay out like this.
add this line in the shader

#define pix float2(BUFFER_RCP_WIDTH, BUFFER_RCP_HEIGHT)


and

texture BackBufferTex : COLOR;

sampler BackBuffer
{
Texture = BackBufferTex;
};



Example Code conversion.

float4 HGaussianBlurPS(in float4 pos : SV_Position, in float2 texcoord : TEXCOORD) : COLOR
{
#if (GaussQuality == 0)
float sampleOffsets[5] = { 0.0, 1.4347826, 3.3478260, 5.2608695, 7.1739130 };
float sampleWeights[5] = { 0.16818994, 0.27276957, 0.11690125, 0.024067905, 0.0021112196 };
#else
float sampleOffsets[9] = { 0.0, 1.43*.50, 1.43, 2, 3.35, 4, 5.26, 6, 7.17 };
float sampleWeights[9] = { 0.168, 0.273, 0.273, 0.117, 0.117, 0.024, 0.024, 0.002, 0.002};
#endif

float4 color = tex2D(RFX_backbufferColor, texcoord) * sampleWeights[0];
for(int i = 1; i < N_PASSES; ++i) {
color += tex2D(RFX_backbufferColor, texcoord + float2(sampleOffsets[i]*HW * PIXEL_SIZE.x, 0.0)) * sampleWeights[i];
color += tex2D(RFX_backbufferColor, texcoord - float2(sampleOffsets[i]*HW * PIXEL_SIZE.x, 0.0)) * sampleWeights[i];
}
return color;
}


to this.


float4 HGaussianBlurPS(in float4 pos : SV_Position, in float2 texcoord : TEXCOORD) : COLOR
{
if (GaussQuality == 0)
{
float sampleOffsets[5] = { 0.0, 1.4347826, 3.3478260, 5.2608695, 7.1739130 };
float sampleWeights[5] = { 0.16818994, 0.27276957, 0.11690125, 0.024067905, 0.0021112196 };
}
else
{
float sampleOffsets[9] = { 0.0, 1.43*.50, 1.43, 2, 3.35, 4, 5.26, 6, 7.17 };
float sampleWeights[9] = { 0.168, 0.273, 0.273, 0.117, 0.117, 0.024, 0.024, 0.002, 0.002};
}

float4 color = tex2D(BackBuffer , texcoord) * sampleWeights[0];
for(int i = 1; i < N_PASSES; ++i)
{
color += tex2D(BackBuffer , texcoord + float2(sampleOffsets[i]*HW * pix.x, 0.0)) * sampleWeights[i];
color += tex2D(BackBuffer , texcoord - float2(sampleOffsets[i]*HW * pix.x, 0.0)) * sampleWeights[i];
}
return color;
}



Not hard just time taking. You can do it your self. But, the problem comes around the bottom

you would need to separate and clean this up to each category.

also for 3.0 do this
add this code.
// Vertex shader generating a triangle covering the entire screen
void PostProcessVS(in uint id : SV_VertexID, out float4 position : SV_Position, out float2 texcoord : TEXCOORD)
{
texcoord.x = (id == 2) ? 2.0 : 0.0;
texcoord.y = (id == 1) ? 2.0 : 0.0;
position = float4(texcoord * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0);
}


so you can change VertexShader = RFX_VS_PostProcess; to VertexShader = PostProcessVS;

The part that require a code change. remove the if's and endif's then ad them back in.

From this

technique GAUSS < bool enabled = true; toggle = GAUSS_TOGGLE; >
{
pass
{
VertexShader = RFX_VS_PostProcess;
PixelShader = PassThrough;
RenderTarget = origframeTex2D;
}

#if (USE_BP == 1)
pass P0
{
VertexShader = RFX_VS_PostProcess;
PixelShader = BrightPassFilterPS;
}
#endif

#if (USE_HorizontalGauss == 1)
pass P1
{
VertexShader = RFX_VS_PostProcess;
PixelShader = HGaussianBlurPS;
}
#endif

#if (USE_VerticalGauss == 1)
pass P2
{
VertexShader = RFX_VS_PostProcess;
PixelShader = VGaussianBlurPS;
}
#endif

#if (USE_SlantGauss == 1)
pass P3
{
VertexShader = RFX_VS_PostProcess;
PixelShader = SGaussianBlurPS;
}
#endif

pass P5
{
VertexShader = RFX_VS_PostProcess;
PixelShader = CombinePS;
}
}


The part that require a code change. remove the if's and endif's then ad them back in.

so it looks like this.

technique GAUSS
{
pass
{
VertexShader = PostProcessVS;
PixelShader = PassThrough;
RenderTarget = origframeTex2D;
}


pass
{
VertexShader = PostProcessVS;
PixelShader = BrightPassFilterPS;
}



pass
{
VertexShader = PostProcessVS;
PixelShader = HGaussianBlurPS;
}


pass
{
VertexShader = PostProcessVS;
PixelShader = VGaussianBlurPS;
}



pass
{
VertexShader = PostProcessVS;
PixelShader = SGaussianBlurPS;
}


pass P5
{
VertexShader = PostProcessVS;
PixelShader = CombinePS;
}
}


Now for the if's we removed need to be added back in but back where the code was stated befor. I will show you with a example.

#if (USE_BP == 1)
pass P0
{
VertexShader = RFX_VS_PostProcess;
PixelShader = BrightPassFilterPS;
}
#endif


Lets go look for USE_BP and BrightPassFilterPS

ok found USE_BP here is the code
//BrightPass *also affects blur and unsharpmask* *Recommend off for blur*
//Doesn't seem to be working right but it makes bloom look better. 1 = on, 0 = off.
#define USE_BP 1


now we need to change this too the new way.

uniform bool USE_BP <
ui_label = "BrightPass";
ui_tooltip = "affects blur and unsharpmask blah blah blah what ever you want.";
> = false;


now lets look for BrightPassFilterPS

float4 BrightPassFilterPS(in float4 pos : SV_Position, in float2 texcoord : TEXCOORD) : COLOR
{
float4 color = tex2D(RFX_backbufferColor, texcoord);
return float4 (color.rgb * pow (abs (max (color.r, max (color.g, color.b))), 2.0), 2.0f)*BloomIntensity;
}


You need change it to this.

float4 BrightPassFilterPS(in float4 pos : SV_Position, in float2 texcoord : TEXCOORD) : COLOR
{
float4 color;
if(USE_BP == 0)
{
color = tex2D(BackBuffer, texcoord)
}
else
{
color = (color.rgb * pow (abs (max (color.r, max (color.g, color.b))), 2.0), 2.0f)*BloomIntensity;
}
return color;
}


This is a time taking process but it can be done.

#77
Posted 09/04/2016 10:32 PM   
As for ColorFilter.h Holy...... hell this guy loves using #if statements and #define. Same thing for this one. But, with so many of them stacked you need to do them one by one. Take your time fix the first one. Then work on ColorFilter.h This one will take you even longer and you will/may make mistakes in the format and order. I used Notpad2 Mod. You can use your fav programming editor. You can get it here https://xhmikosr.io/notepad2-mod/ Keep in mind I am not showing the best way to do it. But, I am showing you the fastest way to do it.
As for ColorFilter.h Holy...... hell this guy loves using #if statements and #define. Same thing for this one. But, with so many of them stacked you need to do them one by one. Take your time fix the first one.

Then work on ColorFilter.h This one will take you even longer and you will/may make mistakes in the format and order. I used Notpad2 Mod. You can use your fav programming editor.

You can get it here https://xhmikosr.io/notepad2-mod/


Keep in mind I am not showing the best way to do it. But, I am showing you the fastest way to do it.

#78
Posted 09/04/2016 10:45 PM   
I appreciate the time you took for this explanation. I'll look over it and try my best. This conversion process is for both 2.0 and 3.0 too right? Thank you.
I appreciate the time you took for this explanation. I'll look over it and try my best. This conversion process is for both 2.0 and 3.0 too right? Thank you.

Model: Clevo P570WM Laptop
GPU: GeForce GTX 980M ~8GB GDDR5
CPU: Intel Core i7-4960X CPU +4.2GHz (12 CPUs)
Memory: 32GB Corsair Vengeance DDR3L 1600MHz, 4x8gb
OS: Microsoft Windows 7 Ultimate

#79
Posted 09/04/2016 11:33 PM   
[quote="Shinra358"]I appreciate the time you took for this explanation. I'll look over it and try my best. This conversion process is for both 2.0 and 3.0 too right? Thank you.[/quote] This is for the new 3.0. For 2.0 it's different/harder. Send it over once you finished the first one so i can test it.
Shinra358 said:I appreciate the time you took for this explanation. I'll look over it and try my best. This conversion process is for both 2.0 and 3.0 too right? Thank you.


This is for the new 3.0. For 2.0 it's different/harder. Send it over once you finished the first one so i can test it.

#80
Posted 09/04/2016 11:36 PM   
Impressive work! Makes it possible to play games streamed over the network and also now on Oculus Rift.
Impressive work! Makes it possible to play games streamed over the network and also now on Oculus Rift.

3D Vision/TRIDEF User
SHIELD portable/tablet/tv

#81
Posted 09/06/2016 05:05 PM   
[quote="SkySolstice"]Impressive work! Makes it possible to play games streamed over the network and also now on Oculus Rift.[/quote] Would you mind telling me how you are doing that so I can share with others and add a little guide to the read me? Please.
SkySolstice said:Impressive work! Makes it possible to play games streamed over the network and also now on Oculus Rift.


Would you mind telling me how you are doing that so I can share with others and add a little guide to the read me?

Please.

#82
Posted 09/07/2016 05:20 AM   
I have been using this for Mirror's egde catalyst and I think it looks better than CM mode. I don't know how to save presets though, I click the + button and enter a name for my preset and then I have no idea how to save it. Could someone please explain how to save a preset please?
I have been using this for Mirror's egde catalyst and I think it looks better than CM mode. I don't know how to save presets though, I click the + button and enter a name for my preset and then I have no idea how to save it. Could someone please explain how to save a preset please?

#83
Posted 09/07/2016 01:48 PM   
[quote="6DB"]I have been using this for Mirror's egde catalyst and I think it looks better than CM mode. I don't know how to save presets though, I click the + button and enter a name for my preset and then I have no idea how to save it. Could someone please explain how to save a preset please?[/quote] Start the tutorial the first lesson will show you how to create a profile once that is done It will save your setting. Once your enter a new for the profile once closed it will save all your setting. If you look in the directory where you installed Depth3d you should see ini file with the name you entered. Mirror's Edge really shines with Depth3D.
6DB said:I have been using this for Mirror's egde catalyst and I think it looks better than CM mode. I don't know how to save presets though, I click the + button and enter a name for my preset and then I have no idea how to save it. Could someone please explain how to save a preset please?


Start the tutorial the first lesson will show you how to create a profile once that is done
It will save your setting. Once your enter a new for the profile once closed it will save all your setting. If you look in the directory where you installed Depth3d you should see ini file with the name you entered.

Mirror's Edge really shines with Depth3D.

Gigabyte Z370 Gaming 7 32GB Ram i9-9900K GigaByte Aorus Extreme Gaming 2080TI (single) Game Blaster Z Windows 10 X64 build #17763.195 Define R6 Blackout Case Corsair H110i GTX Sandisk 1TB (OS) SanDisk 2TB SSD (Games) Seagate EXOs 8 and 12 TB drives Samsung UN46c7000 HD TV Samsung UN55HU9000 UHD TVCurrently using ACER PASSIVE EDID override on 3D TVs LG 55

#84
Posted 09/07/2016 03:05 PM   
[quote="BlueSkyDefender"][quote="SkySolstice"]Impressive work! Makes it possible to play games streamed over the network and also now on Oculus Rift.[/quote] Would you mind telling me how you are doing that so I can share with others and add a little guide to the read me? Please.[/quote] For streaming over the network, I use an Nvidia Shield tablet or Shield tv. For Oculus Rift, I use a combination of Bigscreen and SuperDepth 3D to create the 3D image. Check this page as I update it [url]https://forums.geforce.com/default/topic/961597/oculus/play-3d-games-in-sbs-on-the-virtual-screen-using-bigscreen/[/url]
BlueSkyDefender said:
SkySolstice said:Impressive work! Makes it possible to play games streamed over the network and also now on Oculus Rift.


Would you mind telling me how you are doing that so I can share with others and add a little guide to the read me?

Please.


For streaming over the network, I use an Nvidia Shield tablet or Shield tv. For Oculus Rift, I use a combination of Bigscreen and SuperDepth 3D to create the 3D image.

Check this page as I update it https://forums.geforce.com/default/topic/961597/oculus/play-3d-games-in-sbs-on-the-virtual-screen-using-bigscreen/

3D Vision/TRIDEF User
SHIELD portable/tablet/tv

#85
Posted 09/07/2016 09:58 PM   
Is there any way to exaggerate a DepthMap? ...for instance a game has a DM but it's extremely shallow, a few shades of grey. Is there a way to make the lightest shade white and the darkest shade black? Or perhaps a way to do this on the fly? ...like an auto-levels in photo editing, which could basically work like an auto-convergence/depth, setting a min/max and it keeping everything in between.
Is there any way to exaggerate a DepthMap? ...for instance a game has a DM but it's extremely shallow, a few shades of grey. Is there a way to make the lightest shade white and the darkest shade black?

Or perhaps a way to do this on the fly? ...like an auto-levels in photo editing, which could basically work like an auto-convergence/depth, setting a min/max and it keeping everything in between.
#86
Posted 09/13/2016 02:01 AM   
[quote="TsaebehT"]Is there any way to exaggerate a DepthMap? ...for instance a game has a DM but it's extremely shallow, a few shades of grey. Is there a way to make the lightest shade white and the darkest shade black? Or perhaps a way to do this on the fly? ...like an auto-levels in photo editing, which could basically work like an auto-convergence/depth, setting a min/max and it keeping everything in between.[/quote] I haven't had a chance to do it the "correct" way but there is discussion on it in the thread. In the meantime, I hacked some setting to add a lot more depth in Witcher 3 at the cost of some pop-out. http://reshade.me/forum/shader-presentation/2128-sidebyside-3d-depth-map-based-stereoscopic-shader?start=320#16635
TsaebehT said:Is there any way to exaggerate a DepthMap? ...for instance a game has a DM but it's extremely shallow, a few shades of grey. Is there a way to make the lightest shade white and the darkest shade black?

Or perhaps a way to do this on the fly? ...like an auto-levels in photo editing, which could basically work like an auto-convergence/depth, setting a min/max and it keeping everything in between.


I haven't had a chance to do it the "correct" way but there is discussion on it in the thread. In the meantime, I hacked some setting to add a lot more depth in Witcher 3 at the cost of some pop-out.

http://reshade.me/forum/shader-presentation/2128-sidebyside-3d-depth-map-based-stereoscopic-shader?start=320#16635

1080 GTX 8GB SLI | I7-4770K@4.5GHz | 16GB RAM | Win10x64
Asus ROG Swift PG278Q | 3D Vision 2

#87
Posted 09/13/2016 02:59 AM   
[quote="TsaebehT"]Is there any way to exaggerate a DepthMap? ...for instance a game has a DM but it's extremely shallow, a few shades of grey. Is there a way to make the lightest shade white and the darkest shade black? Or perhaps a way to do this on the fly? ...like an auto-levels in photo editing, which could basically work like an auto-convergence/depth, setting a min/max and it keeping everything in between.[/quote] I use 5 custom Depth map linearization codes. Listed here so you can see eatch one. [code] //Custom One if (CustomDM == 1) { float cF = Far; //10+ float cN = Near;//1 depthM = (pow(abs(cN-depthM),cF)); } //Custom Two if (CustomDM == 2) { float cF = Far; //100+ float cN = Near; //0.01- depthM = cF / (1 + cF - (depthM/cN) * (1 - cF)); } //Custom Three if (CustomDM == 3) { float cF = Far;//0.025 float cN = Near;//1.0 depthM = (cN * cF / (cF + depthM * (cN - cF))); } //Custom Four if (CustomDM == 4) { float cF = Far;//1000000000 or 1 float cN = Near;//0 or 13 depthM = (exp(depthM * log(cF + cN)) - cN) / cF; } //Custom Five if (CustomDM == 5) { float cF = Far;//1 float cN = Near;//0.025 depthM = cN/(cN-cF) / ( depthM - cF/(cF-cN)); }[/code] Each code here is used to help with Depth precision and and I can never get it 100% right. If any oen can come up with a better code then what I have listed here. Please tell me. Here a wright up on Nvidia Developer blog post. https://developer.nvidia.com/content/depth-precision-visualized I agree It's is a pain in the ass...... And the funny thing is I have to deal with it with every game. this is the basic code by the Depth = Near / (Near - Far) So ok say you want to control the depth by using the depth map. Use Depth map View mode in the newest Reshade 3.0 Keep in mind it's still in Development. Also use custom depth mode from 1-5. Play around with the Near and Far till you have something you want. Once you have that done. Then save your information for the setting you like. Yes you can control the depth using the depth map. It's just that it's not easy. This is not seen on Reshade 2.0 because that would involve a lot alt-tabbing that may crash the game. Oh and each game render the depth buffer differently. ok take OpenGL you want to use a code like Depth = (Near + Far) / (Near - Far) So yes as of right now If you want your on custom depth map use Reshade 3.0 and play around with the settings. I think I should add the custom depth map setting to the back port. That way you can just copy over setting from Rehade 3.0 over to Reshade 2.0. The best Depth map code I made by accident was for Dying Light. For some reason depthM = cF / (1 + cF - (depthM/cN) * (1 - cF)); works really well in that game. But, most of the time it's hit and misses. *update I will Be Uploading the this 1.8.6 update tomorrow. With the custom depth map 1-5. For Reshade 2.0 I think I would add a depth map Toggle key.
TsaebehT said:Is there any way to exaggerate a DepthMap? ...for instance a game has a DM but it's extremely shallow, a few shades of grey. Is there a way to make the lightest shade white and the darkest shade black?

Or perhaps a way to do this on the fly? ...like an auto-levels in photo editing, which could basically work like an auto-convergence/depth, setting a min/max and it keeping everything in between.


I use 5 custom Depth map linearization codes.
Listed here so you can see eatch one.
//Custom One
if (CustomDM == 1)
{
float cF = Far; //10+
float cN = Near;//1
depthM = (pow(abs(cN-depthM),cF));
}

//Custom Two
if (CustomDM == 2)
{
float cF = Far; //100+
float cN = Near; //0.01-
depthM = cF / (1 + cF - (depthM/cN) * (1 - cF));
}

//Custom Three
if (CustomDM == 3)
{
float cF = Far;//0.025
float cN = Near;//1.0
depthM = (cN * cF / (cF + depthM * (cN - cF)));
}

//Custom Four
if (CustomDM == 4)
{
float cF = Far;//1000000000 or 1
float cN = Near;//0 or 13
depthM = (exp(depthM * log(cF + cN)) - cN) / cF;
}

//Custom Five
if (CustomDM == 5)
{
float cF = Far;//1
float cN = Near;//0.025
depthM = cN/(cN-cF) / ( depthM - cF/(cF-cN));
}

Each code here is used to help with Depth precision and and I can never get it 100% right. If any oen can come up with a better code then what I have listed here. Please tell me.

Here a wright up on Nvidia Developer blog post.

https://developer.nvidia.com/content/depth-precision-visualized

I agree It's is a pain in the ass...... And the funny thing is I have to deal with it with every game.

this is the basic code by the Depth = Near / (Near - Far)

So ok say you want to control the depth by using the depth map. Use Depth map View mode in the newest Reshade 3.0 Keep in mind it's still in Development. Also use custom depth mode from 1-5. Play around with the Near and Far till you have something you want. Once you have that done. Then save your information for the setting you like.

Yes you can control the depth using the depth map. It's just that it's not easy. This is not seen on Reshade 2.0 because that would involve a lot alt-tabbing that may crash the game.

Oh and each game render the depth buffer differently. ok take OpenGL you want to use a code like

Depth = (Near + Far) / (Near - Far)

So yes as of right now If you want your on custom depth map use Reshade 3.0 and play around with the settings.

I think I should add the custom depth map setting to the back port. That way you can just copy over setting from Rehade 3.0 over to Reshade 2.0.

The best Depth map code I made by accident was for Dying Light. For some reason depthM = cF / (1 + cF - (depthM/cN) * (1 - cF)); works really well in that game. But, most of the time it's hit and misses.

*update I will Be Uploading the this 1.8.6 update tomorrow. With the custom depth map 1-5. For Reshade 2.0 I think I would add a depth map Toggle key.

#88
Posted 09/13/2016 03:20 AM   
I have an idea. Tell me if this is possible: with this splitscreen, is it possible for you to add an option that, 1. removes the hud in the first image but keeps the rest of the picture 2. removes the picture in the 2nd image, but keeps the hud. or: 1. create a splitscreen of 3 2. 1st and 2nd image will not have the hud but will have everything else. 3. 3rd image will have the hud only and nothing else This will improve 3d vision AND using 2D with shaders that mess up the hud by having your hud on the 2nd or 3rd screen (something the user would do with the game window and the os, not this shader) and allowing you to use any shader/3d setting to your heart's content without hud issue or eyestrain issue because of a hud. Dual and/or triple monitor users would benefit from this the most because the hud will be on your other monitor so you can still play regularly while the 3d remains on the first monitor (pretty much like a 3DS). I figure if you could make a splitscreen like this, that it would also be possible to remove elements from each side to achieve this. What do you think?
I have an idea. Tell me if this is possible:

with this splitscreen, is it possible for you to add an option that,

1. removes the hud in the first image but keeps the rest of the picture

2. removes the picture in the 2nd image, but keeps the hud.


or:

1. create a splitscreen of 3

2. 1st and 2nd image will not have the hud but will have everything else.

3. 3rd image will have the hud only and nothing else



This will improve 3d vision AND using 2D with shaders that mess up the hud by having your hud on the 2nd or 3rd screen (something the user would do with the game window and the os, not this shader) and allowing you to use any shader/3d setting to your heart's content without hud issue or eyestrain issue because of a hud. Dual and/or triple monitor users would benefit from this the most because the hud will be on your other monitor so you can still play regularly while the 3d remains on the first monitor (pretty much like a 3DS). I figure if you could make a splitscreen like this, that it would also be possible to remove elements from each side to achieve this. What do you think?

Model: Clevo P570WM Laptop
GPU: GeForce GTX 980M ~8GB GDDR5
CPU: Intel Core i7-4960X CPU +4.2GHz (12 CPUs)
Memory: 32GB Corsair Vengeance DDR3L 1600MHz, 4x8gb
OS: Microsoft Windows 7 Ultimate

#89
Posted 09/13/2016 03:53 PM   
-
-

EVGA GTX 1070 FTW
Motherboard MSI Z370 SLI PLUS
Processor i5-8600K @ 4.2 | Cooler SilverStone AR02
Corsair Vengeance 8GB 3000Mhz | Windows 10 Pro
SSD 240gb Kingston UV400 | 2x HDs 1TB RAID0 | 2x HD 2TB RAID1
TV LG Cinema 3D 49lb6200 | ACER EDID override | Oculus Rift CV1
Steam: http://steamcommunity.com/id/J0hnnieW4lker
Screenshots: http://phereo.com/583b3a2f8884282d5d000007

#90
Posted 09/13/2016 07:40 PM   
  6 / 17    
Scroll To Top