Vector 三角形的边框和规范化坐标

Vector 三角形的边框和规范化坐标,vector,glsl,rectangles,normals,Vector,Glsl,Rectangles,Normals,我正在做一些计算机图形方面的工作,但无法解决一个问题: 我在三维空间中有三个点,每个点用(x,y,z)元组定义。三个点一起形成一个三角形。点的名称是A,B和C,所以三角形是ABC 现在我想形成一个边界矩形,这样AC就是其中一条边。点B位于矩形的另一侧。现在我想将矩形内的任意点(p)映射到标准化UV坐标,因此: U表示点p到AC向量的投影距离A有多远 V表示矩形的正交部分。有点难以解释,但请看图片 不管怎样,我觉得我很适合找到你: vec3 AC = vec3(C - A); vec3 Ap

我正在做一些计算机图形方面的工作,但无法解决一个问题:

我在三维空间中有三个点,每个点用(x,y,z)元组定义。三个点一起形成一个三角形。点的名称是A,B和C,所以三角形是ABC

现在我想形成一个边界矩形,这样AC就是其中一条边。点B位于矩形的另一侧。现在我想将矩形内的任意点(p)映射到标准化UV坐标,因此:

  • U表示点p到AC向量的投影距离A有多远
  • V表示矩形的正交部分。有点难以解释,但请看图片
不管怎样,我觉得我很适合找到你:

vec3 AC = vec3(C - A);
vec3 Ap = vec3(p - A);
float u = dot(Ap, AC)/dot(AC, AC);
但我不知道怎么找到V。 当我使用GLSL时,如果答案将使用点阵、叉阵或GLSL拥有的任何东西,那就更受欢迎了


查找
u
B

uB = dot(AB, AC)/dot(AC, AC);
B投影到
AC

B' = A + uB * AC / length(AC)  
现在我们有了B'B向量,可以对其进行类似于对AC的投影,并计算
v