Render views using quads with barrel distortion (instead of directly blitting result to swapchain)

This commit is contained in:
saschawillems 2018-06-03 16:02:33 +02:00
parent 671cebdc63
commit a122c2380a
5 changed files with 394 additions and 328 deletions

View file

@ -0,0 +1,20 @@
#version 450
layout (binding = 1) uniform sampler2DArray samplerView;
layout (location = 0) in vec2 inUV;
layout (location = 0) out vec4 outColor;
layout (constant_id = 0) const float VIEW_LAYER = 0.0f;
void main()
{
const float alpha = 0.2;
vec2 p1 = vec2(2.0 * inUV - 1.0);
vec2 p2 = p1 / (1.0 - alpha * length(p1));
p2 = (p2 + 1.0) * 0.5;
bool inside = ((p2.x >= 0.0) && (p2.x <= 1.0) && (p2.y >= 0.0 ) && (p2.y <= 1.0));
outColor = inside ? texture(samplerView, vec3(p2, VIEW_LAYER)) : vec4(0.0);
}

Binary file not shown.

View file

@ -0,0 +1,14 @@
#version 450
layout (location = 0) out vec2 outUV;
out gl_PerVertex
{
vec4 gl_Position;
};
void main()
{
outUV = vec2((gl_VertexIndex << 1) & 2, gl_VertexIndex & 2);
gl_Position = vec4(outUV * 2.0f - 1.0f, 0.0f, 1.0f);
}

Binary file not shown.