Polyreduce and UV's (again?)
4032 5 2-
- MagnusL3D
- Member
- 1110 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.
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.
-
- julca
- Member
- 241 posts
- Joined: Oct. 2015
- Offline
-
- MagnusL3D
- Member
- 1110 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.
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.
-
- julca
- Member
- 241 posts
- Joined: Oct. 2015
- Offline
-
- MagnusL3D
- Member
- 1110 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
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

-
- neil_math_comp
- 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.
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]
https://www.youtube.com/channel/UC_HFmdvpe9U2G3OMNViKMEQ [www.youtube.com]
-
- Quick Links