It probably does need optimization. The only problem is that it's so precise, I can't just lazily ray cast, and I can't think of any real good ways to optimize.