Issue regarding transparency with VFX graph

Hi there !

I’ve run into an issue I can’t seem to solve : I’m a tech artist, and I made a VFX graph with a custom shader.
It’s using transparency, with a greyscale texture. The version is Unity 2022.3.12f1

In editor, everything is fine, when I build, everything is fine too but when the game gets built on the company’s remote computer (which runs on Linux while my computer uses Windows 10), transparency is messed up : the particles are opaque, BUT my shader’s effect render correctly (there’s a distortion and it can be seen in the build).

I’ve tried alpha clipping, changing blend modes, forcing alpha by changing my greyscale texture for an alpha one but it doesn’t fix the issue and I’ve been searching for someone with the same kind of problem on the Internet, but couldn’t find anything.

Any idea ?

Hi!

Does it only happen with transparency?

It could be that for some reason it is not able to find/generate the texture. You can test if this is the case (if you haven’t already) by assigning it to the main texture and see if it is visible.

Does it only happen in build? If you have access to the editor on that platform, it would be interesting to know if it is possible to reproduce in edit mode.

If after some testing you thing this could be a Linux specific bug, you can report it and attach a simple repro vfx.

Thanks!

Hi ! Thanks for your quick reply.

It only happens with transparency : I get all other elements of my shader (distortion, color, texture…) but where there should be transparency, it’s just rendering black.

To illustrate, my texture is a white fish silhouette on a black background, (I also tried exporting only the silhouette with an empty alpha grid behind and got the same result) ; in editor and in my builds, it renders the fish silhouette just fine, but in the remote computer’s build, it renders a black octagon with the fish silhouette, colored and distorted by the shader. So there is information from the texture, making me think this is related to VFX graph more than to the actual texture.

Also, I can’t access the editor on the remote computer unfortunately.

Thank you !

Update : so it seems like the issue comes from Linux and VFX graph using shader graph, as another VFX I’ve made using VFX graph with a custom shader graph encountered the same issue (particle being opaque in build).

How to recreate the bug :
-create a VFX graph using a custom shader graph for the particles (here, using a PC running on Windows)
-Build the game on a Linux PC

1 Like

As Gabriel mentioned earlier, it would be helpful if you reported a bug so our QA team can investigate, as details are important here and not all Linux versions are supported on Unity.

I tested two scenarios on Ubuntu 18.04 but I did not seem to get your described result:

  1. Assigned the RGBA output from the Sample Texture to the Base Color and the Alpha (A1) output to Alpha in the Fragment. This successfully removed the black background.
  2. Assigned the RGBA output from the Sample Texture to the Base Color, then split the alpha and assigned it to Alpha in the Fragment. On Linux, nothing was rendered, while on other platforms, it removed the black background.