https://lodev.org/cgtutor/raycasting.html
https://github.com/365kim/raycasting_tutorial/blob/master/3_untextured_raycaster.md