working primitive shadow mapping