Houdini Evolving

   13299   31   3
User Avatar
Member
453 posts
Joined: Feb. 2013
Offline
From the official UVLayout forums:
http://www.headus.com/phpbb/viewtopic.php?t=839 [headus.com]

I bet you can gain at least 10% texture space definition from better seams and layout. And obviously somebody did this by hand. The person could probably have done it better, but didn't bother so as to not waste their time.

This is the quality of packing I would like to get automatically:
http://modo.docs.thefoundry.co.uk/modo/801/help/images/tools/UV_Window.png [modo.docs.thefoundry.co.uk] (although this one might have texture bleeding issues depending on texture resolution).

Oh and this is what Zbrush spits out semi-automatically:
http://pixologic.com/zbrush/features/UV-Master/img/armor.jpg [pixologic.com]
(And that is a best-case scenario. I have never gotten such a nice result out of ZBrush.) This basically does not make use of about 30% of available UV space. Again, this is an unrealistic best-case scenario.
Usually you get something like:
http://docs.pixologic.com/wp-content/uploads/2013/01/UVMaster01.jpg [docs.pixologic.com]
Which is nice for not having many seams, but terrible for wasting all the space. The distortion is also probably quite serious. It would be more efficient to cut off the extremities and use two or three square textures of lower resolution.
User Avatar
Member
148 posts
Joined: March 2016
Offline
DASD
On the spot: Make a perfect UV unwrapping process that is compatible with current workflows and people will love you.
XD
There are techniques such as ptex and uvw mapping, but we always go back to UV maps (and or UDIM), because they can be used universally and are performance efficient.
A lot has been done in the field of automatic unwrapping to UVs, but it's still mostly crap.
Even if you get a good automatic unwrap the automatic layout will be worthless.
All automatic UV packing algorythms I have tried, waste at least 20% more UV space than I would, if I did it manually. Usually it's more along the lines of over 50% wasted space.
Doing UVs is a timeconsuming thankless job that only trained professionals can appreciate. It would probably be best for everyone involved to automate the process as much as possible.

I have tried making my own UV unwrap processes with Houdini. I spent many hours on this and even had some success for particular cases. But it's still all crap. The basic Houdini UV unwrapping tools are terrible. Until H15 there wasn't even a dedicated node to do an automatic layout. No matter how great your procedural model is, without procedurakl UVs, you will still have to rework it by hand.

Here are some of the specifics of UV packing: UV space is expensive. So you want to pack all UVs into the tightest possible space. There should be no overlap, unless it is specifically allowed for identical pieces. Not all processes support overlapping UVs.
Textures are commonly in a square power of 2 format (because of commonly used compression and file formats). So artist will always make textures that are 512*512 or 1024*1024 or 2048*2048 (etc) pixels. Some artist would make textures of 512*128 format and similar, but as far as I know this is not efficiently supported by all game engines and render engines. So most of the time you will pack UVs into a 0-1 square.
Anyways, because of the scale difference between UVs and texture pixels you get artefacts called pixel-bleeding if the UVs are too close to each other. So you need to account for padding space.
But thats still not the whole story. UVs need to be optimized for little distortion and few seams. More seams mean less distortion but also more wasted space due to padding. If there is too much distortion, the UVs are useless. Now it gets tricky: Because all UVs will have some distortion, UVs are technically a bit flexible. So when you pack them and you realize that something is inefficient you could technically bend the UVs a bit or change your seams. - In times of 3D painting seams are only an issue in terms of wasted space due to padding. Oh and rotation doesn't matter, but you should not flip UVs. Why should you not flip UVs? Because it messes with your normal maps unless the (render) engine compensates. And since it's another calculation for the shader, you don't want the engine to do it. And the kicker is that small scale differences between pieces don't matter too much.
Oh and your process should be able to handle geometry that consists of multiple objects, non-manifold geometry, concave geometry, mechanical geometry (with lots of straight lines), organic geometry (with lots of crazy shapes), and all sorts of other fun stuff.
To summerize: It's an optimization and 2D packing problem with many many many variables and very few constants.
I would love a great automatic UV packing system. ^^
I think it's possible, but needs some serious math and code wizardry.

Skilled artist would still create their own UV layouts, because there are special effects and techniques that require specific layouts, but there would still be many applications that would greatly benefit from an automated process. For example, light-map UVs are still relevant and 3D character painting benefits from unique UVs.

Excellent post, UV layout is mathematically an NP-Complete graph coloring problem (https://en.wikipedia.org/wiki/NP-hardness [en.wikipedia.org] and https://en.wikipedia.org/wiki/Graph_coloring). [en.wikipedia.org] It is a form of Sudoku Puzzle: https://en.wikipedia.org/wiki/Sudoku. [en.wikipedia.org] Since UV Layout is an NP-Complete optimization problem it is challenging to solve manually by hand, hence Headus uvlayout, Autodesk 2016 adding functionality to solve this problem and other solutions.

My Heat Seeker algorithm discussed above should solve this nicely. A solution to UV Layout using Heat Seeker can be prototyped in Mathematica since it has all of the required fundamental graph manipulation algorithms. Again this would be made available as a node in Houdini that connects Houdini to the code running in Mathematica su-kernels.


VR

Lars

PS: I too am familiar with the Headus uvlayout tool and have used it for several years myself.
Lars Wood
Future Vision Guide
Advanced Research And Development
User Avatar
Member
148 posts
Joined: March 2016
Offline
DASD
From the official UVLayout forums:
http://www.headus.com/phpbb/viewtopic.php?t=839 [headus.com]

I bet you can gain at least 10% texture space definition from better seams and layout. And obviously somebody did this by hand. The person could probably have done it better, but didn't bother so as to not waste their time.

This is the quality of packing I would like to get automatically:
http://modo.docs.thefoundry.co.uk/modo/801/help/images/tools/UV_Window.png [modo.docs.thefoundry.co.uk] (although this one might have texture bleeding issues depending on texture resolution).

Oh and this is what Zbrush spits out semi-automatically:
http://pixologic.com/zbrush/features/UV-Master/img/armor.jpg [pixologic.com]
(And that is a best-case scenario. I have never gotten such a nice result out of ZBrush.) This basically does not make use of about 30% of available UV space. Again, this is an unrealistic best-case scenario.
Usually you get something like:
http://docs.pixologic.com/wp-content/uploads/2013/01/UVMaster01.jpg [docs.pixologic.com]
Which is nice for not having many seams, but terrible for wasting all the space. The distortion is also probably quite serious. It would be more efficient to cut off the extremities and use two or three square textures of lower resolution.

Thanks so much for this input, very valuable to my objective.

VR

Lars
Lars Wood
Future Vision Guide
Advanced Research And Development
User Avatar
Member
1755 posts
Joined: March 2014
Offline
Allow me to step in for a moment - DASD, the UVs shown in that image can easily be achieved in a 3rd party app like UVlayout, Unfold3d, etc. with, arguably, little effort.

I see that you are aware that all you have to do is to place good cutting seams and you have knowledge about the whole process, but you want it to be even more automatic which I'm not very sure what you mean by that. There are a lot of processes that are automated in laying UVs, gone are the days where the artist would spent days on UVs, now it's hours which isn't a big thing for any important job, in any field. I don't think the algorithm can, or even more importantly, should try to guess where the artist wants the seams to be.

The algorithms in the above mentioned apps are already very good at flattening islands and packing, so I'm not sure how much better they can get and if it's worth the effort. Of course, it's something everyone should decide for themselves what to do with their time, but IMO developing time could be spent more wisely in other areas where things are in a worse shape.

There are a lot of things in Houdini that need more attention than UVs, but that's just me.
Lars, perhaps after gathering a bit more info, i.e. allow this thread to continue for a while to see where the majority of users would like to see your efforts go to, make a poll with those areas and decide afterwards. Just an idea.
User Avatar
Member
453 posts
Joined: Feb. 2013
Offline
@McNistor I disagree. Gaining something like 10% of the texture space literally means that you gain 10% more texture detail for the same performance impact. - Performance is still and always will be relevant. Be it because of mobile devices, because of VR or just because of rendertime and memory constraints. And even if you have an abundance of resources you can use them to show more things instead of wasting them.

Therefore the importance of good UVs is not to be underestimated. And there is a lot of room for improvement. As I said, the job is thankless, because very few understand this.

But UVs are a mathematical problem. They are not an artistic problem. There are mathematicaly better solutions and mathematicaly worse solutions. The entire process can be done by a computer and we would be much better off if a computer did it for us. Essentially a computer could iterate often enough to achieve an optimal result, while a human could only make a rough guess.

A perfect UV system would be one node. You put it down and you get distortion and space optimized UVs that are as tightly packed as possible. We are still far from something that does this well enough.

But of course we could poll what people would be interested in automating. It's just that nobody will cry if they don't have to do UVs ever again.
User Avatar
Member
1755 posts
Joined: March 2014
Offline
I think you're arguing something I never claimed, or at least I think I never did… too lazy to re-read my post.
Anyway, I agree that the UV space has to be exploited as best as possible and close to 100% coverage is something to aim at. What I said, or at least tried, is that you can already do this in those apps with good island splitting, that is well chosen cutting lines/seams. It's also not so time consuming, at least compared to the “old days”.

As far as not ever wanting to do UVs ever again, I can't say that's something all people want. I know I don't. Something you didn't consider apparently: UVs can be used as a modeling tool (in Zb one can use UVs to apply details on some portions of geometry) and quite possibly for other effects that are driven by UVs and you'd want manual control over those. I'm sure the FX veterans can think of one example in their career they used it.

I understand that you're not advocating for complete removal of the manual control, or at least I hope you don't, I'm just putting some facts on the table is all.
User Avatar
Member
453 posts
Joined: Feb. 2013
Offline
@McNistor
Sorry if I misunderstood something. My impression was that you think the UV tools & techniques we have are already good enough. With that I disagree.

And on your other point:
UVs can be used as a modeling tool (in Zb one can use UVs to apply details on some portions of geometry) and quite possibly for other effects that are driven by UVs and you'd want manual control over those.
I mentioned my thoughts on that in a previous post:
Skilled artist would still create their own UV layouts, because there are special effects and techniques that require specific layouts, but there would still be many applications that would greatly benefit from an automated process. For example, light-map UVs are still relevant and 3D character painting benefits from unique UVs.
- So I think we are on the same page on that issue.
User Avatar
Member
1755 posts
Joined: March 2014
Offline
DASD
My impression was that you think the UV tools & techniques we have are already good enough. With that I disagree.

That's right, I think they're good enough. They may not be in Houdini, but as far as available tools on the market I think they are. “good enough” as in allowing the user to quickly lay UVs that are using the UV space efficiently w/o a lot of effort, just a little experience and planning required.
Not saying there's no place for improvement for current techniques, I just think Houdini is in need of improvements in other areas that will be more appreciated. Obviously a highly subjective matter.

DASD
I mentioned my thoughts on that in a previous post:

Yeah, sorry about that, the time I've went through this thread was not the same as when I replied, so it probably didn't register.
User Avatar
Member
453 posts
Joined: Feb. 2013
Offline
@ McNistor

I think we both agree that Houdini's UVing tools are not as good as in other packages. SideFX has made a few improvements in H15, but it is not enough. I think Houdini is the software package that would benefit the most from a fully procedural UVing approach. It would be a benefit to all procedural modelling processes.


And I am not getting tired of saying that UVing tools (and skills) are highly underappreciated. Nevertheless they are absolutley worth improving, because they are the basis for creating the final look of so many things.
User Avatar
Member
148 posts
Joined: March 2016
Offline
I think that what is important to one modeling and animation field of study is not necessarily the same for another. As an example the “Digital Emily” project that seeks to achieve photorealistic characters using facial capture and new subsurface scattering technology is focusing on different objectives than is say Chris Landreth and his Oscar winning short film Ryan, where he restricts his work to classical modeling and animation. No one is wrong or right since the field of 3D modeling and animation is so broad and diverse. The choice is based upon where you want to go with it so to speak. Although I am not as familiar with VFX for feature films, I would suspect needs say for ILM are quite different than say for Pixar.

VR

Lars
Lars Wood
Future Vision Guide
Advanced Research And Development
User Avatar
Member
1 posts
Joined: Sept. 2016
Offline
DASD
@ McNistor

I think we both agree that Houdini's UVing tools are not as good as in other packages.
Hi, what do you say about that material

or it's only good for UE4 ?
User Avatar
Member
453 posts
Joined: Feb. 2013
Offline
The issue with this, is that it looks quite old-fashioned.

The textures repeat very visibly and still look low-res. It doesn't really make use of PBR material systems. It looks flat and the materials look dull. If we talk UE4, I expect something more along the lines of:
http://i.imgur.com/0AhEF5h.jpg [i.imgur.com]
And I know this can be achieved with the shown methods with Houdini and UE4.

But I would use better UV tools for other stuff. For example procedural generated organic models. Or if you generate a big building wall with a tiling texture, you could auto UV the whole thing, put that into the second UV channel and use it for a second layer of material information. And of course it comes in handy if you want to use Houdini as a non-procedural modelling tool.
If you want to see some nice non-procedural UV tools, look at the new Maya (2016.5/2017). The automatic UV layout tool there saved me dozens of hours already. Basically, Houdini should have those as tools as procedural nodes.
  • Quick Links