Are you familiar with common visibility structures like BSP-trees, ABTs, etc? If not I would recommend you to read some papers.