我正在尝试绘制一个始终与相机平行的矩形(基本上是一个平面)。我想将平面限制为一定大小(假设高度= 2,宽度= 2个单位)。但是,我不明白如何设置顶点的位置,以使矩形始终与摄影机平行。
首先,我使用以下方法计算相机法线(方向):
glm::normalize(mPosition - mTargetPos); // normal
然后我使用点法线方程式来定义平面:normal = (A, B, C)
point = (a, b, c) // this point will serve as a center to the plane
A(x−a)+B(y−b)+C(z−c) = 0
问题:如何定义平面的顶点? 最佳答案
UpDir
用作向上方向(取决于您的坐标系,它可以是UpDir=(0,1,0)
或UpDir=(0,0,1)
,或者可以通过某种方式进行计算)SideDir
和normal
的叉积UpDir
。 SideDir
和UpDir
用作飞机坐标系的基础,并计算矩形的四个顶点,分别为point+width*SideDir+height*UpDir
,point+width*SideDir-height*UpDir
,point-width*SideDir-height*UpDir
,point-width*SideDir+height*UpDir
关于c++ - 如何定义始终与摄影机平行的平面的顶点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62747548/