diff options
Diffstat (limited to 'shaders')
| -rw-r--r-- | shaders/triangle.frag | 5 | ||||
| -rw-r--r-- | shaders/triangle.vert | 26 |
2 files changed, 17 insertions, 14 deletions
diff --git a/shaders/triangle.frag b/shaders/triangle.frag index 7c5b0e7..c7d99f3 100644 --- a/shaders/triangle.frag +++ b/shaders/triangle.frag @@ -1,9 +1,12 @@ #version 450 layout(location = 0) in vec3 fragColor; +layout(location = 1) in vec2 fragTextureCoordinates; layout(location = 0) out vec4 outColor; +layout(binding = 1) uniform sampler2D textureSampler; + void main() { - outColor = vec4(fragColor, 1.0); + outColor = vec4(fragColor * texture(textureSampler, fragTextureCoordinates).rgb, 1.0); } diff --git a/shaders/triangle.vert b/shaders/triangle.vert index f5b2f8d..bf93f44 100644 --- a/shaders/triangle.vert +++ b/shaders/triangle.vert @@ -1,20 +1,20 @@ #version 450 -layout(location = 0) out vec3 fragColor; +layout(location = 0) in vec3 inPosition; +layout(location = 1) in vec3 inColor; +layout(location = 2) in vec2 inTextureCoordinates; -vec2 positions[3] = vec2[]( - vec2(0.0, -0.5), - vec2(0.5, 0.5), - vec2(-0.5, 0.5) -); +layout(location = 0) out vec3 fragColor; +layout(location = 1) out vec2 fragTextureCoordinates; -vec3 colors[3] = vec3[]( - vec3(1.0, 0.0, 0.0), - vec3(0.0, 1.0, 0.0), - vec3(0.0, 0.0, 1.0) -); +layout(set = 0, binding = 0) uniform UniformBufferObject { + mat4 model; + mat4 view; + mat4 projection; +} ubo; void main() { - gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0); - fragColor = colors[gl_VertexIndex]; + gl_Position = ubo.projection * ubo.view * ubo.model * vec4(inPosition, 1.0); + fragColor = inColor; + fragTextureCoordinates = inTextureCoordinates; } |
