There are still some other options to explore, but it all depends on the complexity of your shapes:
-
Manual edges: you construct the edges manually (i.e. procedurally) during the modification of the geometry. So, you do not reply on
EdgesGeometry
to evaluate where to create an edge. Instead, you explicitly define where you want an edge. - Textured edges: you have a texture with a border. When you construct or modify your geometry you set the UV coordinates in a way that places the border at the edge. A simple case with a cube and a thick edge texture is shown in Cube with procedurally drawn borders.
- Shadered edges: a shader tries to identify edges and draws an edge. You may have a look at this rather long thread Edge finding and highlighting.