From 594c736afa0582a65d4dfc2ad7749687a9c57094 Mon Sep 17 00:00:00 2001 From: Sergey Kosarevsky Date: Wed, 11 Dec 2024 00:24:11 -0800 Subject: [PATCH] Fixed skybox push constants size to be less than 128 bytes --- Chapter08/02_SceneGraph/src/skybox.frag | 3 +-- Chapter08/02_SceneGraph/src/skybox.vert | 5 ++--- Chapter08/03_LargeScene/src/main.cpp | 6 ++---- Chapter10/Skybox.h | 6 ++---- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/Chapter08/02_SceneGraph/src/skybox.frag b/Chapter08/02_SceneGraph/src/skybox.frag index db52cf9..ed8031b 100644 --- a/Chapter08/02_SceneGraph/src/skybox.frag +++ b/Chapter08/02_SceneGraph/src/skybox.frag @@ -1,8 +1,7 @@ // layout(push_constant) uniform PerFrameData { - mat4 view; - mat4 proj; + mat4 mvp; uint texSkybox; } pc; diff --git a/Chapter08/02_SceneGraph/src/skybox.vert b/Chapter08/02_SceneGraph/src/skybox.vert index 90452da..b2df36c 100644 --- a/Chapter08/02_SceneGraph/src/skybox.vert +++ b/Chapter08/02_SceneGraph/src/skybox.vert @@ -1,8 +1,7 @@ // layout(push_constant) uniform PerFrameData { - mat4 view; - mat4 proj; + mat4 mvp; uint texSkybox; } pc; @@ -31,6 +30,6 @@ const int indices[36] = int[36]( void main() { int idx = indices[gl_VertexIndex]; - gl_Position = pc.proj * mat4(mat3(pc.view)) * vec4(1.0 * pos[idx], 1.0); + gl_Position = pc.mvp * vec4(1.0 * pos[idx], 1.0); dir = pos[idx].xyz; } diff --git a/Chapter08/03_LargeScene/src/main.cpp b/Chapter08/03_LargeScene/src/main.cpp index c49e409..450c492 100644 --- a/Chapter08/03_LargeScene/src/main.cpp +++ b/Chapter08/03_LargeScene/src/main.cpp @@ -176,12 +176,10 @@ int main() buf.cmdPushDebugGroupLabel("Skybox", 0xff0000ff); buf.cmdBindRenderPipeline(pipelineSkybox); const struct { - mat4 view; - mat4 proj; + mat4 mvp; uint32_t texSkybox; } pc = { - .view = view, - .proj = proj, + .mvp = proj * mat4(mat3(view)), // discard the translation .texSkybox = texSkybox.index(), }; buf.cmdPushConstants(pc); diff --git a/Chapter10/Skybox.h b/Chapter10/Skybox.h index eacd7f3..a27b499 100644 --- a/Chapter10/Skybox.h +++ b/Chapter10/Skybox.h @@ -26,12 +26,10 @@ class Skybox buf.cmdPushDebugGroupLabel("Skybox", 0xff0000ff); buf.cmdBindRenderPipeline(pipelineSkybox); const struct { - mat4 view; - mat4 proj; + mat4 mvp; uint32_t texSkybox; } pc = { - .view = view, - .proj = proj, + .mvp = proj * mat4(mat3(view)), // discard the translation .texSkybox = texSkybox.index(), }; buf.cmdPushConstants(pc);