Skip to content
Snippets Groups Projects
Commit 335c740e authored by Jens Koenen's avatar Jens Koenen
Browse files

Merge branch 'develop' into feature/indirect-lighting

parents dab428ab 74bf4a76
Branches
No related tags found
1 merge request!18Indirect Lighting
......@@ -15,13 +15,19 @@ void main()
vec3(0.114, 0.436, -0.10001) //third column
);
float gamma = 2.2;
float u_max = 0.436;
float v_max = 0.615;
int height = textureSize(samplerInput, 0).y;
ivec2 coord = ivec2(gl_FragCoord.xy);
coord.y = height - coord.y;
vec3 color_rgb = texelFetch(samplerInput, coord, 0).xyz;
vec3 color_yuv = convert_matrix * color_rgb;
vec3 color_rgb_linear = texelFetch(samplerInput, coord, 0).xyz;
vec3 color_rgb_gamma = pow(color_rgb_linear, vec3(1.0 / gamma)); //Slight change in brighness when compared to emulated headset. Maybe due to different gamma compression when using sRGB.
vec3 color_yuv = convert_matrix * color_rgb_gamma;
outLuma = color_yuv.x;
outChroma = color_yuv.yz + 0.5;
outChroma.x = ((color_yuv.y / u_max) + 1.0) / 2.0;
outChroma.y = ((color_yuv.z / v_max) + 1.0) / 2.0;
}
......@@ -142,6 +142,19 @@ void EmulatedHeadset::submit_frame(VkCommandBuffer command_buffer, VkImageLayout
VkFormat EmulatedHeadset::get_format() const
{
switch (this->get_application()->get_target()->get_format())
{
case VK_FORMAT_B8G8R8A8_UNORM:
case VK_FORMAT_B8G8R8A8_SRGB:
return VK_FORMAT_B8G8R8A8_SRGB;
case VK_FORMAT_R8G8B8A8_UNORM:
case VK_FORMAT_R8G8B8A8_SRGB:
return VK_FORMAT_R8G8B8A8_SRGB;
default:
lava::log()->warn("Can't derive correct sRGB color format for headset framebuffer!");
break;
}
return this->get_application()->get_target()->get_format();
}
......
......@@ -216,7 +216,7 @@ private:
glm::vec3 scene_min = glm::vec3(0.0f);
glm::vec3 scene_max = glm::vec3(0.0f);
const glm::vec3 ambient_color = glm::vec3(5.0f); //NOTE: This factor is used so that the Bistro scene looks okay.
const glm::vec3 ambient_color = glm::vec3(0.5f); //NOTE: This factor is used so that the Bistro scene looks okay.
float exposure = 0.1f; //NOTE: This factor is used so that the Bistro scene looks okay.
bool exposure_changed = false;
......
......@@ -2,7 +2,24 @@
bool CompanionWindow::create(lava::device_ptr device, lava::render_target::ptr target)
{
this->framebuffer = lava::make_image(target->get_format(), device, target->get_size());
VkFormat format = target->get_format();
switch (format)
{
case VK_FORMAT_B8G8R8A8_UNORM:
case VK_FORMAT_B8G8R8A8_SRGB:
format = VK_FORMAT_B8G8R8A8_SRGB;
break;
case VK_FORMAT_R8G8B8A8_UNORM:
case VK_FORMAT_R8G8B8A8_SRGB:
format = VK_FORMAT_R8G8B8A8_SRGB;
break;
default:
lava::log()->warn("Can't derive correct sRGB color format for companion window!");
break;
}
this->framebuffer = lava::make_image(format, device, target->get_size());
if (this->framebuffer == nullptr)
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment