Peak SOP with Negative Direction

   2821   10   2
User Avatar
Member
538 posts
Joined: Dec. 2006
Offline
Hi there!
I want to peak polygons with hard edges to negative direction. I need a good procedural solution.

https://gumroad.com/alexeyvanzhula [gumroad.com]
User Avatar
Member
7715 posts
Joined: July 2005
Offline
What about PolyExtrude with negative distance? I'm not sure how it works out with complex shapes though and this seems to change the edge lengths in unexpected ways.
User Avatar
Member
538 posts
Joined: Dec. 2006
Offline
edward
What about PolyExtrude with negative distance? I'm not sure how it works out with complex shapes though and this seems to change the edge lengths in unexpected ways.

Thanks, but I have already tried many ways, including extrude.


This is quite an interesting problem
Edited by Alexey Vanzhula - March 30, 2017 04:56:14
https://gumroad.com/alexeyvanzhula [gumroad.com]
User Avatar
Member
1265 posts
Joined: March 2014
Offline
Battled with the same thing a while back. I ended up doing it manually…not so much fun.
Werner Ziemerink
Head of 3D
www.luma.co.za
User Avatar
Member
85 posts
Joined: May 2011
Offline
For a simple cube , simply set @N=@P , for a more complex geometry —> offset stuff ?
— dedeks 3000 —
User Avatar
Member
538 posts
Joined: Dec. 2006
Offline
dedeks3000
—> offset stuff ?
What do you mean?
https://gumroad.com/alexeyvanzhula [gumroad.com]
User Avatar
Member
85 posts
Joined: May 2011
Offline
ncn

Attachments:
Screenshot at 2017-03-30 19-15-52.png (8.2 KB)

— dedeks 3000 —
User Avatar
Member
538 posts
Joined: Dec. 2006
Offline
dedeks3000
ncn

It's not a big problem for curve surfaces. But it's not possible with meshes slightly more difficult than a cube In this case different surface areas will conflict with each other and any “offset stuff” will not be effective.

I probably did not correctly explain the problem. I mean, maybe any one invented some fake method. For example I have not bad result with new Smooth SOP. Or Boolean SOP that solve the problem but leave some garbage
https://gumroad.com/alexeyvanzhula [gumroad.com]
User Avatar
Member
670 posts
Joined: Sept. 2013
Online
My suggestion would be to connect the geometry to a solver node and constantly move all points along their negative normals. Once they meet, there are two types of points: Corner points and flat points.

For corner points create an averaged normal of all nearby points and their own normal and move on.
For flat points an average vector aiming from their nearby neighbours should be added to their normals. So they keep moving inwards with the same speed but get shifted sideways.

I dont expect this method to be sufficient but this is how I would start.
Edited by Konstantin Magnus - March 30, 2017 20:50:46
https://procegen.konstantinmagnus.de/ [procegen.konstantinmagnus.de]
User Avatar
Member
7715 posts
Joined: July 2005
Offline
What you really want here is to sweep the polygons in negative direction of their primitive normal. ie. the 3D generalization of the straight skeleton: https://arxiv.org/abs/0805.0022 [arxiv.org] https://www.youtube.com/watch?v=ryHpgqTFOLw [youtube.com]

From stack overflow, clipper [angusj.com] was suggested as library that could do the polyhedral offsetting.
User Avatar
Member
538 posts
Joined: Dec. 2006
Offline
edward
What you really want here is to sweep the polygons in negative direction of their primitive normal. ie. the 3D generalization of the straight skeleton: https://arxiv.org/abs/0805.0022 [arxiv.org] https://www.youtube.com/watch?v=ryHpgqTFOLw [youtube.com]

From stack overflow, clipper [angusj.com] was suggested as library that could do the polyhedral offsetting.

Cool. This is really useful info. Thank you.
https://gumroad.com/alexeyvanzhula [gumroad.com]
  • Quick Links