【发布时间】:2018-09-03 16:49:41
【问题描述】:
我正在编写一个由以不同角度排列的多边形表面组成的三维框架。在我的代码的某个部分,我想根据角度由向量给出的光源来计算表面的亮度。
更具体地说,表面的方向由向量表示,光源也由向量给出。众所周知,当光线直接照射在表面上时,或者当向量的角度差为 0 时,表面最亮。
但是,在我目前的解决方案中,我需要为每个灯光计算六次 atan() 才能获得差异,这在计算上效率很低。
有没有更好的办法?
【问题讨论】:
-
我认为你应该在你的光源向量和代表平面的 versor 之间使用点积。这只是 3 次乘法。