THREE.js 学习笔记(前记)

     从大学里刚开始做前端到现在,感觉自己有一半时间(也可能是大半)都是在折腾web3d的东西,从最开始用google的o3d,到后来flash的pv3d,再到后来的WebGL,期间也玩过unity3d,然后导致这段时间拾起了《javascript高级程序设计》,看了一半发现自己前端的基础并不是怎么扎实。

     对于用诸如WebGL这样的借口开发web3d应用,能用到的前端的东西就是js这门语言,很多前端开发的问题都不需要去考虑,用WebGL的时候甚至都不用去考虑兼容IE。

     o3d:

     这个感觉已经差不多被google遗弃了的东西,昙花应该都没现一下,刚出来的时候是用插件的形式,将本地的图形api封装成js的接口,在windows下就封装了directX的,同时一些矩阵操作,scene graph的实现也是放在插件里了,因此对于大的场景来说非常之快(当然是相比于WebGL这样的),但是这个也只能是拿来玩玩的,首先连个模型导出插件都没有,需要命令行转换collada格式转成二进制格式(而且转换后会莫名的丢失材质),现在的three.js都有max,blender等的导出插件了!当然对于场景编辑器这个就只能是个奢望了。现在o3d借WebGL重生了,接口实现都改成WebGL的了,也不用装插件,但是效率也低了很多。

     pv3d:

     用的也不是特别多,用软渲染器的,当然就一个字,慢,而且破面问题也很麻烦。不过现在flash加入硬件加速后还是很牛逼的,看了一个unity3d导出成flash的视频,然后unreal也宣布支持flash,顿时又觉得flash前途无限啊。

     WebGL:

     现在很热,前段时间在tdl的基础上写了一个很简单的框架,然后用这个写了几个demo。现在开始操起THREE.js(终于开始切入正题了!),THREE.js的几个demo实在是太吸引人了!

 

     接下来可能会一直写THREE.js的学习笔记(当然按我现在这个尿性应该更新频率会很慢),先从自带的几个sample入手,了解用THREE.js写一个基本的应用需要哪些东西,然后从WebGLRender.js入手开始分析THREE.js的核心结构,比如scene graph的实现,材质灯光的管理,每次render的过程,当然,WebGLRender里也都包括了WebGL的接口,再接着可以看那些extra的东西,比如一些基本形状的绘制,场景的载入,还有常用的shader(这些东西才是最吸引我的),再然后,再然后的事情再说吧=。=

     THREE.js除了WebGLRender之外还有CanvasRender,DomRenderer,SVGRenderer这些软渲染器,要复杂得多。暂时还没考虑过去看。

posted on 2011-11-02 21:28  pissang  阅读(3244)  评论(2编辑  收藏  举报

导航