diff --git a/res/project/res/shaders/default.frag b/res/project/res/shaders/default.frag index e4bb0ff..723e9e0 100644 --- a/res/project/res/shaders/default.frag +++ b/res/project/res/shaders/default.frag @@ -1,8 +1,11 @@ #version 450 #extension GL_EXT_nonuniform_qualifier : require +layout(location = 0) in vec3 normal; + layout(location = 0) out vec4 outColor; + void main() { - outColor = vec4(1.0, 0.0, 1.0, 1.0); + outColor = vec4(normal, 1.0); } diff --git a/res/project/res/shaders/default.vert b/res/project/res/shaders/default.vert index 7384474..aa8182a 100644 --- a/res/project/res/shaders/default.vert +++ b/res/project/res/shaders/default.vert @@ -8,25 +8,32 @@ struct Vertex { vec2 uv[2]; }; -layout(set = 0, binding = 0) buffer ResourceBuffer { +layout(set = 0, binding = 0) uniform CameraParam { + mat4 projection; + mat4 view; +} Camera; + +layout(set = 1, binding = 0) buffer ResourceBuffer { layout(align = 16) Vertex resources[]; } ResourceBuffers[]; -layout(set = 0, binding = 1) buffer PositionBuffer { +layout(set = 1, binding = 1) buffer PositionBuffer { uint resources[]; } PositionBuffers[]; -layout(set = 0, binding = 2) buffer ColorBuffer { +layout(set = 1, binding = 2) buffer ColorBuffer { layout(align = 16) vec3 resources[]; } ColorBuffers[]; -layout(set = 0, binding = 3) buffer ccBuffer { +layout(set = 1, binding = 3) buffer ccBuffer { layout(align = 16) vec3 resources[]; } ssBuffers[]; +layout(location = 0) out vec3 normal; + void main() { Vertex vertex = ResourceBuffers[ nonuniformEXT(0) ].resources[PositionBuffers[ nonuniformEXT(0) ].resources[gl_VertexIndex] ]; - - gl_Position = vec4(vertex.position.x, vertex.position.y, vertex.position[3], 1.0); + normal = vertex.normal.xyz; + gl_Position = vec4(vertex.position.x, vertex.position.y, vertex.position.z, 1.0); }