diff options
Diffstat (limited to 'crates/renderer/src/assets/shaders')
| -rw-r--r-- | crates/renderer/src/assets/shaders/flat/frag.glsl | 11 | ||||
| -rw-r--r-- | crates/renderer/src/assets/shaders/flat/vert.glsl | 4 | ||||
| -rw-r--r-- | crates/renderer/src/assets/shaders/scene/frag.glsl | 11 | ||||
| -rw-r--r-- | crates/renderer/src/assets/shaders/scene/vert.glsl | 18 |
4 files changed, 44 insertions, 0 deletions
diff --git a/crates/renderer/src/assets/shaders/flat/frag.glsl b/crates/renderer/src/assets/shaders/flat/frag.glsl new file mode 100644 index 0000000..7006a2b --- /dev/null +++ b/crates/renderer/src/assets/shaders/flat/frag.glsl @@ -0,0 +1,11 @@ +uniform sampler2D texture_data; + +void main() +{ + vec2 tcfull = vec2(vertex_texcoord.x, 1.0 - vertex_texcoord.y); + vec4 texel = texture(texture_data, tcfull); + if (texel.a != 1.0) { + discard; + } + frag_color = texel; +} diff --git a/crates/renderer/src/assets/shaders/flat/vert.glsl b/crates/renderer/src/assets/shaders/flat/vert.glsl new file mode 100644 index 0000000..e324f7e --- /dev/null +++ b/crates/renderer/src/assets/shaders/flat/vert.glsl @@ -0,0 +1,4 @@ +void main() +{ + default_main(); +}
\ No newline at end of file diff --git a/crates/renderer/src/assets/shaders/scene/frag.glsl b/crates/renderer/src/assets/shaders/scene/frag.glsl new file mode 100644 index 0000000..81e08b9 --- /dev/null +++ b/crates/renderer/src/assets/shaders/scene/frag.glsl @@ -0,0 +1,11 @@ +uniform sampler2D texture_data; + +void main() +{ + vec4 texel = texture(texture_data, vertex_texcoord); + if (texel.a != 1.0) { + discard; + } + + frag_color = vec4(texel.rgb, texel.a); +} diff --git a/crates/renderer/src/assets/shaders/scene/vert.glsl b/crates/renderer/src/assets/shaders/scene/vert.glsl new file mode 100644 index 0000000..64f400c --- /dev/null +++ b/crates/renderer/src/assets/shaders/scene/vert.glsl @@ -0,0 +1,18 @@ +in vec4 joint; +in vec4 weight; + +uniform mat4 joint_matrices[128]; + +void main() +{ + vertex_texcoord = texcoord; + vertex_normal = (normal_matrix * vec4(normal, 1.0)).xyz; + mat4 skin + = weight.x * joint_matrices[int(joint.x)] + + weight.y * joint_matrices[int(joint.y)] + + weight.z * joint_matrices[int(joint.z)] + + weight.w * joint_matrices[int(joint.w)]; + vec3 pos = (position * skin * vec4(vertex, 1.0)).xyz; + vertex_view_vector = camera_pos - pos; + gl_Position = projection * view * vec4(pos, 1.0); +} |
