| #version 450 |
| |
| layout(location = 0) out vec4 FragColor; |
| layout(location = 0) flat in vec2 vTex; |
| layout(location = 1) flat in int vIndex; |
| layout(binding = 0) uniform sampler2D uSampler[4]; |
| layout(binding = 4) uniform sampler uSamplers[4]; |
| layout(binding = 8) uniform texture2D uTextures[4]; |
| |
| vec4 sample_from_argument(sampler2D samplers[4]) |
| { |
| return texture(samplers[vIndex], vTex + 0.2); |
| } |
| |
| vec4 sample_single_from_argument(sampler2D samp) |
| { |
| return texture(samp, vTex + 0.3); |
| } |
| |
| vec4 sample_from_global() |
| { |
| return texture(uSampler[vIndex], vTex + 0.1); |
| } |
| |
| void main() |
| { |
| FragColor = vec4(0.0); |
| FragColor += texture(sampler2D(uTextures[2], uSamplers[1]), vTex); |
| FragColor += texture(uSampler[vIndex], vTex); |
| FragColor += sample_from_global(); |
| FragColor += sample_from_argument(uSampler); |
| FragColor += sample_single_from_argument(uSampler[3]); |
| } |