Skip to content
This repository was archived by the owner on Nov 30, 2020. It is now read-only.

Commit e975bc5

Browse files
committed
Fixed bloom VR
1 parent a1c9001 commit e975bc5

4 files changed

Lines changed: 42 additions & 43 deletions

File tree

PostProcessing/Runtime/Utils/ShaderIDs.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ static class ShaderIDs
7373
internal static readonly int Bloom_DirtTex = Shader.PropertyToID("_Bloom_DirtTex");
7474
internal static readonly int Bloom_Settings = Shader.PropertyToID("_Bloom_Settings");
7575
internal static readonly int Bloom_Color = Shader.PropertyToID("_Bloom_Color");
76-
internal static readonly int Bloom_Threshold = Shader.PropertyToID("_Bloom_Threshold");
7776
internal static readonly int Bloom_DirtTileOffset = Shader.PropertyToID("_Bloom_DirtTileOffset");
7877

7978
internal static readonly int ChromaticAberration_Amount = Shader.PropertyToID("_ChromaticAberration_Amount");

PostProcessing/Shaders/Builtins/Bloom.shader

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ Shader "Hidden/PostProcessing/Bloom"
2828

2929
half4 FragPrefilter13(VaryingsDefault i) : SV_Target
3030
{
31-
half4 color = DownsampleBox13Tap(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), UnityStereoTransformScreenSpaceTex(i.texcoord), _MainTex_TexelSize.xy);
31+
half4 color = DownsampleBox13Tap(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), i.texcoord, _MainTex_TexelSize.xy);
3232
return Prefilter(SafeHDR(color), i.texcoord);
3333
}
3434

3535
half4 FragPrefilter4(VaryingsDefault i) : SV_Target
3636
{
37-
half4 color = DownsampleBox4Tap(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), UnityStereoTransformScreenSpaceTex(i.texcoord), _MainTex_TexelSize.xy);
37+
half4 color = DownsampleBox4Tap(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), i.texcoord, _MainTex_TexelSize.xy);
3838
return Prefilter(SafeHDR(color), i.texcoord);
3939
}
4040

@@ -43,13 +43,13 @@ Shader "Hidden/PostProcessing/Bloom"
4343

4444
half4 FragDownsample13(VaryingsDefault i) : SV_Target
4545
{
46-
half4 color = DownsampleBox13Tap(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), UnityStereoTransformScreenSpaceTex(i.texcoord), _MainTex_TexelSize.xy);
46+
half4 color = DownsampleBox13Tap(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), i.texcoord, _MainTex_TexelSize.xy);
4747
return color;
4848
}
4949

5050
half4 FragDownsample4(VaryingsDefault i) : SV_Target
5151
{
52-
half4 color = DownsampleBox4Tap(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), UnityStereoTransformScreenSpaceTex(i.texcoord), _MainTex_TexelSize.xy);
52+
half4 color = DownsampleBox4Tap(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), i.texcoord, _MainTex_TexelSize.xy);
5353
return color;
5454
}
5555

@@ -64,34 +64,34 @@ Shader "Hidden/PostProcessing/Bloom"
6464

6565
half4 FragUpsampleTent(VaryingsDefault i) : SV_Target
6666
{
67-
half4 bloom = UpsampleTent(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), UnityStereoTransformScreenSpaceTex(i.texcoord), _MainTex_TexelSize.xy, _SampleScale);
68-
return Combine(bloom, UnityStereoTransformScreenSpaceTex(i.texcoord));
67+
half4 bloom = UpsampleTent(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), i.texcoord, _MainTex_TexelSize.xy, _SampleScale);
68+
return Combine(bloom, i.texcoordStereo);
6969
}
7070

7171
half4 FragUpsampleBox(VaryingsDefault i) : SV_Target
7272
{
73-
half4 bloom = UpsampleBox(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), UnityStereoTransformScreenSpaceTex(i.texcoord), _MainTex_TexelSize.xy, _SampleScale);
74-
return Combine(bloom, UnityStereoTransformScreenSpaceTex(i.texcoord));
73+
half4 bloom = UpsampleBox(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), i.texcoord, _MainTex_TexelSize.xy, _SampleScale);
74+
return Combine(bloom, i.texcoordStereo);
7575
}
7676

7777
// ----------------------------------------------------------------------------------------
7878
// Debug overlays
7979

8080
half4 FragDebugOverlayThreshold(VaryingsDefault i) : SV_Target
8181
{
82-
half4 color = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, UnityStereoTransformScreenSpaceTex(i.texcoord));
82+
half4 color = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.texcoordStereo);
8383
return half4(Prefilter(SafeHDR(color), i.texcoord).rgb, 1.0);
8484
}
8585

8686
half4 FragDebugOverlayTent(VaryingsDefault i) : SV_Target
8787
{
88-
half4 bloom = UpsampleTent(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), UnityStereoTransformScreenSpaceTex(i.texcoord), _MainTex_TexelSize.xy, _SampleScale);
88+
half4 bloom = UpsampleTent(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), i.texcoord, _MainTex_TexelSize.xy, _SampleScale);
8989
return half4(bloom.rgb * _ColorIntensity.w * _ColorIntensity.rgb, 1.0);
9090
}
9191

9292
half4 FragDebugOverlayBox(VaryingsDefault i) : SV_Target
9393
{
94-
half4 bloom = UpsampleBox(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), UnityStereoTransformScreenSpaceTex(i.texcoord), _MainTex_TexelSize.xy, _SampleScale);
94+
half4 bloom = UpsampleBox(TEXTURE2D_PARAM(_MainTex, sampler_MainTex), i.texcoord, _MainTex_TexelSize.xy, _SampleScale);
9595
return half4(bloom.rgb * _ColorIntensity.w * _ColorIntensity.rgb, 1.0);
9696
}
9797

PostProcessing/Shaders/Builtins/Uber.shader

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ Shader "Hidden/PostProcessing/Uber"
135135

136136
#if BLOOM
137137
{
138-
half4 bloom = UpsampleTent(TEXTURE2D_PARAM(_BloomTex, sampler_BloomTex), i.texcoordStereo, _BloomTex_TexelSize.xy, _Bloom_Settings.x);
138+
half4 bloom = UpsampleTent(TEXTURE2D_PARAM(_BloomTex, sampler_BloomTex), i.texcoord, _BloomTex_TexelSize.xy, _Bloom_Settings.x);
139139
half4 dirt = half4(SAMPLE_TEXTURE2D(_Bloom_DirtTex, sampler_Bloom_DirtTex, i.texcoord * _Bloom_DirtTileOffset.xy + _Bloom_DirtTileOffset.zw).rgb, 0.0);
140140

141141
// Additive bloom (artist friendly)

PostProcessing/Shaders/Sampling.hlsl

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,19 @@
1414
// . . . . . . .
1515
half4 DownsampleBox13Tap(TEXTURE2D_ARGS(tex, samplerTex), float2 uv, float2 texelSize)
1616
{
17-
half4 A = SAMPLE_TEXTURE2D(tex, samplerTex, uv + texelSize * float2(-1.0, -1.0));
18-
half4 B = SAMPLE_TEXTURE2D(tex, samplerTex, uv + texelSize * float2( 0.0, -1.0));
19-
half4 C = SAMPLE_TEXTURE2D(tex, samplerTex, uv + texelSize * float2( 1.0, -1.0));
20-
half4 D = SAMPLE_TEXTURE2D(tex, samplerTex, uv + texelSize * float2(-0.5, -0.5));
21-
half4 E = SAMPLE_TEXTURE2D(tex, samplerTex, uv + texelSize * float2( 0.5, -0.5));
22-
half4 F = SAMPLE_TEXTURE2D(tex, samplerTex, uv + texelSize * float2(-1.0, 0.0));
23-
half4 G = SAMPLE_TEXTURE2D(tex, samplerTex, uv );
24-
half4 H = SAMPLE_TEXTURE2D(tex, samplerTex, uv + texelSize * float2( 1.0, 0.0));
25-
half4 I = SAMPLE_TEXTURE2D(tex, samplerTex, uv + texelSize * float2(-0.5, 0.5));
26-
half4 J = SAMPLE_TEXTURE2D(tex, samplerTex, uv + texelSize * float2( 0.5, 0.5));
27-
half4 K = SAMPLE_TEXTURE2D(tex, samplerTex, uv + texelSize * float2(-1.0, 1.0));
28-
half4 L = SAMPLE_TEXTURE2D(tex, samplerTex, uv + texelSize * float2( 0.0, 1.0));
29-
half4 M = SAMPLE_TEXTURE2D(tex, samplerTex, uv + texelSize * float2( 1.0, 1.0));
17+
half4 A = SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + texelSize * float2(-1.0, -1.0)));
18+
half4 B = SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + texelSize * float2( 0.0, -1.0)));
19+
half4 C = SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + texelSize * float2( 1.0, -1.0)));
20+
half4 D = SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + texelSize * float2(-0.5, -0.5)));
21+
half4 E = SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + texelSize * float2( 0.5, -0.5)));
22+
half4 F = SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + texelSize * float2(-1.0, 0.0)));
23+
half4 G = SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv ));
24+
half4 H = SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + texelSize * float2( 1.0, 0.0)));
25+
half4 I = SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + texelSize * float2(-0.5, 0.5)));
26+
half4 J = SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + texelSize * float2( 0.5, 0.5)));
27+
half4 K = SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + texelSize * float2(-1.0, 1.0)));
28+
half4 L = SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + texelSize * float2( 0.0, 1.0)));
29+
half4 M = SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + texelSize * float2( 1.0, 1.0)));
3030

3131
half2 div = (1.0 / 4.0) * half2(0.5, 0.125);
3232

@@ -45,10 +45,10 @@ half4 DownsampleBox4Tap(TEXTURE2D_ARGS(tex, samplerTex), float2 uv, float2 texel
4545
float4 d = texelSize.xyxy * float4(-1.0, -1.0, 1.0, 1.0);
4646

4747
half4 s;
48-
s = (SAMPLE_TEXTURE2D(tex, samplerTex, uv + d.xy));
49-
s += (SAMPLE_TEXTURE2D(tex, samplerTex, uv + d.zy));
50-
s += (SAMPLE_TEXTURE2D(tex, samplerTex, uv + d.xw));
51-
s += (SAMPLE_TEXTURE2D(tex, samplerTex, uv + d.zw));
48+
s = (SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + d.xy)));
49+
s += (SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + d.zy)));
50+
s += (SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + d.xw)));
51+
s += (SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + d.zw)));
5252

5353
return s * (1.0 / 4.0);
5454
}
@@ -59,17 +59,17 @@ half4 UpsampleTent(TEXTURE2D_ARGS(tex, samplerTex), float2 uv, float2 texelSize,
5959
float4 d = texelSize.xyxy * float4(1.0, 1.0, -1.0, 0.0) * sampleScale;
6060

6161
half4 s;
62-
s = SAMPLE_TEXTURE2D(tex, samplerTex, uv - d.xy);
63-
s += SAMPLE_TEXTURE2D(tex, samplerTex, uv - d.wy) * 2.0;
64-
s += SAMPLE_TEXTURE2D(tex, samplerTex, uv - d.zy);
62+
s = SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv - d.xy));
63+
s += SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv - d.wy)) * 2.0;
64+
s += SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv - d.zy));
6565

66-
s += SAMPLE_TEXTURE2D(tex, samplerTex, uv + d.zw) * 2.0;
67-
s += SAMPLE_TEXTURE2D(tex, samplerTex, uv ) * 4.0;
68-
s += SAMPLE_TEXTURE2D(tex, samplerTex, uv + d.xw) * 2.0;
66+
s += SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + d.zw)) * 2.0;
67+
s += SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv )) * 4.0;
68+
s += SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + d.xw)) * 2.0;
6969

70-
s += SAMPLE_TEXTURE2D(tex, samplerTex, uv + d.zy);
71-
s += SAMPLE_TEXTURE2D(tex, samplerTex, uv + d.wy) * 2.0;
72-
s += SAMPLE_TEXTURE2D(tex, samplerTex, uv + d.xy);
70+
s += SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + d.zy));
71+
s += SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + d.wy)) * 2.0;
72+
s += SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + d.xy));
7373

7474
return s * (1.0 / 16.0);
7575
}
@@ -80,10 +80,10 @@ half4 UpsampleBox(TEXTURE2D_ARGS(tex, samplerTex), float2 uv, float2 texelSize,
8080
float4 d = texelSize.xyxy * float4(-1.0, -1.0, 1.0, 1.0) * (sampleScale * 0.5);
8181

8282
half4 s;
83-
s = (SAMPLE_TEXTURE2D(tex, samplerTex, uv + d.xy));
84-
s += (SAMPLE_TEXTURE2D(tex, samplerTex, uv + d.zy));
85-
s += (SAMPLE_TEXTURE2D(tex, samplerTex, uv + d.xw));
86-
s += (SAMPLE_TEXTURE2D(tex, samplerTex, uv + d.zw));
83+
s = (SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + d.xy)));
84+
s += (SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + d.zy)));
85+
s += (SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + d.xw)));
86+
s += (SAMPLE_TEXTURE2D(tex, samplerTex, UnityStereoTransformScreenSpaceTex(uv + d.zw)));
8787

8888
return s * (1.0 / 4.0);
8989
}

0 commit comments

Comments
 (0)