Are there only two blocks to work with SDF right now? I can see only collide and conform to SDF in an Update part of the Graph. What if I want to scale particle based on the distance to the closes point to SDF for example? Or am I missing something?
Hi, yes, these are the two SDF blocks currently available. You can submit ideas for new functionality on our public roadmap.
Seems that what you actually want is a generic operator "SampleSDF". This is something that we plan to add
I tried something a little sneaky to get more functionality from the current SDF system. - set lifespan to constant and store it in a custom attribute - collide with SDF and make it remove 50% of life if collision - compare lifespan against custom attribute, if they are different then do whatever you want with the particle inside the SDF Unfortunately it didn't work... I believe that the order of operations in a context is not necessarily the order of blocks top-to-bottom? My several similar attempts to do things requiring ordered steps A then B then C have all failed.
It should be, with the exception of triggers, which actually trigger at the end of update (they are experimental blocks and the UX is still WIP). Can you share a screenshot of your graph where you are doing what you described?
Here's an example of what I was trying with screen grab. - custom attribute stores a constant which is set into lifetime - sdf collider should detect particles which are inside (mode: Solid) and reduce lifetime by 50% - comparison of custom vs lifetime should detect if life has been reduced - branch sets particle size tiny outside, large inside, for nice visual effect What I see is a sphere of particles all the same size. I checked that the SDF Model is inside the sphere and is visible when using SDF Conform. EDIT: updated image, original was resetting size in the Output (oops) - same result from this one