Ich habe eine 6900 XT und bei mpc be flackert es bei Einsatz von bicubic oder lanzos rot in dunklen Bereichen. Nicht über das ganze Bild, sondern nur da, wo dunkel ist und immer an dem Umkreis der Bilder. Seltsamerweise passiert das beim Einsatz von madvr nicht. Habe ich es bei Lost oder Prison Break bemerkt, ganz gleich, ob es als komplett DVD kopiert oder mittels MakeMKV auf die Platte einzeln kopiert war.
Das führt ebenfalls dazu, dass die selbst erstellte Profile von FakeHDR nicht funktionieren. Die steigern teils enorm den Kontrast.
Unter GTX 1080 haben die einwandfrei funktioniert. Die reichen von 600 bis 790. Doch abgesehen von 700, funktionieren keins der Profile mehr.

Vielleicht kennt sich jemand damit aus. Wobei 16 und 0 -255 sind vertauscht. Ich weiss nicht weshalb.
Das führt ebenfalls dazu, dass die selbst erstellte Profile von FakeHDR nicht funktionieren. Die steigern teils enorm den Kontrast.
// $MinimumShaderProfile: ps_3_0
/* --- Settings --- */
#define HDRPower 1.12 //[0.00 to 8.00] Strangely lowering this makes the image brighter
#define radius2 0.690 //[0.00 to 5.00] Raising this seems to make the effect stronger and also brighter
/* --- Defining Constants --- */
#define myTex2D(s,p) tex2D(s,p)
#ifndef s0
sampler s0 : register(s0);
#define s1 s0
//sampler s1 : register(s1);
float4 p0 : register(c0);
float4 p1 : register(c1);
// #define width (p0[0])
// #define height (p0[1])
// #define counter (p0[2])
// #define clock (p0[3])
// #define px (p1[0]) //one_over_width
// #define py (p1[1]) //one_over_height
#define px (p1.x) //one_over_width
#define py (p1.y) //one_over_height
#define screen_size float2(p0.x,p0.y)
#define pixel float2(px,py)
//#define pxy float2(p1.xy)
//#define PI acos(-1)
#endif
/* --- Main code --- */
/*------------------------------------------------------------------------------
HDR
------------------------------------------------------------------------------*/
float4 HDRPass( float4 colorInput, float2 Tex )
{
float3 c_center = myTex2D(s0, Tex).rgb; //reuse SMAA center sample or lumasharpen center sample?
//float3 c_center = colorInput.rgb; //or just the input?
//float3 bloom_sum1 = float3(0.0, 0.0, 0.0); //don't initialize to 0 - use the first tex2D to do that
//float3 bloom_sum2 = float3(0.0, 0.0, 0.0); //don't initialize to 0 - use the first tex2D to do that
//Tex += float2(0, 0); // +0 ? .. oh riiiight - that will surely do something useful
float radius1 = 0.7;
float3 bloom_sum1 = myTex2D(s0, Tex + float2(1.5, -1.5) * radius1).rgb;
bloom_sum1 += myTex2D(s0, Tex + float2(-1.5, -1.5) * radius1).rgb; //rearrange sample order to minimize ALU and maximize cache usage
bloom_sum1 += myTex2D(s0, Tex + float2(1.5, 1.5) * radius1).rgb;
bloom_sum1 += myTex2D(s0, Tex + float2(-1.5, 1.5) * radius1).rgb;
bloom_sum1 += myTex2D(s0, Tex + float2(0, -2.5) * radius1).rgb;
bloom_sum1 += myTex2D(s0, Tex + float2(0, 2.5) * radius1).rgb;
bloom_sum1 += myTex2D(s0, Tex + float2(-2.5, 0) * radius1).rgb;
bloom_sum1 += myTex2D(s0, Tex + float2(2.5, 0) * radius1).rgb;
bloom_sum1 *= 0.01;
float3 bloom_sum2 = myTex2D(s0, Tex + float2(1.5, -1.5) * radius2).rgb;
bloom_sum2 += myTex2D(s0, Tex + float2(-1.5, -1.5) * radius2).rgb;
bloom_sum2 += myTex2D(s0, Tex + float2(1.5, 1.5) * radius2).rgb;
bloom_sum2 += myTex2D(s0, Tex + float2(-1.5, 1.5) * radius2).rgb;
bloom_sum2 += myTex2D(s0, Tex + float2(0, -2.5) * radius2).rgb;
bloom_sum2 += myTex2D(s0, Tex + float2(0, 2.5) * radius2).rgb;
bloom_sum2 += myTex2D(s0, Tex + float2(-2.5, 0) * radius2).rgb;
bloom_sum2 += myTex2D(s0, Tex + float2(2.5, 0) * radius2).rgb;
bloom_sum2 *= 0.025;
float dist = radius2 - radius1;
float3 HDR = (c_center + (bloom_sum2 - bloom_sum1)) * dist;
float3 blend = HDR + colorInput.rgb;
colorInput.rgb = HDR + pow(blend, HDRPower); // pow - don't use fractions for HDRpower
return saturate(colorInput);
}
/* --- Main --- */
float4 main(float2 tex : TEXCOORD0) : COLOR {
float4 c0 = tex2D(s0, tex);
c0 = HDRPass(c0, tex);
return c0;
}
Unter GTX 1080 haben die einwandfrei funktioniert. Die reichen von 600 bis 790. Doch abgesehen von 700, funktionieren keins der Profile mehr.
// $MinimumShaderProfile: ps_3_0
/* --- Settings --- */
#define HDRPower 1.12 //[0.00 to 8.00] Strangely lowering this makes the image brighter
#define radius2 0.730 //[0.00 to 5.00] Raising this seems to make the effect stronger and also brighter
/* --- Defining Constants --- */
#define myTex2D(s,p) tex2D(s,p)
#ifndef s0
sampler s0 : register(s0);
#define s1 s0
//sampler s1 : register(s1);
float4 p0 : register(c0);
float4 p1 : register(c1);
// #define width (p0[0])
// #define height (p0[1])
// #define counter (p0[2])
// #define clock (p0[3])
// #define px (p1[0]) //one_over_width
// #define py (p1[1]) //one_over_height
#define px (p1.x) //one_over_width
#define py (p1.y) //one_over_height
#define screen_size float2(p0.x,p0.y)
#define pixel float2(px,py)
//#define pxy float2(p1.xy)
//#define PI acos(-1)
#endif
/* --- Main code --- */
/*------------------------------------------------------------------------------
HDR
------------------------------------------------------------------------------*/
float4 HDRPass( float4 colorInput, float2 Tex )
{
float3 c_center = myTex2D(s0, Tex).rgb; //reuse SMAA center sample or lumasharpen center sample?
//float3 c_center = colorInput.rgb; //or just the input?
//float3 bloom_sum1 = float3(0.0, 0.0, 0.0); //don't initialize to 0 - use the first tex2D to do that
//float3 bloom_sum2 = float3(0.0, 0.0, 0.0); //don't initialize to 0 - use the first tex2D to do that
//Tex += float2(0, 0); // +0 ? .. oh riiiight - that will surely do something useful
float radius1 = 0.7;
float3 bloom_sum1 = myTex2D(s0, Tex + float2(1.5, -1.5) * radius1).rgb;
bloom_sum1 += myTex2D(s0, Tex + float2(-1.5, -1.5) * radius1).rgb; //rearrange sample order to minimize ALU and maximize cache usage
bloom_sum1 += myTex2D(s0, Tex + float2(1.5, 1.5) * radius1).rgb;
bloom_sum1 += myTex2D(s0, Tex + float2(-1.5, 1.5) * radius1).rgb;
bloom_sum1 += myTex2D(s0, Tex + float2(0, -2.5) * radius1).rgb;
bloom_sum1 += myTex2D(s0, Tex + float2(0, 2.5) * radius1).rgb;
bloom_sum1 += myTex2D(s0, Tex + float2(-2.5, 0) * radius1).rgb;
bloom_sum1 += myTex2D(s0, Tex + float2(2.5, 0) * radius1).rgb;
bloom_sum1 *= 0.01;
float3 bloom_sum2 = myTex2D(s0, Tex + float2(1.5, -1.5) * radius2).rgb;
bloom_sum2 += myTex2D(s0, Tex + float2(-1.5, -1.5) * radius2).rgb;
bloom_sum2 += myTex2D(s0, Tex + float2(1.5, 1.5) * radius2).rgb;
bloom_sum2 += myTex2D(s0, Tex + float2(-1.5, 1.5) * radius2).rgb;
bloom_sum2 += myTex2D(s0, Tex + float2(0, -2.5) * radius2).rgb;
bloom_sum2 += myTex2D(s0, Tex + float2(0, 2.5) * radius2).rgb;
bloom_sum2 += myTex2D(s0, Tex + float2(-2.5, 0) * radius2).rgb;
bloom_sum2 += myTex2D(s0, Tex + float2(2.5, 0) * radius2).rgb;
bloom_sum2 *= 0.025;
float dist = radius2 - radius1;
float3 HDR = (c_center + (bloom_sum2 - bloom_sum1)) * dist;
float3 blend = HDR + colorInput.rgb;
colorInput.rgb = HDR + pow(blend, HDRPower); // pow - don't use fractions for HDRpower
return saturate(colorInput);
}
/* --- Main --- */
float4 main(float2 tex : TEXCOORD0) : COLOR {
float4 c0 = tex2D(s0, tex);
c0 = HDRPass(c0, tex);
return c0;
}

Vielleicht kennt sich jemand damit aus. Wobei 16 und 0 -255 sind vertauscht. Ich weiss nicht weshalb.
Zuletzt bearbeitet: