Updated shaders, UI

This commit is contained in:
saschawillems 2018-09-04 21:18:14 +02:00
parent 0dd76f4ce3
commit 25e296be55
3 changed files with 22 additions and 15 deletions

View file

@ -4,16 +4,19 @@ layout (location = 0) in vec3 inPos;
layout (location = 1) in vec3 inNormal;
layout (location = 2) in vec3 inColor;
layout (set = 0, binding = 0) uniform UBO
{
layout (set = 0, binding = 0) uniform UBO {
mat4 projection;
mat4 view;
mat4 model;
} ubo;
layout (set = 1, binding = 0) uniform Node {
mat4 matrix;
} node;
layout(push_constant) uniform PushBlock {
vec4 offset;
vec4 color;
} pushBlock;
vec4 baseColorFactor;
} material;
layout (location = 0) out vec3 outNormal;
layout (location = 1) out vec3 outColor;
@ -28,14 +31,14 @@ out gl_PerVertex
void main()
{
outNormal = inNormal;
outColor = inColor * pushBlock.color.rgb;
vec4 pos = vec4(inPos + pushBlock.offset.xyz, 1.0);
gl_Position = ubo.projection * ubo.model * pos;
outColor = material.baseColorFactor.rgb;
vec4 pos = vec4(inPos, 1.0);
gl_Position = ubo.projection * ubo.view * ubo.model * node.matrix * pos;
outNormal = mat3(ubo.model) * inNormal;
outNormal = mat3(ubo.view * ubo.model * node.matrix) * inNormal;
vec4 localpos = ubo.model * pos;
vec3 lightPos = vec3(1.0f, -1.0f, 1.0f);
vec4 localpos = ubo.view * ubo.model * node.matrix * pos;
vec3 lightPos = vec3(10.0f, -10.0f, 10.0f);
outLightVec = lightPos.xyz - localpos.xyz;
outViewVec = -localpos.xyz;
}

View file

@ -38,7 +38,8 @@ public:
struct {
glm::mat4 projection;
glm::mat4 modelview;
glm::mat4 view;
glm::mat4 model;
} uboVS;
vks::Buffer uniformBuffer;
@ -57,8 +58,8 @@ public:
settings.overlay = true;
camera.type = Camera::CameraType::lookat;
camera.setPerspective(45.0f, (float)width / (float)height, 0.1f, 512.0f);
camera.setRotation(glm::vec3(-9.0f, -55.0f, 0.0f));
camera.setTranslation(glm::vec3(3.45f, 3.15f, -22.0f));
camera.setRotation(glm::vec3(-2.25f, -52.0f, 0.0f));
camera.setTranslation(glm::vec3(1.9f, -2.05f, -18.0f));
camera.rotationSpeed *= 0.25f;
/*
@ -267,7 +268,8 @@ public:
void updateUniformBuffers()
{
uboVS.projection = camera.matrices.perspective;
uboVS.modelview = glm::scale(camera.matrices.view, glm::vec3(0.1f , -0.1f, 0.1f));
uboVS.view = glm::scale(camera.matrices.view, glm::vec3(0.1f , -0.1f, 0.1f));
uboVS.model = glm::translate(glm::mat4(1.0f), scene.dimensions.min);
memcpy(uniformBuffer.mapped, &uboVS, sizeof(uboVS));
}
@ -373,6 +375,7 @@ public:
}
ImGui::NewLine();
ImGui::BeginChild("InnerRegion", ImVec2(200.0f, 400.0f), false);
for (auto node : scene.linearNodes) {
// Add visibility toggle checkboxes for all model nodes with a mesh
if (node->mesh) {
@ -381,6 +384,7 @@ public:
}
}
}
ImGui::EndChild();
}
}