Polyreduce and UV's (again?)

   3210   5   2
User Avatar
Member
1104 posts
Joined: Aug. 2008
Offline
So the PolyReduce destroy's UV's which I am sure most people know by now.

I know 2 work arounds that gives slightly better result but neither gives a perfect result, the work arounds I know of are these:

One is using a vertexsplit set to UV and then promote the UV to points and with PolyReduce “prevent cracking” turned to on you can PolyReduce without destroying the UV's but this does instead mean all your points at the “seams” / cracks are kept, so the PolyReduce looses it effectivity.

The 2nd work around is to setup a connectivity sop from the hi-poly, setting connectivity to UV-island in Primitive mode. attribute promoting that to the lo-poly and doing For loop based on the $CLASS generated. but this doesnt handle seams well and you get UV stretching.

Is there a 3rd work around ? I mean for games it's pretty important that you can make good polyreductions.

Attachments:
PolyReduce_destroys_UVs.hip (53.9 KB)
PolyReduce_destroys_UVs.jpg (933.4 KB)

/M

Personal Houdini test videos, http://vimeo.com/magnusl3d/ [vimeo.com]
User Avatar
Member
216 posts
Joined: Oct. 2015
Online
Hello,
I try with an attribute transfer and the result does not seem bad.

Attachments:
attributeTransfer_01.jpg (253.2 KB)

User Avatar
Member
1104 posts
Joined: Aug. 2008
Offline
@Julca, yes sorry for not describing it in better detail. The 2 methods I mention use attribute transfer besides the other steps involved, I sort of took that for granted in my explenation. my bad.

And as you see on your setup it looks like you have prevent cracking on the polyreduce, so just as example one you get unwanted points along the seams. And that obviously gets worse on more complex meshes. which is very bad for games.
/M

Personal Houdini test videos, http://vimeo.com/magnusl3d/ [vimeo.com]
User Avatar
Member
216 posts
Joined: Oct. 2015
Online
Ok, so in this particular case, and may work with other kind of objects, if I use a group for edges with option “max edge angle” set for 20, and after use a dissolve with this group, it work perfectly.. on this simple case.
Sorry to not help you more.

Attachments:
groupAndDissolve_01.jpg (264.1 KB)

User Avatar
Member
1104 posts
Joined: Aug. 2008
Offline
@Julca, yes the dissolve SOP can be used on flat surfaces, but there is also a bug when there is to small polygons on that flat surface, the dissolve SOP then creates bad polygons, there is a bug already filed on that.
And you are also correct it can work on this simple case but not on organic surfaces like trees etc. But it is nice you looked into it
/M

Personal Houdini test videos, http://vimeo.com/magnusl3d/ [vimeo.com]
User Avatar
Member
1743 posts
Joined: March 2012
Offline
Hi Magnus! If you haven't already, could you submit a bug for the PolyReduce SOP not handling vertex attributes correctly?

Handling seams properly is one (important) thing, but it looks like it's not even getting attribute values from the right places in that first example you gave. In that example, since the output still has edges where the seams were, it should have at least gotten the uv vertex attribute values from the right place, which would have preserved the uv seams automatically, even though it wouldn't work for every case. I don't know how easy it is to fix, but it'd certainly be worth a look.
Writing code for fun and profit since... 2005? Wow, I'm getting old.
https://www.youtube.com/channel/UC_HFmdvpe9U2G3OMNViKMEQ [www.youtube.com]
  • Quick Links