I've been prototyping a game/level idea in Unity, and have been using square planes with only a single polygon (or two triangles I guess) along with various materials I'm creating in substance designer. I think I'm getting it to look fairly decent. Here's an example for one of the little hallway experiments:
However I've noticed that the height maps don't really look right on some materials, compared to the preview in substance designer, and it made me realize that the preview I'm using in substance is a hi-res plane as opposed to the single poly I'm using in Unity. I decided to compare a low res and hi-res preview plane in substance on an early material I'm working on and got extreme distortion on the low-res one on the left.
I'm not sure I totally understand what's going on here. Here's a low-res vs hi-res comparison in Unity, there's not nearly as much difference:
First of all, I think I'd like a proper explanation of what height maps do, as I've heard a lot of conflicting information and what sounds like people opining on what they think they do. Some people say that height maps "create geometry", some people say that height maps "displace geometry" (which I assume means that they move the vertices around, but don't create new ones), some people say it only simulates detail like a normal map. The Unity manual says: "This effect, while it can produce a very convincing representation of 3D geometry, is still limited to the surface of the flat polygons of an object’s mesh [....] the “silhouette” of the model will never be modified, because ultimately the effect is drawn onto the surface of the model and does not modify the actual geometry."...but clearly the silhouette appears affected inside of substance designer based on the height map settings, which suggests added or displaced polygons inside substance...
I imagine the low resolution geometry is probably the issue, but if so, I have no idea how high-res to make my geometry, and I don't fully understand how this works in order to logically make a decision. For example, considering a lot of the detail I'm simulating with height are very small details, would just subdividing the planes a few times make any difference considering the resulting polys would still be far larger than the details on the map? The alternative (making the wall/floor planes so high-poly that they could simulate the height detail geometrically) would obviously not be doable in a game for performance reasons. Is there some "sweet spot" in terms of poly count, or are you supposed to strategically place edge loops where they're needed, or am I just missing the point?
Replies
Tesselation is better for things like rocks or bumpy ground textures.