Made an attempt at handling different view angles. I think it is working, but I will need to implement separation properly to know for sure.