From 348f7525937c4632b20a5187100ec21bca14303a Mon Sep 17 00:00:00 2001 From: Artur Wasmut <awasmut@uni-koblenz.de> Date: Sat, 3 Jul 2021 16:14:41 +0200 Subject: [PATCH] add camera push constant. --- .../mesh_shader/resources/shaders/shader.mesh | 16 ++++++++++------ projects/mesh_shader/src/main.cpp | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/projects/mesh_shader/resources/shaders/shader.mesh b/projects/mesh_shader/resources/shaders/shader.mesh index c9039c11..4f6e1fa5 100644 --- a/projects/mesh_shader/resources/shaders/shader.mesh +++ b/projects/mesh_shader/resources/shaders/shader.mesh @@ -7,12 +7,16 @@ layout(local_size_x=32) in; layout(triangles) out; layout(max_vertices=64, max_primitives=126) out; +layout( push_constant ) uniform constants{ + mat4 mvp; +}; + // out uint gl_PrimitiveCountNV; // out uint gl_PrimitiveIndicesNV[]; -out gl_MeshPerVertexNV { - vec4 gl_Position; -} gl_MeshVerticesNV[]; +//out gl_MeshPerVertexNV { +// vec4 gl_Position; +//} gl_MeshVerticesNV[]; void main() { if(gl_LocalInvocationID.x == 0) @@ -22,8 +26,8 @@ void main() { gl_PrimitiveIndicesNV[1] = 1; gl_PrimitiveIndicesNV[2] = 2; - gl_MeshVerticesNV[0].gl_Position = vec4(-0.5, 0.5, 0.5, 1); - gl_MeshVerticesNV[1].gl_Position = vec4( 0.5, 0.5, 0.5, 1); - gl_MeshVerticesNV[2].gl_Position = vec4( 0 , -0.5, 0.5, 1); + gl_MeshVerticesNV[0].gl_Position = mvp * vec4(-0.5, 0.5, 0.5, 1); + gl_MeshVerticesNV[1].gl_Position = mvp * vec4( 0.5, 0.5, 0.5, 1); + gl_MeshVerticesNV[2].gl_Position = mvp * vec4( 0 , -0.5, 0.5, 1); } } \ No newline at end of file diff --git a/projects/mesh_shader/src/main.cpp b/projects/mesh_shader/src/main.cpp index 6fa6c8f6..8a423345 100644 --- a/projects/mesh_shader/src/main.cpp +++ b/projects/mesh_shader/src/main.cpp @@ -152,7 +152,7 @@ int main(int argc, const char** argv) { cmdStream, renderPass, meshShaderPipeline, - vkcv::PushConstantData(nullptr, 0), + pushConstantData, { vkcv::MeshShaderDrawcall({}, 1) }, { swapchainInput }); -- GitLab