Polyextrude does not preserve point groups

   3945   17   5
User Avatar
Member
10 posts
Joined:
Offline
Hello,

PolyExtrude does not seem to preserve point groups on the extruded points after extrusion, is this expected behavior? Prim groups however are preserved as expected after extrusion.

Is there a simple work around for this?

Attachments:
extrude_ptgroups_1.png (430.0 KB)

User Avatar
Member
10 posts
Joined:
Offline
And it looks like doing an inset of any value sets all the point groups to 0. That seems quite unexpected
Edited by Rates - April 12, 2020 04:25:15

Attachments:
extrude_ptgroups_inset2.png (337.5 KB)

User Avatar
Member
495 posts
Joined: July 2005
Offline
Hi,

yes it is unexpected.

A simple workaround might be converting your group to an integer attribute.

Attachments:
extrude_group.hipnc (96.2 KB)

User Avatar
Member
56 posts
Joined: May 2017
Offline
Edge groups are lost too.
I'm afraid Aizatulin workaround is not possible with edges, isn't it?
User Avatar
Member
495 posts
Joined: July 2005
Offline
Not this way, but you can store the point number id for example, which gets duplicated and after this you can recreate the edge group, if the pair of ids of two neighbours correspond to a point pair of an edge within the group.
Edited by Aizatulin - Jan. 3, 2023 03:31:09

Attachments:
preserve_edge_group_extrude.hipnc (118.0 KB)

User Avatar
Member
56 posts
Joined: May 2017
Offline
Hello.
Today I realize this post is from 2020, we are now in 2023 and this issue is still not fixed. I have already reported the bug, but there is no solution for now.
I think this feature is quite important for some procedural modeling setups.
When could we expect a fix for this?
User Avatar
Member
56 posts
Joined: May 2017
Offline
We are now on Houdini 20 and the bug is still there. SideFX, are you listening?
User Avatar
Member
40 posts
Joined: June 2023
Offline
I also hope to solve this problem too
User Avatar
Member
8045 posts
Joined: Sept. 2011
Offline
This is not a bug, groups are not cloned onto extruded parts. Use a point attribute for extrusions to inherit.
User Avatar
Member
40 posts
Joined: June 2023
Offline
>Jsmack
Is the Edge Group Attribute lost in "Poly Bevel" also a intended one?
User Avatar
Member
4731 posts
Joined: Feb. 2012
Offline
Hikari_
>Jsmack
Is the Edge Group Attribute lost in "Poly Bevel" also a intended one?

Unfortunately many nodes do not preserve edge groups either due to being overlooked or for performance reasons.

For example Subdivide SOP doesn't preserve the edge groups. If you want the original edge groups updated with the new topology, you have to write some VEX code.
Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]

youtube.com/@pragmaticvfx | patreon.com/animatrix | pragmaticvfx.gumroad.com
User Avatar
Member
40 posts
Joined: June 2023
Offline
>animatrix_
Thanks for the reply.
I will try to learn VEX as I go along.
If you don't mind, can you give me, a VEX beginner, some tips on how to take over group attributes?
For example, useful functions, etc.
User Avatar
Member
4731 posts
Joined: Feb. 2012
Offline
Hikari_
>animatrix_
Thanks for the reply.
I will try to learn VEX as I go along.
If you don't mind, can you give me, a VEX beginner, some tips on how to take over group attributes?
For example, useful functions, etc.

These functions are useful:

https://www.sidefx.com/docs/houdini/vex/functions/inpointgroup.html [www.sidefx.com]
https://www.sidefx.com/docs/houdini/vex/functions/inedgegroup.html [www.sidefx.com]
https://www.sidefx.com/docs/houdini/vex/functions/inprimgroup.html [www.sidefx.com]
Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]

youtube.com/@pragmaticvfx | patreon.com/animatrix | pragmaticvfx.gumroad.com
User Avatar
Member
56 posts
Joined: May 2017
Offline
jsmack
This is not a bug, groups are not cloned onto extruded parts. Use a point attribute for extrusions to inherit.

Well, then is needed to rewrite the help pop up of the Preserve Groups option. It says face and edge groups are preserved but only primitive groups are preserved.
Edited by Gagui - Dec. 26, 2023 04:46:51

Attachments:
Captura de pantalla 2023-12-26 104208.png (18.9 KB)

User Avatar
Member
102 posts
Joined: June 2023
Offline
I also recently reported this bug and they even registered it. I naively hoped to use groups; after all, extrusion is the most important modeling function. And broken groups of edges and polygons are very annoying. But judging by the fact that the problem has been known since 2020 and after more than 3 years the developers haven’t lifted a finger to fix it, then expecting fixes in the coming years would be very naive on my part. In my opinion, this is a very shameful situation. And incomprehensible to us. How many people use feathers? 0.1% ? APEX? 0.0001% ? Why not spend part of your working time fixing the stupidest bugs that annoy 90% of users? Or on the tiny axes in the lower left corner that are hated by 100% of users? Or on the thin, barely visible axes of the handle? Or there are errors in all modeling tools, you don’t even need to look for them, users have been reporting for years. I honestly don't understand the company's strategy. Just to piss off users? Mystery.
User Avatar
Member
373 posts
Joined: June 2023
Offline
The strategical reason behind it is actually very simple.

People won't switch from Maya to Houdini just because Houdini has slightly better PolyExtrude. People wont switch from Houdini to Maya just because PolyExtrude is semi-broken.

Perhaps there are only 3 studios around the world that needs advanced feather tools. Then that's 3 more deals (that's quite a lot of money already, considering the price is like $6000 per seat). Fixing that little gizmos brings 0 sales guaranteed.

That's the best (and the worst) part about B2B business: if your software have one single advanced feature that people rely on, they have to buy it. Even the other 999 features are hard to use or borderline broken.
Edited by kodra - Dec. 26, 2023 06:40:50
User Avatar
Member
102 posts
Joined: June 2023
Offline
In search of some solutions, I downloaded several old but good hda for modeling on orbolt and decided to see what this wonderful developer is doing now. And in his channel for a long time there was only a blender. Apparently, he has completely switched to blender and is writing addons for blender.
Bugs and interface turn off many ordinary users. The developers are leaving behind them. The ecosystem shrinks and shrinks, there are fewer and fewer reasons to stay in it and do something for it, which tightens the vicious circle. That's how I see it.
And then wonder whether that “small” indifference really led to such bad results? but that's what always happens. Don't repeat these common mistakes, dear developers.
User Avatar
Member
4731 posts
Joined: Feb. 2012
Offline
Hikari_
>animatrix_
Thanks for the reply.
I will try to learn VEX as I go along.
If you don't mind, can you give me, a VEX beginner, some tips on how to take over group attributes?
For example, useful functions, etc.

Here is an example that shows how to recreate a specific edge group after subdivision. It supports all subdivision algorithms except Houdini Catmull-Clark as that doesn't interpolate integer attributes (OpenSubdiv and Mantra-Compatible Catmull-Clark does).

int ptnew = findattribval ( 0, "point", "origpt", i@origpt );
if ( @ptnum == ptnew )
{
    int pts [ ] = neighbours ( 1, i@origpt );
    foreach ( int pt; pts )
    {
        int index = findattribval ( 0, "point", "origpt", pt );
        if ( inedgegroup ( 1, "edges", i@origpt, pt ) )
        {
            int newpts0 [ ] = neighbours ( 0, @ptnum );
            int newpts1 [ ] = neighbours ( 0, index );
            
            int sharedpt = -1;
            foreach ( int newpt; newpts0 )
                if ( find ( newpts1, newpt ) >= 0 )
                {
                    sharedpt = newpt;
                    break;
                }
                
            if ( sharedpt != -1 )
                setedgegroup ( 0, "newedges", @ptnum, sharedpt, 1 );
        }
    }
}

If you want to handle all edges groups procedurally, you can either use a For Loop network or do everything inside a single Attribute Wrangle by looping over all edge groups within the same code.





Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]

youtube.com/@pragmaticvfx | patreon.com/animatrix | pragmaticvfx.gumroad.com
  • Quick Links