【发布时间】:2018-06-03 22:38:13
【问题描述】:
我正在研究一些计算机图形的东西,但无法找到一个问题的解决方案:
我在 3D 空间中有三个点,每个点都用 (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 具有的矩阵东西,那就太受欢迎了。
【问题讨论】:
标签: vector glsl rectangles normals