Jump to content

What's the reason of the grid patterns visible in many VOP/SOPs?


Recommended Posts



This might be something that's common knowledge but I only have guesses as to why it's happening. Basically when you use certain VOPs/SOPs to sample a geometry like using the Minimum Position VOP, Ray SOP, etc, you get a lot of samples accumulated at the edges of the sampled geometry.


If I remember correctly, sampling SDF volumes also showed similar patterns:




You can assume it's because of the point count which is 200k in this case, but it's still highly unlikely this many points end up exactly on the edges.


What's the reason for this? How to eliminate it?


My guess is a lot of these operations share similar implementations and acceleration data structures that manifest itself in this manner as artifacts. I don't know though. I would appreciate any insight on this topic.



Thanks :)

Link to comment
Share on other sites

it's simple enough, Minimum Distance VOP, XYZ Distance VOP, Ray SOP in Minimum Distance Mode get the position from the surface which is the closest to the point


in your picture I guess the grid is not flat and in that case location on edge tends to be the closest as you can imagine it as a peak of the curved surface so you simply end up with more points on edges especially with increasing distance of points from surface


for SDFs it's similar as you are usually creating them from polygonal mesh, especially VDBs, which convert any parametric surface to polygons prior to SDF which can make it look faceted, but you can very simply get rid of it by slightly smoothing the SDF

  • Like 2
Link to comment
Share on other sites

I believe you can easily replicate Creep POP with xyzdist() and primuv() functions, you just need to compute proper v

as well it helps to start after collision which by the way can give you primitive id and uv of the hit so you will avoid snapping point to the geo from the distance and therefore problem with edges being closer


you can as well look into the new pop solver how the sticking and sliding is handled, which for now looks like is releasing sliding particles based on dot with the surface so they don't slide indefinetly, but that easy to change as well

  • Like 1
Link to comment
Share on other sites

Thanks anim, you solved the mystery single-handedly :) That makes sense.


How would you create the Creep POP though? I thought it only supported NURBS? Or do you mean for NURBS surfaces? I don't know why it's not provided in the new POPs.

probably because new pops have built-in stick/slide behavior, which gets solved inside POP Solver, if you look inside

on one hand neat idea, on the other, it's a little blackboxy especially for sliding when you want to define conditions when the particle detaches from surface, so you need to customize it by yourself or write your own implementation for now

Edited by anim
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...