Three.js学习顶点,向量和矩阵

Nei*_*eil 0 3d three.js

我对Three.js 3D JavaScript库非常熟悉,我知道如何添加对象,灯光,纹理,将它们分组并将它们移动一点点,然后可以玩相机.

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

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

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

Geo*_*nza 5

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

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

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

先从基础知识:什么是矢量,什么是典型的矢量运算(使用交叉产品获得2个向量之间的垂直,得到利用的点积等两个向量之间的夹角),看看从那里找到自己的节奏.矩阵可能看起来很可怕,但是在你理解了向量之后它们会更有意义.

由于three.js已经提供了很多功能,你可以阅读有关数学的内容并直接在three.js中进行尝试 - 边做边学.

只是补充一下,mr.doob添加了一个链接到一个非常酷(和免费)的课程,在三维 .js教授的交互式3D图形,涵盖矢量和矩阵.我热烈推荐它,它非常好解释,很容易理解.

交互式3D图形Udacity课程