Okay, tile_types_super_texture is a row of several 16x16 tile type textures, which are the tile types. Then according to tilemap_pixels, which is a 1-tile-per-pixel representation of the visible map on screen. According to the value within the red channel, it would be that index towards the end. Think of the super texture as a linear array, where each element is 16x16 pixels big, and the red channel is the index to the element.

This worked wonderfully, but it only scrolled to every 16x16 tile, so scrolling was jumpy and not per-pixel/smooth scrolling. So I thought I would do m_viewPosition & TILE_SIZE-1, which gives me the remaining pixels which cannot align to the 16x16 grid.

However, as you can see below, where I added the - int (offset.x), and .y, instead of smoothly scrolling, it's actually creating a sort of window blinds shutter effect, where if i move..say..8 pixels (half a tile) out, many tiles are cut in half (oddly..not all of them).

Does this have to do with using texelFetch? I was thinking about resorting back to texture2D, so that I can run on lower end hardware as well. Or am I doing something intrinsically incorrect?