【问题标题】:coordinates in front of me (webgl / opengl)我面前的坐标(webgl / opengl)
【发布时间】:2013-09-25 01:55:02
【问题描述】:

我正在学习webgl,在这个问题上卡了半天。

我正在以这种方式进入我的场景:

mat4.rotate(mvMatrix, degToRad(-angle), [0, 1, 0]); 
mat4.translate(mvMatrix, [-currentX, 0, -currentZ]);

我应该如何获得我面前一个点的坐标 (x/z)(比如说 10 个单位)?

【问题讨论】:

    标签: opengl-es webgl


    【解决方案1】:

    模型视图矩阵是模型局部空间到视图空间的变换矩阵。现在,“您前面 10 个单位”的点可以在任何地方,具体取决于您感兴趣的空间。但是假设您想知道您前面 10 个单位的点在模型空间中的位置。好吧,没有这么简单的事情。

    查看器前方 10 个单位的点位于 (0,0,-10) 处的视图空间中。所以你现在要做的就是应用逆变换,即将该向量与逆 ov mvMatrix 相乘:

    mat4.inverse(mvMatrix) * vec4(0,0,-10,1);
    

    如果您想知道最后一个 1 元素来自哪里以及为什么将 4 元素向量用于 3 维坐标(这是您应该真正想知道的),请阅读 homogenous coordinates

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 2011-11-21
      • 1970-01-01
      • 2015-03-04
      • 2014-05-21
      • 1970-01-01
      相关资源
      最近更新 更多