Combine view/proj
This commit is contained in:
parent
a4f15c7179
commit
48d460c855
|
@ -552,8 +552,7 @@ int main(int argc, char** argv)
|
|||
|
||||
struct FrameData
|
||||
{
|
||||
mat4 projection;
|
||||
mat4 view;
|
||||
mat4 view_projection;
|
||||
};
|
||||
|
||||
auto frameDataSlice = *pooler.AllocSlice(MaxFramesInFlight * sizeof(FrameData), 16);
|
||||
|
@ -659,8 +658,7 @@ int main(int argc, char** argv)
|
|||
|
||||
frameData[r_swapchain->CurrentFrame()] = FrameData
|
||||
{
|
||||
.projection = camera.projection(),
|
||||
.view = camera.view(),
|
||||
.view_projection = camera.projection() * camera.view(),
|
||||
};
|
||||
|
||||
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
|
||||
#extension GL_EXT_scalar_block_layout : require
|
||||
#extension GL_ARB_shader_draw_parameters : require
|
||||
#extension GL_GOOGLE_include_directive : require
|
||||
|
||||
struct UniformData
|
||||
{
|
||||
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;
|
||||
|
||||
#include "common_vs.h"
|
||||
|
||||
layout(location = 0) in vec3 i_pos;
|
||||
layout(location = 1) in vec2 i_uv;
|
||||
|
@ -46,8 +15,7 @@ layout(location = 1) out vec2 o_uv;
|
|||
void main()
|
||||
{
|
||||
gl_Position =
|
||||
u_frame_data.frame[p_constants.frame].projection *
|
||||
u_frame_data.frame[p_constants.frame].view *
|
||||
u_frame_data.frame[p_constants.frame].view_projection *
|
||||
u_renderable.frame[p_constants.frame].renderables[gl_DrawIDARB].world *
|
||||
vec4(i_pos, 1.0);
|
||||
o_meshIdx = u_renderable.frame[p_constants.frame].renderables[gl_DrawIDARB].meshIdx;
|
||||
|
|
Loading…
Reference in New Issue