Add inverseModelView UBO to fix texturecubemap sample

This commit is contained in:
Ben Clayton 2020-05-21 15:34:09 +01:00
parent 13c081664e
commit e3234db041
11 changed files with 42 additions and 25 deletions

View file

@ -55,6 +55,7 @@ public:
struct UBOVS {
glm::mat4 projection;
glm::mat4 modelView;
glm::mat4 inverseModelview;
float lodBias = 0.0f;
} uboVS;
@ -440,10 +441,10 @@ public:
{
std::vector<VkDescriptorSetLayoutBinding> setLayoutBindings =
{
// Binding 0 : Vertex shader uniform buffer
// Binding 0 : Uniform buffer
vks::initializers::descriptorSetLayoutBinding(
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
VK_SHADER_STAGE_VERTEX_BIT,
VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT,
0),
// Binding 1 : Fragment shader image sampler
vks::initializers::descriptorSetLayoutBinding(
@ -620,7 +621,7 @@ public:
// Prepare and initialize uniform buffer containing shader uniforms
void prepareUniformBuffers()
{
// Objact vertex shader uniform buffer
// Object vertex shader uniform buffer
VK_CHECK_RESULT(vulkanDevice->createBuffer(
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
@ -646,6 +647,7 @@ public:
// 3D object
uboVS.projection = camera.matrices.perspective;
uboVS.modelView = camera.matrices.view;
uboVS.inverseModelview = glm::inverse(camera.matrices.view);
memcpy(uniformBuffers.object.mapped, &uboVS, sizeof(uboVS));
// Skybox
uboVS.modelView = camera.matrices.view;