Ah, yes. You’re totally right, I forgot about the UV-atlas-margin to prevent lower mipmaps from bleeding from one frame into the next.
Unfortunately, we still support a fair number of low-end older mobile devices (running GLES 2) that often lack textureQueryLod
, which means we can’t query what mip level the pixel-shader uses, and thus we have to go with some kind of worst case assumption (in actuality, I went slightly below that, which means that tiny flipbook particles waaaaay far in the distance will actually bleed texels across frames, it’s just that it’s not really noticeable then anymore.
We’re currently gathering analytics on GLES 2 usage and forming a plan and timeline to deprecate it (please don’t freak out if you’re one of the few playing Roblox on a really old phone, it’s not all of a sudden disappear overnight, we’re just planning, that’s all). We already removed Direct3D 9 support last year, and when GLES 2 is finally gone a lot of things will become a lot easier.
…specifically, we’ll be able to use texture arays instead of a single 2D atlas texture for flipbooks, and all the edge bleeding and mipmap problems go away. Everything becomes simpler, and all those limitation we have today will be gone.
I guess what I’m saying is, if you know anybody that’s still playing Roblox on a really old GLES 2 Android phone, you should all do your part and buy that person a new fancier phone – it’s for a good cause… hahaha. Sorry folks, I know I’m asking for a lot of patience here.
Meanwhile, back to the actual issue you show in the images; yes, you’re totally right. And I was wrong in my earlier statement about making sure to be translucent up the edge. It’s actually slightly worse than that; on an 8x8 flipbook (each frame is 128x128) you probably want to stay about 8 pixels away from the edge to be on the safe side. So put your graphics in a 120x120 square in the middle of each frame.
I’m bummed out that that’s the way it is right now. Sorry. It’s clunky. But hang in there, things will get better.
I’ll update the announcement to include a bit of info about the safety margin later this afternoon. Thank you for correcting my earlier statement.