where is Additive Blend mode for sprites?

I don’t get this stuff, at all.

Don’t know what version, of what, you’re talking about.

And I came across some weird material bug that was further making my experience sucky.

https://issuetracker.unity3d.com/issues/materials-texture-becomes-invisible-when-materials-shader-has-been-set-from-particles-slash-standard-surface-or-unlit

This was completely throwing me for a curve. Didn’t know what was going on. Presumed it was me making mistakes… turns out…no… Unity. Again.

There should be popups happening in the Editor UI: “You’ve hit a known bug… here’s the link, we’re planning to fix it… don’t know when.”

I’m using an additive Particle Shader, now, which required jumping through hoops, too, to get working. And has no alpha handling. Need black background on textures instead of using alpha.

Just boggled that it’s all this primitive and requires so much effort and consideration to switch to an additive blend mode.

That doesn’t make it simpler. Elegant. Or remotely user friendly.

I download these, then what? I install them, Unity then takes forever to compile them… then what? Where does one begin within this?

not saying it is friendly or simple… just trying to explain how i did it. don’t need to install them or compile them just copy an edit one (change blend and name) text file from it and copy that to your project…

now you have a new shader you can use standard sprite shader or the modified blend mode shader you copied

you just have to get the right shader for the version you are using because it changes a lot…

yes it sucks that you cannot just change blend mode without performing this crazy quest but

Slowly, in baby steps, because I’m stupid, and cannot get this to work:

  1. Import a texture.
  2. Convert it to a 2D/Sprite // now a sprite, material, with a default shader.
  3. Now what, EXACTLY do I do to not lose the image

Everything I do, from this point on, makes the texture representation disappear.

Just like this: https://issuetracker.unity3d.com/issues/materials-texture-becomes-invisible-when-materials-shader-has-been-set-from-particles-slash-standard-surface-or-unlit

it works in latest 2018.2

create shader

  1. download right version of built in shaders
  2. locate the Sprites-Default.shader file within this downloaded archive
  3. copy and rename the file to Sprites-Additive.shader into your project
    4 edit the shader using a text editor like vscode
  • change name (first or second line) to something like Sprites/Additive
  • change the blend to Blend SrcAlpha One if you want additive or whatever

use shader

  1. create a mat
  2. drag shader to mat
  3. drag mat to sprite

ya maybe that is just a bug with that version idk worked in 4.4 and 4.6 and 2018

I’m using the latest 2018.1, will try with the newer beta… THANK YOU!!!

@rakkarage

This was actually super easy to do. If your shader is the only shader in the project it will apply it to the material automatically. Then you just edit the sprite renderer to use that material. I had it running in about 10 minutes - thanks to rakkarage’s code which I shamelessly stole for my additive blending. I had my animation (which is where I actually applied the blend to) showing the blending mode in under 10 minutes. Very cool and thank you for this!

Going back to the original topic, wouldn’t it make sense for Unity to “ship” with at least a basic set of common shaders? Click, select, done. The request for an Additive Blend is quite frequent and also crucial for any game that uses simulated lights, fire, etc.

I’ve seen other threads that say to use on of the the Particles shaders, so at least there’s that.

A multiply/subtractive shader (for dark smoke, etc) would also be useful as a basic core shader.

3 Likes

I just had this same question today. Disappointed that the recommended solution is to hunt down the default shader and edit it. I’ve done it before, but it’s still annoying.

The “Particles/Standard Unlit” shader has blend options right at the top of the inspector, so why can’t we have something similar for the default sprite shader. Seems like a pretty major oversight to me.

One last thing, for anyone stumbling on this thread who doesn’t have the know-how to do modify a shader:
The “Particles/Standard Unlit” shader seems to work for sprites but not for UI. The “Legacy Shaders/Particles/Additive” shader seems to work on both (as far as my minimal testing goes). So, if you don’t want to mess with shaders, you can just right-click in the Project view and select Create/Material, and then change the shader on the new material to one of those. Legacy Shaders are at the very bottom of the shader list.