summaryrefslogtreecommitdiff
path: root/examples/resources/shaders/glsl330
diff options
context:
space:
mode:
Diffstat (limited to 'examples/resources/shaders/glsl330')
-rw-r--r--examples/resources/shaders/glsl330/atlas_repeat.fs28
-rw-r--r--examples/resources/shaders/glsl330/base.vs6
2 files changed, 33 insertions, 1 deletions
diff --git a/examples/resources/shaders/glsl330/atlas_repeat.fs b/examples/resources/shaders/glsl330/atlas_repeat.fs
new file mode 100644
index 0000000..90547f0
--- /dev/null
+++ b/examples/resources/shaders/glsl330/atlas_repeat.fs
@@ -0,0 +1,28 @@
+#version 330
+
+// Input vertex attributes (from vertex shader)
+in vec3 fragPosition;
+in vec2 fragTexCoord;
+in vec4 fragColor;
+
+// Input uniform values
+uniform sampler2D texture0;
+
+uniform vec2 atlasSize;
+uniform vec2 tileTexSize;
+
+// Output fragment color
+out vec4 finalColor;
+
+vec2 texTileSize = tileTexSize / atlasSize;
+vec2 atlasTileSize = atlasSize / tileTexSize;
+
+void main() {
+ vec2 tileTexCoord = fract( vec2( fragPosition.x, fragPosition.y ) / tileTexSize );
+ // Get tile texture corner.
+ vec2 texOffset = floor( fragTexCoord / texTileSize ) * texTileSize;
+ vec2 fragCoord = tileTexCoord / atlasTileSize + texOffset;
+ vec4 texelColor = texture( texture0, fragCoord );
+
+ finalColor = texelColor * fragColor;
+}
diff --git a/examples/resources/shaders/glsl330/base.vs b/examples/resources/shaders/glsl330/base.vs
index c6e94f6..b29bed8 100644
--- a/examples/resources/shaders/glsl330/base.vs
+++ b/examples/resources/shaders/glsl330/base.vs
@@ -10,16 +10,20 @@ in vec4 vertexColor;
uniform mat4 mvp;
// Output vertex attributes (to fragment shader)
+out vec3 fragPosition;
out vec2 fragTexCoord;
+out vec3 fragNormal;
out vec4 fragColor;
// NOTE: Add here your custom variables
void main() {
// Send vertex attributes to fragment shader
+ fragPosition = vertexPosition;
fragTexCoord = vertexTexCoord;
+ fragNormal = vertexNormal;
fragColor = vertexColor;
// Calculate final vertex position
gl_Position = mvp * vec4( vertexPosition, 1.0 );
-} \ No newline at end of file
+}