0

我对 Three.js 的 3D JavaScript 库非常熟悉,我知道如何添加对象、灯光、纹理,对它们进行分组并稍微移动它们,也许还可以玩弄相机。

我想知道的是如何通过了解内部运作将其提升到一个新的水平。我已经很好地查看了有关矩阵之类的信息,但我发现的只是复杂的数学示例。

我想知道是否有人可以将我指向任何可以帮助我学习如何在three.js中做更复杂的事情的网站或书籍,例如将对象添加到对象上的特定顶点,或者如何找到边缘一个球体并让另一个球体围绕它滚动。

然后使用向量,我可以学习如何让对象以特定方式移动吗?我愿意付出努力,但我不知道我应该阅读什么以及与这种类型的图书馆相关的内容。

4

1 回答 1

5

研究计算机图形学的线性代数。有很多资源可供选择。试着找到更接近你背景的东西。如果数学不是您背景的一部分,没问题,请转向更多与游戏开发相关的领域。

我个人推荐3D Math Primer,因为它是由经验丰富的游戏开发人员以易于理解的方式编写的。使用数字从一维数羊开始,就是这么简单!这本书详细解释了向量、矩阵、四元数等概念背后的数学(线性代数、几何)和代码。本书使用 C++,但如果您已经熟悉 javascript,理解语法将相当简单。重点是熟悉这些概念,因为 three.js 已经实现了向量、矩阵、四元数等。这是了解它们的作用,尤其是如何使用它们的问题。

如果有帮助,您还可以查看可汗学院关于线性代数的资源(例如向量矩阵等,但数学方面的重点越来越少地放在计算机图形方面。游戏学院的数学教程很棒,但是不幸的是不是免费的。

从基础开始:什么是向量,什么是典型的向量运算(使用叉积得到 2 个向量之间的垂线,使用点积得到两个向量之间的角度等),然后从那里找到自己的步调。矩阵可能看起来很可怕,但在你理解了向量之后,它们会变得更有意义。

由于three.js 已经提供了很多功能,您可以阅读数学知识并直接在three.js 中尝试——边做边学。

只是为了补充一点,mr.doob 添加了一个链接,指向一个非常酷(且免费)的交互式 3D 图形课程,该课程在 three.js 中教授,涵盖向量和矩阵。我热烈推荐它,它的解释非常好,而且很容易理解。

交互式 3D 图形 Udacity 课程

于 2012-05-20T06:56:11.970 回答