Updated shaders, UI
This commit is contained in:
parent
0dd76f4ce3
commit
25e296be55
3 changed files with 22 additions and 15 deletions
|
|
@ -4,16 +4,19 @@ layout (location = 0) in vec3 inPos;
|
||||||
layout (location = 1) in vec3 inNormal;
|
layout (location = 1) in vec3 inNormal;
|
||||||
layout (location = 2) in vec3 inColor;
|
layout (location = 2) in vec3 inColor;
|
||||||
|
|
||||||
layout (set = 0, binding = 0) uniform UBO
|
layout (set = 0, binding = 0) uniform UBO {
|
||||||
{
|
|
||||||
mat4 projection;
|
mat4 projection;
|
||||||
|
mat4 view;
|
||||||
mat4 model;
|
mat4 model;
|
||||||
} ubo;
|
} ubo;
|
||||||
|
|
||||||
|
layout (set = 1, binding = 0) uniform Node {
|
||||||
|
mat4 matrix;
|
||||||
|
} node;
|
||||||
|
|
||||||
layout(push_constant) uniform PushBlock {
|
layout(push_constant) uniform PushBlock {
|
||||||
vec4 offset;
|
vec4 baseColorFactor;
|
||||||
vec4 color;
|
} material;
|
||||||
} pushBlock;
|
|
||||||
|
|
||||||
layout (location = 0) out vec3 outNormal;
|
layout (location = 0) out vec3 outNormal;
|
||||||
layout (location = 1) out vec3 outColor;
|
layout (location = 1) out vec3 outColor;
|
||||||
|
|
@ -28,14 +31,14 @@ out gl_PerVertex
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
outNormal = inNormal;
|
outNormal = inNormal;
|
||||||
outColor = inColor * pushBlock.color.rgb;
|
outColor = material.baseColorFactor.rgb;
|
||||||
vec4 pos = vec4(inPos + pushBlock.offset.xyz, 1.0);
|
vec4 pos = vec4(inPos, 1.0);
|
||||||
gl_Position = ubo.projection * ubo.model * pos;
|
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;
|
vec4 localpos = ubo.view * ubo.model * node.matrix * pos;
|
||||||
vec3 lightPos = vec3(1.0f, -1.0f, 1.0f);
|
vec3 lightPos = vec3(10.0f, -10.0f, 10.0f);
|
||||||
outLightVec = lightPos.xyz - localpos.xyz;
|
outLightVec = lightPos.xyz - localpos.xyz;
|
||||||
outViewVec = -localpos.xyz;
|
outViewVec = -localpos.xyz;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -38,7 +38,8 @@ public:
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
glm::mat4 projection;
|
glm::mat4 projection;
|
||||||
glm::mat4 modelview;
|
glm::mat4 view;
|
||||||
|
glm::mat4 model;
|
||||||
} uboVS;
|
} uboVS;
|
||||||
|
|
||||||
vks::Buffer uniformBuffer;
|
vks::Buffer uniformBuffer;
|
||||||
|
|
@ -57,8 +58,8 @@ public:
|
||||||
settings.overlay = true;
|
settings.overlay = true;
|
||||||
camera.type = Camera::CameraType::lookat;
|
camera.type = Camera::CameraType::lookat;
|
||||||
camera.setPerspective(45.0f, (float)width / (float)height, 0.1f, 512.0f);
|
camera.setPerspective(45.0f, (float)width / (float)height, 0.1f, 512.0f);
|
||||||
camera.setRotation(glm::vec3(-9.0f, -55.0f, 0.0f));
|
camera.setRotation(glm::vec3(-2.25f, -52.0f, 0.0f));
|
||||||
camera.setTranslation(glm::vec3(3.45f, 3.15f, -22.0f));
|
camera.setTranslation(glm::vec3(1.9f, -2.05f, -18.0f));
|
||||||
camera.rotationSpeed *= 0.25f;
|
camera.rotationSpeed *= 0.25f;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -267,7 +268,8 @@ public:
|
||||||
void updateUniformBuffers()
|
void updateUniformBuffers()
|
||||||
{
|
{
|
||||||
uboVS.projection = camera.matrices.perspective;
|
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));
|
memcpy(uniformBuffer.mapped, &uboVS, sizeof(uboVS));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -373,6 +375,7 @@ public:
|
||||||
}
|
}
|
||||||
ImGui::NewLine();
|
ImGui::NewLine();
|
||||||
|
|
||||||
|
ImGui::BeginChild("InnerRegion", ImVec2(200.0f, 400.0f), false);
|
||||||
for (auto node : scene.linearNodes) {
|
for (auto node : scene.linearNodes) {
|
||||||
// Add visibility toggle checkboxes for all model nodes with a mesh
|
// Add visibility toggle checkboxes for all model nodes with a mesh
|
||||||
if (node->mesh) {
|
if (node->mesh) {
|
||||||
|
|
@ -381,6 +384,7 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ImGui::EndChild();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue