opengl android中的立方体旋转问题

时间:2011-06-27 10:10:11

标签: android opengl-es

每当我旋转立方体时,我想检测脸部(脸部朝向用户)。

2 个答案:

答案 0 :(得分:1)

用+ Z向量计算每个面法线的标量积(点积)。标量积最大的面向观众。

答案 1 :(得分:0)

datenwolf的答案有正确的想法,但正如所写,它不太正确。设P表示用于绘制立方体的模型 - 视图 - 投影矩阵的3x3上三角子矩阵。然后P的第三行(为了清酒参数称它为v)代表你的视图方向,非标准化。现在,为了检查面部是否指向相机,假设向外指向单位法线,您只需检查其正常的点积是否为< 0(未最大化)。这是因为:

 dot(a, b) = |a| |b| cos(theta)

θ是它们之间的角度。如果它们指向相反的方向,这只能是负面的,这是面部指向相机的必要和充分条件,假设它实际位于相机前面。