WebGL学习之路
最近开始学习WebGL,这是一个阶段小结,发上来和大家交流一下。有些地方用英文,因为有些词不好翻译。
WebGL对于我来说相对陌生,相信很多JAVA开发者也是,陌生会产生两样东西:好奇和恐惧。下面便来战胜恐惧满足好奇,说得有些凌乱,看不明白就请直接跳过。
谈一些基本概念
What is WebGL? 3D in the browser.
上面的话可谓言简意赅,WebGL是OpenGL的网页实现。OpenGL是行业最广泛接受的 2D/3D 图形 API。它与DirectX有着纠结关系,以及OpenGL ES、WebGL等衍生版本。
GLSL, OpenGL Shading Language, tell what the things to draw look like. 原生的WebGL开发库需要使用GLSL和JS配合使用。
camera, such as PerspectiveCamera, Orthographic Camera. 翻译为摄像机比较恰当,跟现实中的摄像机类似,它决定可以看到的视角,宽度等。
texture,纹理,可以使颜色或图片等。
blend,调色,配置不同深度物体之间的关系,可以实现透明效果。
render,渲染,可以用来将一个3D的投影加载到texture上,就想在电视中看电视的效果。
A mesh is an object that takes a geometry, and applies a material to it.
怎么在本地跑起WebGL例子?
Chrome是对WebGL支持最好的,但在本地使用图片texture的时候,需要开启本地读取限制。在Chrome的快捷方式中加入下面参数,linux上也是这样。开启webGL
--enable-webgl --ignore-gpu-blacklist --allow-file-access-from-files
我的chrome版本为21.0.1180.89 m,firefox版本为14.0.1。chrome经过以上配置就不会有什么问题,firefox不需要配置就可以。可以试试我上传的练习的例子。
一些学习资源
http://learningwebgl.com/blog/ 16 excellent lessons.
http://www.hiwebgl.com/ chinese version and some thing about tree.js.
three.js
tree.js is a famous WebGL lib on gitHub, which can draw with WebGL, canvas or SVG. tree.js come with support for load a few different standard file type, which is great if you are outputing models from Blender, Maya, Cinenca4D on anything else.