[WebGL入门]十,矩阵计算和外部库
注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:],另外,鄙人webgl研究还不够深入,一些专业词语,假设翻译有误,欢迎大家指正。
重要的用法
矩阵的计算方法,也不是什么特别奇怪复杂的东西,假设数学好好学习的话,没有基础也能够进行主要的矩阵计算。可是,假设不知道矩阵的加法和乘法运算的话,要进行略微复杂一些的矩阵计算是非常难的。
DirectX也好,OpenGL也好,其实,假设你不能掌握矩阵的使用的话,编程会变得非常难的。可是,也不是说,必须把矩阵的每个角落都掌握。
重要的是,矩阵的用法,并非具体的计算方法。特别是在3D开发中,矩阵能够做什么,通过什么运算能得到什么样的结果,主要是掌握矩阵的用法,这一点非常重要。
假设在一定程度上理解了矩阵的用法,在实际开发中遇到了什么问题,就能够知道怎样去查找原因了。然后,就能够进一步提高了。所以,不用一下子所有理解,首先掌握矩阵的处理流程和用途就能够了。
熟练使用外部库
DirectX和OpenGL中,内置了很多矩阵相关的处理,即使不使用外部库也能够进行矩阵计算。
可是,WebGL中这些矩阵相关的计算是没有的,可能为了简化吧,当然,不是说没有办法了,而是,矩阵相关的一切计算,都须要自己来处理。
话虽如此,可是WebGL中的矩阵计算还是一个非常大的问题。数学好的人当然是没有问题了,可是对于其它人数学不太好的人就太困难了。
可是,不用怕,有非常多使用javascript写的矩阵计算的外部库,使用这些外部库的话,就算自己不会矩阵计算,也能够进行矩阵相关的处理,以下是当中的几个。
glMatrix
http://code.google.com/p/glmatrix/
mjs
http://code.google.com/p/webgl-mjs/
Sylvester
closure
http://code.google.com/p/closure-library/
TDL
http://code.google.com/p/threedlibrary/
使用矩阵计算的外部库的时候,仅仅须要掌握了这些库的用法,就能够进行矩阵计算了,可是要掌握这些库的用法可能也是件不easy的事吧。
在本站点,使用的是自己开发的minMatrix.js库,这个js文件中,仅仅包括了矩阵的基本计算,并非特别完好,所以大家能够全然免费使用,商用也能够,没有什么特别的限制要求。
以后,本站点中的代码和案例等,都是使用这个minMatrix.js库为前提的来讲解的。这个库的连接会在本篇文章的最以下给出,大家能够自由下载使用。
另外,这个minMatrix.js文件中关于矩阵的计算,參考了其它的网页和glMatrix的内容,非常感谢各个网页作者和glMatrix的作者Brandon Jones(Brandon Jones的博客 ->TojiCode)
总结
从长远来看,真正进行非常复杂的处理时,矩阵的知识还是不能缺少的。可是,要提前把这些都理解是非常苦难的。所以,先熟练使用外部库,等能够熟练进行3D开发之后,再逐步了解这些知识是比較理想的。
使用外部库的时候,也可能存在平台问题,必须边理解外部库的特征边使用,并非说全然没有问题。本站点使用的库是管理人(lufy:这里说的管理人就是作者本人)自己的库,会尽可能减低使用的门槛。
下次開始,使用minMatrix.js来表示一个多边形。另外minMatrix.js的下载连接例如以下。
wgld.org开发的矩阵计算的库minMatrix.js
[WebGL入门]十,矩阵计算和外部库的更多相关文章
- [WebGL入门]十四,绘制多边形
注意:文章翻译http://wgld.org/.原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:].另外,鄙人webgl研究还不够深入.一些专业词语,假设翻译有误,欢迎大家 ...
- [WebGL入门]十九,遮挡剔除和深度測试
注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:],另外.鄙人webgl研究还不够深入,一些专业词语,假设翻译有误.欢迎大家指 ...
- [WebGL入门]十六,绘制多个模型
注意:文章翻译http://wgld.org/.原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:],另外.鄙人webgl研究还不够深入.一些专业词语.假设翻译有误.欢迎大家 ...
- [WebGL入门]十八,利用索引缓存来画图
注:文章译自http://wgld.org/.原作者杉本雅広(doxas),文章中假设有我的额外说明.我会加上[lufy:].另外,鄙人webgl研究还不够深入,一些专业词语,假设翻译有误,欢迎大家指 ...
- [WebGL入门]十二,模型数据和顶点属性
注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:].另外.鄙人webgl研究还不够深入,一些专业词语.假设翻译有误.欢迎大家指 ...
- [WebGL入门]十五,为多边形涂抹颜色(顶点颜色的指定)
注:文章译自http://wgld.org/.原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:].另外.鄙人webgl研究还不够深入.一些专业词语.假设翻译有误.欢迎大家指 ...
- GNU编译器学习 --> 如何链接外部库【Linking with external libraries】
库也就是我们常说的library,一个库是若干个已经编译过的目标文件(.obj)的集合,它可以被链接到程序里.那么我们最常见的使用就是,我们在编程时会调用一些函数,这些函数别人已经写好了,它就放在库里 ...
- WebGL入门教程(五)-webgl纹理
前面文章: WebGL入门教程(一)-初识webgl WebGL入门教程(二)-webgl绘制三角形 WebGL入门教程(三)-webgl动画 WebGL入门教程(四)-webgl颜色 这里就需要用到 ...
- WebGL入门教程(四)-webgl颜色
前面文章: WebGL入门教程(一)-初识webgl WebGL入门教程(二)-webgl绘制三角形 WebGL入门教程(三)-webgl动画 颜色效果图: 操作步骤: 1.创建HTML5 canva ...
随机推荐
- 非确定有限状态自动机的构建(一)——NFA的定义和实现
保留版权,转载需注明出处(http://blog.csdn.net/panjunbiao). 非确定有限状态自动机(Nondeterministic Finite Automata,NFA)由以下元素 ...
- 动态面板——axure线框图部件库介绍
1.什么是Axure的动态面板 按照Axure官方网站的解释 :动态面板控件(Dynamic Panel)可以让你实现高级的交互功能,实现原型的高保真度.动态面板包含有多个状态(states),每个状 ...
- 【Nginx笔记】nginx配置文件具体解释
本文主要对nginx的配置做重点说明,关于nginx的其他基本概念.建议參考官网描写叙述.这里推荐Nginx Beginner's Guide这篇文档.对刚開始学习的人高速认识nginx非常有帮助. ...
- Java中怎么控制线程訪问资源的数量
在API中是这样来描写叙述Semaphore 的 Semaphore 通经常使用于限制能够訪问某些资源(物理或逻辑的)的线程数目. 一个计数信号量.从概念上讲,信号量维护了一个许可集.如有必要,在许可 ...
- 树后台数据存储(採用webmethod)
树后台数据存储 关于后台数据存储将集中在此篇解说 /* *作者:方浩然 *日期:2015-05-26 *版本号:1.0 */ using System; using System.Collection ...
- Swift - 获取屏幕点击坐标下所有对象(SpriteKit游戏开发)
对于场景内对象元件的点击响应,我们可以在场景的touchesBegan()方法中内统一处理. SKScene中touchesBegan()是响应屏幕点击的方法,在这里面我们可以先获取点击位置下所有的对 ...
- 大豆生物柴油驱动的大巴斯(Bus)
请看下图: 这是大豆生物柴油(Soybean biodiesel)驱动的大巴斯(Bus)的外观,感觉非常有劲. 回想历史,1893年,德国学者Rudolf Diesel(1858-1913)发明了一种 ...
- Boost下载安装编译配置使用指南(含Windows和Linux
理论上,本文适用于boost的各个版本,尤其是最新版本1.45.0:适用于各种C++编译器,如VC6.0(部分库不支持),VS2003,VS2005,VS2008,gcc,C++ Builder等.先 ...
- javascript事件委托,事件代理,元素绑定多个事件之练习篇
<ul id="parent-list"> <li id="post-1">item1</li> <li id=&qu ...
- 菜鸟版JAVA设计模式—从买房子看代理模式
今天学习了代理模式. 相对于适配器模式,或者说装饰器模式,代理模式理解起来更加简单. 代理这个词应该比較好理解,取代去做就是代理. 比方,我们买卖房子,那么我们会找中介,我要卖房子,可是我们没有时间去 ...