https://brianch.github.io/exposicao_demo
Esse é só um demo rápido que fiz para saber se seria possível criar a funcionalidade que eu queria e também pra ver o quão difícil seria.
É baseado na maior parte no exemplo "misc_controls_pointerlock" do three.js, mas também no "webgl_sprites" e "webgl_postprocessing_outline", entre outros.