diff options
| author | jussi | 2025-01-25 17:36:29 +0200 |
|---|---|---|
| committer | jussi | 2025-01-25 17:36:29 +0200 |
| commit | c8131ea95846f76fb196a78ce9c9b09aeb15736c (patch) | |
| tree | 49ddc03c06cd6cdeaddb26008da8400cf854fb14 /examples/resources/shaders/glsl330 | |
| parent | 9a1161541d6b066dc7f6e3ca0cdf008f19d3f7be (diff) | |
| download | reilua-enhanced-c8131ea95846f76fb196a78ce9c9b09aeb15736c.tar.gz reilua-enhanced-c8131ea95846f76fb196a78ce9c9b09aeb15736c.tar.bz2 reilua-enhanced-c8131ea95846f76fb196a78ce9c9b09aeb15736c.zip | |
Atlas texture repeat example.
Diffstat (limited to 'examples/resources/shaders/glsl330')
| -rw-r--r-- | examples/resources/shaders/glsl330/atlas_repeat.fs | 28 | ||||
| -rw-r--r-- | examples/resources/shaders/glsl330/base.vs | 6 |
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 +} |
