ok so I have three textures one is the texture to display one is the locations of the tiles, and the third is a reference sheet for the animations on the sprite sheet. so I am able to get the coordinates of the correct 'sprite' by sampling the tiles texture: vec4 tile = texture2D(tiles, texCoord); if(tile.x == 1.0 && tile.y == 1.0) { discard; } then I check the animation map for an animation refrence vec4 aTile = texture2D(animationMap, tile.xy); if(aTile.a == 1.0 ){