Home Quixel Megascans

GPU Baker | Curvature on edges is sometimes not detected at all + cavity is sometimes inverted

polycounter lvl 10
Offline / Send Message
bac9-flcl polycounter lvl 10
Hey there! First of all, congratulations on 2.0 release! The additions to the Suite are truly monumental and the performance is incredible!

Unfortunately, I'm still having huge trouble with the most troublesome area from 1.8, though. Specifically, getting proper curvature out of hard-edged lowpoly objects with UV seams on hard edges. I'm testing a simple ship model like this:



Here is a basic sample object with an ID and occlusion map to get you started:
https://drive.google.com/file/d/0B-FBvb_BcCJQdGVSOE41VDRnVkE/view?usp=sharing

And here are the results of the curvature baking in DDO. I have intentionally left out the normal map from the project setup to let you focus on geometry-based curvature in the screenshots below. Normal map based curvature generation is easier and never gave me trouble, but it can't account for geometry-dependent curvature right.

And here are the curvature baking results from the GPU Baker.





As you can see, only the edges within UV islands get baked curvature, while the rest of the edges, situated on UV edges, are completely ignored. For example, notice how every single edge around the back-facing surface has no curvature, or notice how top-facing surface with a hatch has no curvature around it.

To add to that, some of the inner edges get cavity inverted to curvature - notice how innards of the right exhaust have curvature highlights despite lack of any convex geometry there, and notice how the protrusion on the bottom left edge of the frontal view gets an extreme curvature highlight deep down in the trench where it connects with the base hull shape.

Can this be solved? I have hundreds of lowpoly hardsurface objects, and curvature baking, an absolute necessity for proper texturing, was always the biggest issue. The only way to get a proper curvature map I have right now is to do cavity baking on an inverted mesh in xNormal, then invert the results for an exposed edge map, then do another cavity bake from a normal mesh, then combining the results to get a full curvature map. I expect edges to be covered like this:



Back surface is covered, top surface is covered, protrusions are covered and so on. I got this bake through a torturously slow inverted mesh cavity bake in xNormal and I'd really appreciate an alternative way to get proper results for my lowpoly hardsurface models.

Any help appreciated :)

Replies

Sign In or Register to comment.