From f22dffcd7347f1c74853923d6f498fc64a04a3ad Mon Sep 17 00:00:00 2001 From: Artur Wasmut <awasmut@uni-koblenz.de> Date: Sat, 3 Jul 2021 16:05:26 +0200 Subject: [PATCH] fill out mesh shaders. --- projects/mesh_shader/resources/shaders/shader.frag | 4 ++-- projects/mesh_shader/resources/shaders/shader.mesh | 12 +++++++++++- projects/mesh_shader/resources/shaders/shader.task | 13 ++++++++----- projects/mesh_shader/src/main.cpp | 3 ++- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/projects/mesh_shader/resources/shaders/shader.frag b/projects/mesh_shader/resources/shaders/shader.frag index 080678be..bdae0787 100644 --- a/projects/mesh_shader/resources/shaders/shader.frag +++ b/projects/mesh_shader/resources/shaders/shader.frag @@ -1,9 +1,9 @@ #version 450 #extension GL_ARB_separate_shader_objects : enable -layout(location = 0) in vec3 fragColor; +//layout(location = 0) in vec3 fragColor; layout(location = 0) out vec4 outColor; void main() { - outColor = vec4(fragColor, 1.0); + outColor = vec4(1.0); } \ No newline at end of file diff --git a/projects/mesh_shader/resources/shaders/shader.mesh b/projects/mesh_shader/resources/shaders/shader.mesh index f4bddd60..b52a424d 100644 --- a/projects/mesh_shader/resources/shaders/shader.mesh +++ b/projects/mesh_shader/resources/shaders/shader.mesh @@ -15,5 +15,15 @@ out gl_MeshPerVertexNV { } gl_MeshVerticesNV[]; void main() { - + if(gl_LocalInvocationID.x == 0) + { + gl_PrimitiveCountNV = 1; + gl_PrimitiveIndicesNV[0] = 0; + gl_PrimitiveIndicesNV[1] = 1; + gl_PrimitiveIndicesNV[2] = 2; + + gl_MeshVerticesNV[0].gl_Position = vec4(-0.5, 0.5, -1, 1); + gl_MeshVerticesNV[1].gl_Position = vec4( 0.5, 0.5, -1, 1); + gl_MeshVerticesNV[2].gl_Position = vec4( 0 , -0.5, -1, 1); + } } \ No newline at end of file diff --git a/projects/mesh_shader/resources/shaders/shader.task b/projects/mesh_shader/resources/shaders/shader.task index 3308320f..e9952528 100644 --- a/projects/mesh_shader/resources/shaders/shader.task +++ b/projects/mesh_shader/resources/shaders/shader.task @@ -4,12 +4,15 @@ layout(local_size_x=32) in; -taskNV out Task { - uint baseID; - uint subIDs[32]; -} OUT; +//taskNV out Task { +// uint baseID; +// uint subIDs[32]; +//} OUT; void main() { - + if(gl_LocalInvocationID.x == 0) + { + gl_TaskCountNV = 1; + } } \ No newline at end of file diff --git a/projects/mesh_shader/src/main.cpp b/projects/mesh_shader/src/main.cpp index 5e760256..6fa6c8f6 100644 --- a/projects/mesh_shader/src/main.cpp +++ b/projects/mesh_shader/src/main.cpp @@ -156,6 +156,7 @@ int main(int argc, const char** argv) { { vkcv::MeshShaderDrawcall({}, 1) }, { swapchainInput }); + /* core.recordDrawcallsToCmdStream( cmdStream, renderPass, @@ -163,7 +164,7 @@ int main(int argc, const char** argv) { pushConstantData, { drawcall }, { swapchainInput }); - + */ core.prepareSwapchainImageForPresent(cmdStream); core.submitCommandStream(cmdStream); -- GitLab