Brushes are created by repeatedly searching for the best solid to add.
They expand to fill as many faces as possible before being blocked or invalidated by reflex edges and vertices.
If the best possible solid doesnt have enough data to make a well defined brush, it will construct a new vertex inside the mesh to attach to. The process can then continue, but you should try not to rely on this too much.
Your meshes need to follow some basic rules.
For concave faces you can easily fix it by using blenders mesh > cleanup > split concave faces.
Note: Make sure the edges line up on opposite sides!
An algorithm to split them in a spacially stable way is being developed for Convexer currently.
Displacements are created when a patch of 4x4 faces are found, surrounded by freestyle edges.
The mesh must be UV unwrapped, as this is whats used to base the brushes on.
Hard edges can be introduced by marking an edge as sharp, and using the Edge split modifier