Vector 三角形的边框和规范化坐标
我正在做一些计算机图形方面的工作,但无法解决一个问题: 我在三维空间中有三个点,每个点用(x,y,z)元组定义。三个点一起形成一个三角形。点的名称是A,B和C,所以三角形是ABC 现在我想形成一个边界矩形,这样AC就是其中一条边。点B位于矩形的另一侧。现在我想将矩形内的任意点(p)映射到标准化UV坐标,因此: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
- 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