Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
3d 检查一个面是否朝着鼠标方向向上/向下_3d_Three.js - Fatal编程技术网

3d 检查一个面是否朝着鼠标方向向上/向下

3d 检查一个面是否朝着鼠标方向向上/向下,3d,three.js,3d,Three.js,假设我在3D空间中有一张脸,相机通过用户交互来翻转它。当鼠标光标击中面时,光线投射将检测交点。到目前为止没有什么特别的 问题:如何检测摄像头是注视脸部的下方还是上方? 我有鼠标方向向量和面法线。three.js中的操作是什么(如果您愿意,可以用数学方法)。您需要在脸部法线和相机前向向量之间做点积 如果产品是正片,它就背对着相机,如果是负片,它就对着相机 伪代码: if (dot(camera.forward, face.normal) < 0) // facing the came

假设我在3D空间中有一张脸,相机通过用户交互来翻转它。当鼠标光标击中面时,光线投射将检测交点。到目前为止没有什么特别的

问题:如何检测摄像头是注视脸部的下方还是上方?


我有鼠标方向向量和面法线。three.js中的操作是什么(如果您愿意,可以用数学方法)。

您需要在脸部法线和相机前向向量之间做点积

如果产品是正片,它就背对着相机,如果是负片,它就对着相机

伪代码:

if (dot(camera.forward, face.normal) < 0)
    // facing the camera
else
    // facing away from the camera
if(点(相机向前、面、法线)<0)
//面对镜头
其他的
//背对着摄像机
在three.js中应该是:camera.forward.dot(face.normal)<0