Sending custom data from Shader Graph to VFX Graph or Shuriken?

Hello people!
I’m trying to emit particles from a specific spot of my model which is the emmisive/dissolve effect of the shader (the “burning” edges). Do you know if there is a way to send this data from my Shader Graph to VFX Graph or Shuriken?
Thanks in advance! :smiley:

Hi there @LouisBlackmouth

According to what I’ve read up, you can send data from Shader Graph to Visual Effect Graph, looking for tutorial that explicitly shows it

Did you see this tutorial though? https://youtu.be/z1Oh69O7TYo

1 Like

Thank you so much for the reply :smiley:
I saw the video but it’s not exactly what I need, he’s just distorting the surface of the burning effect. What I want to achieve is emit particles from the glowing edge:

shader_preview

There must be a way to send data of that node in the Shader Graph and use it as “emission texture” :frowning:

In case you are still looking for a solution.

I tried to do something really similar recently. Also with a dissolve shader.

From what I can tell there is not really any way to get data from the shader graph.
As far as I can tell the only shadergraph to vfx graph integration that exists right now is allowing you to control shader parameters from the vfxgraph.

The only solution I was able to come up with was setting particle position based on camera depth and then killing everything but what you want.

I found 2 ways to do this, both are sort of messy, and neither ended up working for my client, but depending on your scene it might be worth a try.

Create a second shader that only creates the edge shape.
Make a separate object that with that shader and sync animation with your main object.
Put it on its own layer with a separate camera.
Use that camera’s depth to spawn particles.

Use your main camera’s depth to spawn particles.
In the initailize context of your graph set alive based on a color threshold.
This one will only work if the shader edge is the brightes thing in the scene.

1 Like

A few more notes.
This wont work with transparent objects so if your main object is transparent probably go with option 1.
Make sure that the camera setting “link fov to physical camera is turned off”

Did you ever find a solution to this problem? I’m struggling with something similar.

I don’t have any experience with VFX graph but if you’re using Shuriken it’s quite easy.

Firstly, the topic title asks about sending data from Shader Graph to Shuriken. It works the other way around. You can only send data to Shader Graph from the Particle System. This way you can drive your shader using Shuriken interface.

There’s a module called Custom Data and works in combination with Custom Vertex Streams.

While Custom Data Streams are awesome in many ways, they’re not going to do OP any good. Unfortunately, to my knowledge, there’s still no interface to send data FROM any shader (Graph, Code, Amplify) TO any particle system (Shuriken or VFX Graph). If anyone finds a workaround, please share.