Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions 25.Blur/BlurPassHorizontal.comp
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#include "nbl/builtin/glsl/ext/CentralLimitBoxBlur/parameters.glsl"

#define _NBL_GLSL_EXT_BLUR_INPUT_SET_DEFINED_ 0
#define _NBL_GLSL_EXT_BLUR_INPUT_BINDING_DEFINED_ 0

layout (set = _NBL_GLSL_EXT_BLUR_INPUT_SET_DEFINED_, binding = _NBL_GLSL_EXT_BLUR_INPUT_BINDING_DEFINED_) uniform sampler2D in_image;
#define _NBL_GLSL_EXT_BLUR_INPUT_DESCRIPTOR_DEFINED_

float downscale(in vec2 tex_coords, in uint channel)
{
return (texture(in_image, tex_coords)[channel] + textureOffset(in_image, tex_coords, ivec2(1, 0))[channel] + textureOffset(in_image, tex_coords, ivec2(0, 1))[channel]
+ textureOffset(in_image, tex_coords, ivec2(1, 1))[channel]) / 4.f;
}

float nbl_glsl_ext_Blur_getPaddedData(in uvec3 coordinate, in uint channel)
{
const uvec2 image_dims = nbl_glsl_ext_Blur_Parameters_t_getDimensions().xy;
float data = 0.f;
if (all(lessThan(coordinate.xy, image_dims)))
{
vec2 tex_coords = vec2(coordinate.xy) / vec2(image_dims);
data = downscale(tex_coords, channel);
}

return data;
}
#define _NBL_GLSL_EXT_BLUR_GET_PADDED_DATA_DEFINED_

#include "nbl/builtin/glsl/ext/CentralLimitBoxBlur/default_compute_blur.comp"
20 changes: 20 additions & 0 deletions 25.Blur/BlurPassVertical.comp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#define _NBL_GLSL_EXT_BLUR_OUTPUT_SET_DEFINED_ 0
#define _NBL_GLSL_EXT_BLUR_OUTPUT_BINDING_DEFINED_ 1

layout (set = _NBL_GLSL_EXT_BLUR_OUTPUT_SET_DEFINED_, binding = _NBL_GLSL_EXT_BLUR_OUTPUT_BINDING_DEFINED_, rgba16f) uniform image2D out_image;
#define _NBL_GLSL_EXT_BLUR_OUTPUT_DESCRIPTOR_DEFINED_

void nbl_glsl_ext_Blur_setData(in uvec3 coordinate, in uint channel, in float val)
{
const ivec2 image_dims = imageSize(out_image);
if (all(lessThan(coordinate.xy, image_dims)))
{
vec4 color = imageLoad(out_image, ivec2(coordinate.xy));
color[channel] = val;
imageStore(out_image, ivec2(coordinate.xy), color);
}
}

#define _NBL_GLSL_EXT_BLUR_SET_DATA_DEFINED_

#include "nbl/builtin/glsl/ext/CentralLimitBoxBlur/default_compute_blur.comp"
6 changes: 5 additions & 1 deletion 25.Blur/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,8 @@ if(NOT RES)
message(FATAL_ERROR "common.cmake not found. Should be in {repo_root}/cmake directory")
endif()

nbl_create_executable_project(../../src/nbl/ext/Blur/CBlurPerformer.cpp "" "" "")
set(EXAMPLE_SOURCES
../../src/nbl/ext/CentralLimitBoxBlur/CBlurPerformer.cpp
)

nbl_create_executable_project("${EXAMPLE_SOURCES}" "" "" "")
18 changes: 18 additions & 0 deletions 25.Blur/FST.frag
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#version 460 core

// Copyright (C) 2018-2022 - DevSH Graphics Programming Sp. z O.O.
// This file is part of the "Nabla Engine".
// For conditions of distribution and use, see copyright notice in nabla.h

// vertex shader is provided by the fullScreenTriangle extension

layout(set = 3, binding = 0) uniform sampler2D tex0;

layout(location = 0) in vec2 TexCoord;

layout(location = 0) out vec4 pixelColor;

void main()
{
pixelColor = textureLod(tex0,TexCoord,0.0);
}
18 changes: 0 additions & 18 deletions 25.Blur/cube.frag

This file was deleted.

23 changes: 0 additions & 23 deletions 25.Blur/cube.vert

This file was deleted.

Loading