我有一个法线向量N
,它定义了一个半球的上半部分和一个函数,它在半球上创建了随机点P
。
现在我想知道,如果随机选择的点位于上半部分。是假设,如果N+P
的长度大于或等于1,P
位于上半部分,还是有更好的方法在glm
计算?
答案 0 :(得分:1)
@Raxvan给出了一个非常有效的答案:如何正确地做到:使用dot product并检查它是否为正(非负)。
回答您在评论中重申的原始想法:
如果
N+P
的长度大于或等于1,P
位于上半部分
这是一种不正确的方式。是的,对于所有正确的点,此测试返回“true”,但它不会过滤掉所有不正确的点。例如,考虑N
是(0,0,1)
(即沿Z轴的向量),P
是(0.99, 0, -0.14)
(即一个位于XY平面下方的矢量,位于沿X轴的远端)。显然P
不在“上半球”,但N + P
是(0.99, 0, 0.86)
,其长度显然大于1。