假设我在3D空间中有一张脸,相机会通过用户交互来转动。当鼠标光标击中面部时,光线投射会检测到交叉点。到目前为止没什么特别的。
问题:如何检测相机是否看到脸部的下方或上方?
我确实有鼠标方向向量,脸也正常。什么是three.js中的操作(或数学上如果你想要的话)。
答案 0 :(得分:3)
你需要在脸部法线和相机前移矢量之间做一个点积。
如果产品是正面的,它背对着相机,如果它是负面的,它面向相机。
伪代码:
if (dot(camera.forward, face.normal) < 0)
// facing the camera
else
// facing away from the camera