Barrel distortion as parameter
This commit is contained in:
parent
a122c2380a
commit
0eb306ec9e
3 changed files with 11 additions and 3 deletions
|
|
@ -2,6 +2,11 @@
|
||||||
|
|
||||||
layout (binding = 1) uniform sampler2DArray samplerView;
|
layout (binding = 1) uniform sampler2DArray samplerView;
|
||||||
|
|
||||||
|
layout (binding = 0) uniform UBO
|
||||||
|
{
|
||||||
|
layout(offset = 272) float distortionAlpha;
|
||||||
|
} ubo;
|
||||||
|
|
||||||
layout (location = 0) in vec2 inUV;
|
layout (location = 0) in vec2 inUV;
|
||||||
layout (location = 0) out vec4 outColor;
|
layout (location = 0) out vec4 outColor;
|
||||||
|
|
||||||
|
|
@ -9,7 +14,7 @@ layout (constant_id = 0) const float VIEW_LAYER = 0.0f;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
const float alpha = 0.2;
|
const float alpha = ubo.distortionAlpha;
|
||||||
|
|
||||||
vec2 p1 = vec2(2.0 * inUV - 1.0);
|
vec2 p1 = vec2(2.0 * inUV - 1.0);
|
||||||
vec2 p2 = p1 / (1.0 - alpha * length(p1));
|
vec2 p2 = p1 / (1.0 - alpha * length(p1));
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -56,6 +56,7 @@ public:
|
||||||
glm::mat4 projection[2];
|
glm::mat4 projection[2];
|
||||||
glm::mat4 modelview[2];
|
glm::mat4 modelview[2];
|
||||||
glm::vec4 lightPos = glm::vec4(-2.5f, -3.5f, 0.0f, 1.0f);
|
glm::vec4 lightPos = glm::vec4(-2.5f, -3.5f, 0.0f, 1.0f);
|
||||||
|
float distortionAlpha = 0.2f;
|
||||||
} ubo;
|
} ubo;
|
||||||
|
|
||||||
vks::Buffer uniformBuffer;
|
vks::Buffer uniformBuffer;
|
||||||
|
|
@ -470,7 +471,7 @@ public:
|
||||||
Layouts
|
Layouts
|
||||||
*/
|
*/
|
||||||
std::vector<VkDescriptorSetLayoutBinding> setLayoutBindings = {
|
std::vector<VkDescriptorSetLayoutBinding> setLayoutBindings = {
|
||||||
vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0),
|
vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT, 0),
|
||||||
vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 1)
|
vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 1)
|
||||||
};
|
};
|
||||||
VkDescriptorSetLayoutCreateInfo descriptorLayout = vks::initializers::descriptorSetLayoutCreateInfo(setLayoutBindings);
|
VkDescriptorSetLayoutCreateInfo descriptorLayout = vks::initializers::descriptorSetLayoutCreateInfo(setLayoutBindings);
|
||||||
|
|
@ -484,7 +485,6 @@ public:
|
||||||
VkDescriptorSetAllocateInfo allocateInfo = vks::initializers::descriptorSetAllocateInfo(descriptorPool, &descriptorSetLayout, 1);
|
VkDescriptorSetAllocateInfo allocateInfo = vks::initializers::descriptorSetAllocateInfo(descriptorPool, &descriptorSetLayout, 1);
|
||||||
VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocateInfo, &descriptorSet));
|
VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocateInfo, &descriptorSet));
|
||||||
std::vector<VkWriteDescriptorSet> writeDescriptorSets = {
|
std::vector<VkWriteDescriptorSet> writeDescriptorSets = {
|
||||||
// Binding 0: Vertex shader UBO
|
|
||||||
vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffer.descriptor),
|
vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffer.descriptor),
|
||||||
vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &multiviewPass.descriptor),
|
vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &multiviewPass.descriptor),
|
||||||
};
|
};
|
||||||
|
|
@ -726,6 +726,9 @@ public:
|
||||||
if (overlay->sliderFloat("Eye separation", &eyeSeparation, -1.0f, 1.0f)) {
|
if (overlay->sliderFloat("Eye separation", &eyeSeparation, -1.0f, 1.0f)) {
|
||||||
updateUniformBuffers();
|
updateUniformBuffers();
|
||||||
}
|
}
|
||||||
|
if (overlay->sliderFloat("Barrel distortion", &ubo.distortionAlpha, -0.6f, 0.6f)) {
|
||||||
|
updateUniformBuffers();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue