engine icon indicating copy to clipboard operation
engine copied to clipboard

数学库中相对其他引擎缺少的 API

Open errnull opened this issue 2 years ago • 4 comments

  • Three.js:
    • Vector3.angleTo ( v : Vector3 ) : Float
      • 以弧度返回该向量与向量[v]之间的角度;

errnull avatar Mar 02 '23 07:03 errnull

  • Three.js:
    • Quaternion.setFromUnitVectors ( vFrom : Vector3, vTo : Vector3 )
      • 从方向向量 [vFrom] 旋转到方向向量 [vTo] 所需的旋转;

参考这里:http://lolengine.net/blog/2013/09/18/beautiful-maths-quaternion-from-vectors

errnull avatar Mar 02 '23 07:03 errnull

借个楼~

需求:3D几何体在屏幕上渲染后得到屏幕空间的2D图像,希望求2D图像的包围盒。思路是遍历所有几何顶点的position,转换到世界空间并继续映射到屏幕空间,再对这些屏幕空间的点求包围盒。过程中涉及到将局部空间下的position,乘以 worldMatrix, 转到世界空间下。

问题:Galacean 不支持 Vector 与 Matrix 相乘。three.js 中可以通过 vector3.applyMatrix3(matrix3)来做。

three.js 对应代码

  • Vector2: https://github.com/mrdoob/three.js/blob/43a993f54c31e10a0d4bb0f160163db4e403f2c5/src/math/Vector2.js#L209
  • Vector3: https://github.com/mrdoob/three.js/blob/43a993f54c31e10a0d4bb0f160163db4e403f2c5/src/math/Vector3.js#L218

VirusPC avatar Oct 27 '23 03:10 VirusPC

支持的,Vector3.transformXXX

cptbtptpbcptdtptp avatar Oct 27 '23 03:10 cptbtptpbcptdtptp

支持的,Vector3.transformXXX

看漏了👀。。。

VirusPC avatar Oct 27 '23 08:10 VirusPC