gpt4 book ai didi

javascript - 应用透视矩阵顺序

转载 作者:行者123 更新时间:2023-11-29 21:52:18 24 4
gpt4 key购买 nike

我实际上正在编写脚本 domvertices,它计算任何 DOM 元素的 4 个顶点 3d 坐标:http://bl.ocks.org/abernier/97a5fb8c1bebacd1958e

var el = document.getElementById('foo');
var vertices = domvertices(el);
console.log(vertices);

输出:

{
a: {x: , y: , z: },
b: {x: , y: , z: },
c: {x: , y: , z: },
d: {x: , y: , z: }
}

为了实现这一点,我将 dom 向上移动,并为每个元素存储应用于它的矩阵(参见 ¹)。

最后,我以相反的顺序将矩阵应用回目标元素。

--

实际上效果很好!

我唯一的问题是关于透视...目前,在计算元素的矩阵¹时,我不考虑perspectiveperspective-origin

因此,不考虑透视的变形(作为绘制顶点时的解决方法,我将它们附加到受透视影响的元素中,以便它们正确定位)。

我想在计算元素矩阵时采用perspectiveperspective-origin

我可以很容易地制作一个透视矩阵,我的问题是什么时候应用 perspectiveperspectiveOrigin 矩阵到 ¹?

嵌套多视角呢?

¹:元素的矩阵组成如下(从右到左阅读):

transformOrigin^-1 * transform * transformOrigin * relativePosition * Identity

感谢任何帮助。

最佳答案

您的透视矩阵需要等效于应用矩阵序列中最左边的矩阵。

例如取自几乎所有的 WebGL 片段着色器

gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);

投影矩阵在左边。

关于javascript - 应用透视矩阵顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28518722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com