Combine view/proj
This commit is contained in:
parent
a4f15c7179
commit
48d460c855
|
@ -552,8 +552,7 @@ int main(int argc, char** argv)
|
||||||
|
|
||||||
struct FrameData
|
struct FrameData
|
||||||
{
|
{
|
||||||
mat4 projection;
|
mat4 view_projection;
|
||||||
mat4 view;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
auto frameDataSlice = *pooler.AllocSlice(MaxFramesInFlight * sizeof(FrameData), 16);
|
auto frameDataSlice = *pooler.AllocSlice(MaxFramesInFlight * sizeof(FrameData), 16);
|
||||||
|
@ -659,8 +658,7 @@ int main(int argc, char** argv)
|
||||||
|
|
||||||
frameData[r_swapchain->CurrentFrame()] = FrameData
|
frameData[r_swapchain->CurrentFrame()] = FrameData
|
||||||
{
|
{
|
||||||
.projection = camera.projection(),
|
.view_projection = camera.projection() * camera.view(),
|
||||||
.view = camera.view(),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
g_renderables.copy(gpuRenderables[r_swapchain->CurrentFrame()].renderables);
|
g_renderables.copy(gpuRenderables[r_swapchain->CurrentFrame()].renderables);
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
struct UniformData
|
||||||
|
{
|
||||||
|
mat4 view_projection;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Renderable
|
||||||
|
{
|
||||||
|
mat4 world;
|
||||||
|
uint meshIdx;
|
||||||
|
vec3 color;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Renderables
|
||||||
|
{
|
||||||
|
Renderable renderables[1024];
|
||||||
|
};
|
||||||
|
|
||||||
|
layout(push_constant) uniform p_constants_t
|
||||||
|
{
|
||||||
|
uint frame;
|
||||||
|
} p_constants;
|
||||||
|
|
||||||
|
layout(binding = 0) uniform u_frame_data_t
|
||||||
|
{
|
||||||
|
UniformData frame[4];
|
||||||
|
} u_frame_data;
|
||||||
|
|
||||||
|
layout(scalar, binding = 2) uniform u_renderable_t
|
||||||
|
{
|
||||||
|
Renderables frame[4];
|
||||||
|
} u_renderable;
|
|
@ -0,0 +1,4 @@
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
|
@ -1,40 +1,9 @@
|
||||||
#version 450
|
#version 450
|
||||||
#extension GL_EXT_scalar_block_layout : require
|
#extension GL_EXT_scalar_block_layout : require
|
||||||
#extension GL_ARB_shader_draw_parameters : require
|
#extension GL_ARB_shader_draw_parameters : require
|
||||||
|
#extension GL_GOOGLE_include_directive : require
|
||||||
|
|
||||||
struct UniformData
|
#include "common_vs.h"
|
||||||
{
|
|
||||||
mat4 projection;
|
|
||||||
mat4 view;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Renderable
|
|
||||||
{
|
|
||||||
mat4 world;
|
|
||||||
uint meshIdx;
|
|
||||||
vec3 color;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Renderables
|
|
||||||
{
|
|
||||||
Renderable renderables[1024];
|
|
||||||
};
|
|
||||||
|
|
||||||
layout(push_constant) uniform p_constants_t
|
|
||||||
{
|
|
||||||
uint frame;
|
|
||||||
} p_constants;
|
|
||||||
|
|
||||||
layout(binding = 0) uniform u_frame_data_t
|
|
||||||
{
|
|
||||||
UniformData frame[4];
|
|
||||||
} u_frame_data;
|
|
||||||
|
|
||||||
layout(scalar, binding = 2) uniform u_renderable_t
|
|
||||||
{
|
|
||||||
Renderables frame[4];
|
|
||||||
} u_renderable;
|
|
||||||
|
|
||||||
|
|
||||||
layout(location = 0) in vec3 i_pos;
|
layout(location = 0) in vec3 i_pos;
|
||||||
layout(location = 1) in vec2 i_uv;
|
layout(location = 1) in vec2 i_uv;
|
||||||
|
@ -46,8 +15,7 @@ layout(location = 1) out vec2 o_uv;
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
gl_Position =
|
gl_Position =
|
||||||
u_frame_data.frame[p_constants.frame].projection *
|
u_frame_data.frame[p_constants.frame].view_projection *
|
||||||
u_frame_data.frame[p_constants.frame].view *
|
|
||||||
u_renderable.frame[p_constants.frame].renderables[gl_DrawIDARB].world *
|
u_renderable.frame[p_constants.frame].renderables[gl_DrawIDARB].world *
|
||||||
vec4(i_pos, 1.0);
|
vec4(i_pos, 1.0);
|
||||||
o_meshIdx = u_renderable.frame[p_constants.frame].renderables[gl_DrawIDARB].meshIdx;
|
o_meshIdx = u_renderable.frame[p_constants.frame].renderables[gl_DrawIDARB].meshIdx;
|
||||||
|
|
Loading…
Reference in New Issue