RallyGame Outlined wireframe styles 2
This continues the wireframe aesthetic I blogged about from April. update 1
Context is that the CartoonEdgeFilter the game engine came with had many limitations which meant I needed to roll my own solution.
The solution to the problem came from one of the code development team: post 10 suggested that I should just use the wireframe of the original model, but wireframes are used way too often. He suggested later that this is a math problem - which are technically nicer to handle and way less ‘art team’. Also this aesthetic requires you to be able to modify models in real time, which is something a real art team might be too disconnected from the code to acheive - putting me in new space? (big question mark..)
So this was an intriguing idea.
So I set about finding out how this would work.
The goal was to find whether the edge was a ‘seam’ without the model’s support (explicit support would make this not feasible…)
I found that this happens in 2 cases:
- the edge is on the outside of the model (i.e. is shared with only one mesh triangle)
- the edge is shared between the 2 triangles, but the normal of these is ‘large’
The logic goes:
- read the edges with their triangles into a map: edge,list
- iterate through all the edge (the key in the map) 1. a) if the edge has one tri, then add it b) if the edge has 2 tris, the calc the dot product of the 2 normals, if its less than some constant add it
- return all of the selected edges as a single mesh object
- Add it to the model as a sibling of the original model (so it moves with the base model)
This aesthetic now required the wireframe to be much brighter than the base model, so the new helper method also sets the base model to be a dark grey and the highlighted wireframe to be a ‘bright’ colour.
This resulted in a wireframe which looks something this: here
Cool, but not finished.
Update: continues update 3