A gallery of my problem can be found here. I had to do it this way as it won't let me post more than 2 links due to my reputation.
I'm trying to use 3D cubes to generate an isometric cube world.
I got that working great and I merge only the visible vertices/indices into a buffer and draw from that.
Only problem is, as with any isometric game, it becomes difficult to differentiate between heights. For example in the first image: this archways top merges with the cubes below.
I ended up finding this shader and got it working by using it against a rendered normal map (second image) of the cubes.
You may be able to guess my problem from that image. The final result looks like the third image. The back edges are not draw with an outline, which are the most important. Which based on the normal map also means that diagonals also have the same problem on their sides (fourth image).
Is there any solution I can do for this? Either in the shader itself or perhaps when calculating the normals? I almost need to add something to the normal to distinguish their depth/height so faces on similar planes don't merge on edge detection. Or maybe there's a totally different option I could use.
Ideally I was aiming more for only edges to the air to be outlined so the archways bottom edges would not be outlined like they are now =/