Files
Towards/external/loft/examples/viewer/shaders/Bloom.frag.spirv
T

93 lines
8.5 KiB
Plaintext
Raw Normal View History

2026-07-18 14:31:15 +02:00
# 
SPV_KHR_non_semantic_info NonSemantic.Shader.DebugInfo.100 GLSL.std.450mainü/home/martin/projects/loft/examples/viewer/shaders/Bloom.fraguintfloatdownscale// OpModuleProcessed client vulkan100
// OpModuleProcessed target-env vulkan1.0
// OpModuleProcessed entry-point main
#line 1
#version 450
layout(location = 0) out vec4 fragColor;
layout(location = 0) in vec2 inUV;
layout(set = 1, binding = 0) uniform sampler2D inHdr;
layout( push_constant ) uniform constants
{
ivec2 resolution;
} PushConstants;
/* a - ? - b
* | | |
* ? - c - ?
* | | |
* d - ? - e
*/
vec4 downscale() {
vec2 srcTexelSize = 1.0f / PushConstants.resolution;
float x = srcTexelSize.x;
float y = srcTexelSize.y;
vec3 color = vec3(0.0f);
vec3 a = texture(inHdr, vec2(inUV.x - 2*x, inUV.y + 2*y)).rgb;
vec3 b = texture(inHdr, vec2(inUV.x + 2*x, inUV.y + 2*y)).rgb;
vec3 c = texture(inHdr, inUV).rgb;
vec3 d = texture(inHdr, vec2(inUV.x - 2*x, inUV.y - 2*y)).rgb;
vec3 e = texture(inHdr, vec2(inUV.x + 2*x, inUV.y - 2*y)).rgb;
return vec4((a + b + c + d) * (1.0f/8.0f) + c * 1.0f/2.0f, 1.0);
/* vec3 a = texture(inHdr, vec2(inUV.x - 2*x, inUV.y + 2*y)).rgb;
vec3 b = texture(inHdr, vec2(inUV.x, inUV.y + 2*y)).rgb;
vec3 c = texture(inHdr, vec2(inUV.x + 2*x, inUV.y + 2*y)).rgb;
vec3 d = texture(inHdr, vec2(inUV.x - 2*x, inUV.y)).rgb;
vec3 e = texture(inHdr, vec2(inUV.x, inUV.y)).rgb;
vec3 f = texture(inHdr, vec2(inUV.x + 2*x, inUV.y)).rgb;
vec3 g = texture(inHdr, vec2(inUV.x - 2*x, inUV.y - 2*y)).rgb;
vec3 h = texture(inHdr, vec2(inUV.x, inUV.y - 2*y)).rgb;
vec3 i = texture(inHdr, vec2(inUV.x + 2*x, inUV.y - 2*y)).rgb;
vec3 j = texture(inHdr, vec2(inUV.x - x, inUV.y + y)).rgb;
vec3 k = texture(inHdr, vec2(inUV.x + x, inUV.y + y)).rgb;
vec3 l = texture(inHdr, vec2(inUV.x - x, inUV.y - y)).rgb;
vec3 m = texture(inHdr, vec2(inUV.x + x, inUV.y - y)).rgb;
vec3 color = e * 0.125f;
color += (a + c + g + i) * 0.03125;
color += (b + d + f + h) * 0.0625;
color += (j + k + l + m) * 0.125;
return vec4(color, 1.0f); */
}
void main() {
fragColor = downscale();
}
"main/srcTexelSize6int<resolution@constantsFPushConstantsTx\yhcolorpavtype.2d.imagew@type.2d.image{type.sampled.image|@type.sampled.imageinHdrinUVšb®c¸dÌeþfragColormaindownscale(-srcTexelSize:constants:resolutionDPushConstantsRxZyfcolornainHdrinUV˜b¬cdÊeüfragColorG:H:#G!G"GGü! +
+ +  
+
 
 
+ ! 
 #++ +!  !  
+$? #"$ "
$( )! *(++ ,)+ +0 ./)0  2+4€?5  76
 85 97!:8+=
+>
; <9=>
?
@ 0 @
; A :+B C?B ;AD +G EF?0 FDG+5H I 8 J9B P Q+ +U STU +] [\] b c
db ec+ +i ghci +l,bmlll+q opcq  t x u
v q wx
yt z
{ q |x
}y ~z ;} zq G ƒ( ) ;ƒ )q G ˆ  +Œ@+ šc +¯ ­®c¯ +¹ ·¸c¹ +Í ËÌcÍ +à#+ç>+ö= ú û
;úü+ÿ@ ýþÿ þüG+A6ø ø#
ùg$$ ÷e#