You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Events
Events work by writing to a preallocated buffer exposed to the VM as "SharedData". The underlying data storage for these is the same as particle attriubtes. Each "Shared Data" view in the VM has a counter which is incremented or decremented to aqcuire and consume a slot in this buffer for any particle that wished to write or read from it.
In the graph, this is done via ReadEvent and WriteEvent nodes. Each lets the user define the data they wish to read or write, just like for particle attributes.
Each also has a mandatory "Valid" pin which indicates whether the data being read or written is valid.
e.g.
A write would be marked deliberately valid or invalid by the user to control which particles write out event data. Valid <= 0.0f means dont' write. Valid > 0.0f means do write. Matches current working of less than etc. Should probably change to use ints when they're supported.
A read would be valid or not depending on whether there is data available in the event buffer.
Events TODO:
Once ints are supported, alot more power can be had using direct indexing of the buffers.
This leads me onto supporting generic, non-event buffers. Should be very easy to do.
Much of the VM support is hacked in and will want to be replaced after scalarization.
I may also move away form a "Shared Data" area and write a more general array feature. Couldn't really do this initially with no int support. Should have really done scalarization+int support first.
Needs BP interface.
** SECONDARY FEATURES **
- VM Debugger working - Still basic and rough. Allows a single particle to be traced through the VM for it's lifetime.
- Function Merging changes - Merged as needed during compiler traversal rather than all at start.
- Constatnt changes - Splat scalars when building table, not runtime. Faster and reduced code complexity.
- Fixed reallocation of niagara node pins so that existing connections are preserved.
- Added a reregister context class to reregister all niagara components that use a particualr script when that script is recompiled. TODO: Should also do this for property changes in the editor I think.
- Implemented GreaterThan Op. The reverse of LessThan
- Implemented VectorSelect Op. > 0.0f Selects input A, otherwise B.
- Added a new Graph Editor Tab to the Niagara Graph Editor. "Flattened Graph" shows you the scripts graph but with all the function calls merged into the main graph. Useful for debugging. Still a bit rough around the edges. Might not make it to V1.0 of niagara but useful for the moment.
** MINOR FIXES **
Fixed crash in Dev UI in the effect editor.
Tweakd the details customization for the dev ui.
Fixed leakage of all effect instances that were created. This stuff still needs some work. Need to do a pass over the high level stuff in Niagara and more carefully define lifetimes and ownerships.
[CL 2662489 by Simon Tovey in Main branch]