Feedback Wanted: Visual Effect Graph

Subgraphs are also listed for 2019.2

Considering 2019.2 is already in alpha I guess the interesting question is “When will these features be merged to master in the SRP repo?”

Considering the whole thing is in preview my bar for trying out a feature is “it’s been merged”. I did try checking out some of the other branches but they are in a very patchy state. Subgraphs seems to work but hasn’t seen a commit for 17 days and tri/octagon primitives is just plain broken. No sign of a branch for ribbons/trails.

1 Like

hello guys i have this

Library\PackageCache\com.unity.visualeffectgraph@5.10.0-preview\Editor\PackageInfo.cs(20,41): error CS0234: The type or namespace name 'Packages' does not exist in the namespace 'UnityEditor.PackageManager' (are you missing an assembly reference?)```
Unity 2019.2.0a9
HDRP 5.10.0
VFX graph 5.10.0
How can i resolve this, thanks !

When setting the color over life to an HDR color with intensity > 0 (emissive) it does not show any emissive colors. The same with the cube output produces emissive color as usual.
Is this behavior intended? If so, how can I change it to be truly emissive?

You can use GPU events to parent systems. (You need to enable experimental features in the VFX preference panel)

You can but you have to pass the depth buffer manually at the moment. In next package for 19.1 and 19.2, the process is improved and everything will be automatic.

You can use a custom event for that and use the SendEvent API

See the block “Set Position From Map”

Good suggestion, we can add a node that does this

Trails are currently being worked on and are planned for 2019.2

This should work. Can you share more info about that (screen of the graph and result for instance)

2 Likes

Any more info on this? I’ve tried to figure it out by playing but there’s no node that seems to produce the right output to connect to the “Evt” input of a GPU Event context.

Same question, i tried the samples in 2019.2 and cant manage to run them

I’ve run into a problem with the VFX Graph. If you make a new Graph, the Initialize context shows up like this:
4378399--397249--Random.PNG

However, “Set X Random” does not show up in the Add New dropdown menu (Space). The only thing I can get is:
4378399--397255--randomized.PNG

I’m using 2018.3.9 and the VFX package is at 4.10.0 (preview).

The only way that I can use Random blocks is to copy it from a preexisting context, such as from the samples. Why isn’t “Random” showing up for me?

4378399--397249--Random.PNG

UE4.22 had some niagara upgrades. Could this get in VFX graph as well like curl field, exponential fallof for vector fields and collision system?

New: Niagara Vector Field Data Interface
The Vector Field Data Interface now works the same for both CPU and GPU particles! You can use the Sample Vector Field module to sample vector fields. It exposes three primary inputs:

  • VectorField: This is the Vector Field Data Interface instance, containing the static vector field object itself, and per-axis tiling flags.
  • SamplePoint: This is the point where the vector field is sampled. This defaults to Particles.Position, but this can be customized.
  • Intensity: This scales the sampled vector.

There are also multiple optional inputs:

  • ApplyFalloff: Check this to apply a falloff function to the sampled vector, so the influence of the vector field approaches zero towards the edges of the vector field’s bounding box.

  • UseExponentialFalloff: Check this to make the falloff function be exponential instead of linear.

  • FalloffDistance: When applying a falloff function, this parameter determines how far from the bounding box edges the falloff applies.

  • FieldCoordinates: This makes it possible to override the Emitter’s Localspace parameter. It has three options:

  • Simulation: Uses the Emitter.Localspace parameter.

  • World: This overrides the position and transform of the vector field so that it is always relative to the world origin, regardless of the Emitter.Localspace parameter.

  • Local: This overrides the position and transform of the vector field so that it is always relative to the System itself, regardless of the Emitter.Localspace parameter.

  • FieldTranslate: This offsets the vector field relative to the origin as defined by FieldCoordinates.

  • FieldRotate: This reorients the vector field relative to the origin as defined by FieldCoordinates.

  • FieldScale: This rescales the vector field.

The SampleVectorField module provides a lot of utility functionality, and therefore it might include some overhead. You can use specialized vector field sampling, by including the SampleField node on a Vector Field Data Interface object in the script editor.

The input expected here will be relative to the volume of the vector field itself, as no transformations are applied for you.

An example for easily visualizing and using a vector field is included, called VectorFieldVisualizationSystem.

New: Niagara Curl Noise Data Interface
The Curl Noise Data Interface now generates procedural curl noise based on an underlying simplex noise function and the results are identical for both CPU and GPU emitters. It is recommended to use the SampleCurlNoiseField module to generate curl noise for your particles. This module has two primary inputs exposed:

  • Strength: This scales the output vector generated by the module.
  • Length Scale: This describes the approximate size of the vortices generated by the curl noise.

and three optional inputs:

  • Offset: This is used to pan the noise field.
  • Noise Field: This is the Data Interface object itself, primarily used for adjusting seeds.
  • Sample Point: This specifies where to sample from. Defaults to Particles.Position, but other values can also be used.

The curl noise field does not inherently tile, and does not suddenly end due to its procedural nature. To get a tiling curl noise field, consider using the Vector Field Data Interface instead, with a periodic volume texture curl noise as a vector field.

New: Deterministic Random Number Generation in Niagara
We added support for deterministic random number generation for both CPU and GPU Niagara emitters. The behavior of the random number generated can be controlled globally from the Emitter Properties module, with the following options:

  • Determinism: A flag to toggle between deterministic or non-deterministic random numbers for the entire emitter.
  • Random Seed: A global seed used by the deterministic random number generator.

The RandomRange Niagara function is the recommended way to generate random numbers inside scripts. It now accepts the following:

  • Min: This defines the lower bound of the random numbers generated. It can be any integer or float type.

  • Max: This defines the upper bound of the random numbers generated. It can be any integer or float type.

  • RandomnessMode: This is an enum controlling the determinism mode of the random number generator, and it can be:

  • Simulation Defaults: This is the default behavior; it inherits the value of Emitter.Determinism.

  • Deterministic: Uses the deterministic random number generator.

  • Non-deterministic: Uses the non-deterministic random number generator.

  • OverrideSeed: This determines whether or not to override the seed specified by Emitter.GlobalSeed.

  • Seed: This value is used to override Emitter.GlobalSeed if OverrideSeed is enabled.

The last three, RandomnessMode, OverrideSeed and Seed are initially hidden, but they can be revealed by clicking the arrow at the bottom of the node.

New: Collision System for Niagara
Niagara collisions have been completely rewritten to support ray-trace-based CPU collisions, CPU+GPU analytical plane collisions, GPU scene depth, and distance field collisions.

Additional features include:

  • Stability has been vastly improved across the board, in comparison to previous Niagara and Cascade implementations.
  • CPU collisions support the incorporation of the scene’s physical material characteristics, such as restitution and friction coefficients, and offers several integration schemes.
  • The system has been written as a single module to improve usability.
  • Collisions now work in combination with all renderers.
  • A configurable “rest” state allows particles to remain stable in particularly challenging situations.
  • The equations are physically based/inspired, and work with mass and other system properties.
  • A number of advanced options have been exposed, including static, sliding and rolling friction.
  • Collision radii are automatically calculated for sprites and meshes. Optionally, you can specify this parameter directly.

All that is listed here is already in the VFX Graph :wink:

Except exponential falloff of Vector Field (We doo have hard falloff though) and of course things related to CPU particles.

1 Like

Is trail rendering available in the VFX Graph?

I can’t get the lines output context to display any color other than black. Is there a secret to it?

I just wanted to say that VFX graph on LWRP is the bomb. Been waiting to mess with it for so long and now I can for my current project! Loving that it works on the oculus go when OpenGL ES 3.1 is enabled!

1 Like

I’ve been trying to run it on Daydream and got stuck on the fact that LWRP seems to insist on Vulkan which isn’t compatible with VR/XR on Android.

I’m going to try it with OpenGL again…

Can you tell me your precise Unity version, LWRP version and VFX Graph version?

2019.1.0b10 Latest LWRP available for that version from package manager, and latest VFX graph available for that version from package manager

I am on the Oculus Go however, not Daydream so unsure whether it will work the same for you. Certainly vulkan is not required. You have to enable OpenGL ES 3.1 from your player settings, its an additional checkbox. You also need to remove “auto graphics API” and select Open GL ES 3

EDIT: @andybak from here https://discussions.unity.com/t/716433 page-10

“Yes, we now have support for unlit VFX graphs in LWRP in >5.8.x(19.1) and >6.6.x(19.2) this has only just been put in so expect some issues, I have seen it running on both android and iOS though with my own eyes :)” that was from unity staff, I followed that and used a version above 5.8 (5.10.0 was available to me) and its working with the additional options I mentioned above enabled

That will be different depending if “preview packages” is ticked. It will also be different if someone reads this post in week :wink:

Any chance you could post the actual version you’ve got installed? I want to reproduce your setup precisely.

I posted above?

LWRP 5.10.0.

Unsure about VFX graph and wont have access to personal PC until much later this evening, but I have preview packages ticked always so just tick it and go for the latest VFX graph and you should be fine.

Sorry - my bad. Thanks for clarifying anyway.

Are there the way to put shader in the VEG particle? Like material in Shuriken.

No problem, let me know how you got on and if you have any problems I can always give you some more pointers, have access to my LWRP project now so can load it up and go through any differences should you need