Flashback '94 Update

I've just released a major update to my Flashback '94 Shader Pack for Unity! Click the horrifyingly dated logo below for details:

I've been out of commission for a few months due to medical issues. When I started getting back on my feet, I wanted to address some of the bugs that users have encountered in my shader code, and to add some new features that I'd been thinking about for a while. Initially, I'd expected this to be a small-ish incremental update, but by the time I was done I had rewritten almost all my shaders from scratch.

The most glaring problem with the last version was a rasterization bug that sometimes caused parts of surfaces to disappear. This was because I was running my vertex snapping code after vertex projection instead of before, which caused problems when writing to the z-buffer. That was the first thing I fixed!

There are now two projector shaders that you can use for things like blob shadows and spotlights. They have more specific requirements than the other shaders, so be sure to read the instructions thoroughly!

I've also updated all the shaders to properly support Unity lightmaps in both RGBM and dLDR formats (baked GI only, though), and they now support up to 8 lights per object instead of 4. Unfortunately, I have no control over which lights are used for each object, since I have to use whatever Unity gives me in the vertex program, but it appears to be based on local brightness so I don't think this will prove to be a problem in most situations.

Another small Unity limitation: when Unity renders an object with a lightmap, it does not provide any real-time lighting information to the vertex program. Because of this, lightmapped objects will only have diffuse lighting, and won't display any specular highlights. I did my best to find a workaround for this, but the best I could do was a needlessly elaborate DirectX 11 compute shader that would have severely limited your release options.

Sadly, these shaders will probably never work on modern consoles, as Unity's graphics pipeline has no vertex-lit rendering path for consoles, and I doubt that adding one would be worth the support burden for them. Don't worry, though! Windows, Mac, Linux, iOS, Android and WebGL are all fully supported.

I've also made a lot of smaller under-the-hood fixes. Shaders will now reuse existing passes where available, which makes maintaining the code much easier. Reusable code is now centralized in a *.cginc file, with the relevant #defines at the top if you feel like getting your hands dirty. The cutout shaders are now properly double-sided, so they'll show the correct lighting no matter which side of a surface you're looking at.

Take a look at the WebGL demo to see Flashback '94 in action, and you can buy it now on the Unity Asset Store.

Thanks for dropping by, and have fun!