OK! I've been working on the effects lately, trying to get a glitch style for the player to set the visuals apart from the enemy and world glitches. For the blink, I came up with the following:
https://twitter.com/skarik_ehs/status/861846474526568448 #shamelessplugs
I had been wanting to change the player effects for a while. I saw Doctor Strange (movie) over the weekend and it gave me a much better idea of what I wanted to see
I kind of want fractalish design - but that won't work because that's over my current knowledge and time constraints. SO, I make it more like refraction through some sort of crystal, where parts of the world have repeated and flipped components, almost like a kaleisoscope. That makes it a Unity Grabpass material since I'm short on time and don't want to expose the scene render buffer.

notes
The first step for that crystal is to generate the faucets for it. I wanted a hexagonal triangle pattern that would repeat. To do this, I started with squares created from world coordinates (more on that later) that have a unique integer XY id. From the squares, I offset either the top or the bottom of the row by the local Y (see notes above) to get paralellograms that alternate their slant each row. The parararajellograms can be easily split diagonally into triangles, which results in the following:

Whoopsie, it's clamped. Levels in phased often go into the negative in the coordinate system. So, after fighting with the signs and ints and uints for a few minutes, finally got what I wanted:

triangles! everywhere!
the color in those two images is a debug color. it's filled in with something like the following:
int2 shapeid = geoTriangles(world_position);
int id = shapeid.x + shapeid.y * 128;
color.r = 0.5F * (id % 3);
color.g = 0.5F * ((id / 3) % 3);
color.b = 0.5F * ((id / 9) % 3);
It's not used in the final result but it has a large enough range of colors (27 I think?) to easily distinguish the full pattern. 9/10 would recommend
The geoTriangles (and geoSquares and geoParrelelelelograms) take in world coordinates. Because it's a grabpass using material, it would have probably been easier to make it screen coordinares and keep everything consistent in that manner - but that is a disaster gameplay-wise. Some of the previous effects have been very jarring because they don't stay constant with the world. That was a big big motivation here: a glitch effect that looks like a part of the world rather than another post process. I dont have a gif for it but the end result is that I can shake the renderer like shakira, and colored triangles stay in their places
For the actual kaleidoscope effect, the idea is super simple: we sometimes mirror coordinates. For each 4x4 group of triangles, toggle between flipped X and flipped Y based on the XY shape ids. Flipping the X and Y is done around the triangle's world X and Y position. The code for it is something like this:
float2 l_texCoordRounded = float2(shapeid.x * 0.5, shapeid.y) * SquareWidth; // triangles are double packed in X
l_texCoord.x = (shapeid.x & 0x1) ? (l_texCoordRounded.x * 2 - l_texCoord.x) : l_texCoord.x;
l_texCoord.y = (shapeid.y & 0x1) ? (l_texCoordRounded.y * 2 - l_texCoord.y) : l_texCoord.y;
Flipping around the world X and Y position means that I'm no longer working in surface coordinates for the screen texture, but world coordinates. Before sampling the grabpass scene, I have to move the world coordinates, flipping and all, back into surface coordinates. The extra work is super-ultra worth it because it keeps the effect very stable even as the camera does its wierd nonsense.

kaleidoscope!
At this point I opened a bottle of sake and combined with 4 hours of sleep it turns out I forgot to record what I was doing. In short, I added two more aspects: a random world offset by triangle ID, and a glittering effect that is simply specular lighting with normals generated by the triangle ID. You can sort of make out the glitter here:

It came out to about 110 lines of fairly readable shader code that I immediately pulled out and threw into a CGINC file.
Quick note that I havent optimized anything. Shaders with this stuff are averaging between 70 and 100 instructions still, so it's very slow. All in all, to this stage took me about four hours - 80% of my night
lunch is ending for me now, surely will keep writing about other effects another time