如何在没有图形基础的情况下搭建WebGL数据可视化应用

标签: WebGL新闻 | 发表时间:2012-09-24 14:30 | 作者:admin
出处:http://www.hiwebgl.com

Asterank.com 的开发者 Ian Webster 回顾了他建设这个用于展示太阳系小行星价值的视觉展示网站的历程,他是如何从一个对 3D 图形和 WebGL 完全不懂的门外汉到开发完成的。

 1. 选一个 WebGL 库

因为要处理大量的模型,因此选一个 WebGL 库应该是第一步。目前市面上有很多不同的库,很那说哪个是最好的。最后 Ian 选了 Three.js 因为它能够回滚到 HTML5 Canvas 2D 模式。

 2. 开始学习 Three.js

可以从基础教程开始看起,理解编程中要遇到的基本概念,比如场景、网格、材质、光照,以及如何通过循环渲染来制作动画效果。

Three.js 的官方示例对一些基础知识的学习有一定的帮助,但总的来说帮助不大。

 3. 填充知识库

Three.js 的文档非常稀缺,并且对于刚刚开始 3D 编程的人来说并不实用。它的官网文档实际上的主要作用是可以链接到关键类的源代码页面。这就进入了一个死循环 —— 实际上还是要去阅读和理解 Three.js 的源代码才可以。

目前 Three.js 的官网支持站点是 StackOverFlow 网站。在 mr.doob 决定把问答支持放到 StackOverFlow 之前,github 上也有不少问题和答案。

 4. 挑战和教训

① 轨道:这个问题是因为我要做的项目比较特殊,我阅读了大量的天文学书籍来理解如何正确的绘制行星轨道。

② 修改 TrackballControls 支持滚轮操作:这并不太难,只不过需要修改 Three.js 其中的源代码。另外记得要留意不同浏览器的兼容性。

③ 优化性能:还有很多浏览器和硬件配置交叉的机器不能很好的处理 WebGL 和 Canvas,因此要不断的优化性能。

④ 永远使用弧度制:这个不用多说,尤其是天文学方面的应用使用角度制时偶尔会发生错误。

 结论

终于可以不用 Java applet 写 3D 网页程序了!我会继续下去创作更多的科普教育类的应用。

最后,要说的是:其实在浏览器中写图形非常容易,你也应该试试!

 

相关 [没有 图形 基础] 推荐:

如何在没有图形基础的情况下搭建WebGL数据可视化应用

- - HiWebGLHiWebGL
Asterank.com 的开发者 Ian Webster 回顾了他建设这个用于展示太阳系小行星价值的视觉展示网站的历程,他是如何从一个对 3D 图形和 WebGL 完全不懂的门外汉到开发完成的. 因为要处理大量的模型,因此选一个 WebGL 库应该是第一步. 目前市面上有很多不同的库,很那说哪个是最好的.

HTTP基础

- - ITeye博客
HTTP的结构主要包括下面几个要点:. HTTP的版本主要有1.0,1.1 和更高版本.    1.1 及以上版本允许在一个TCP连接上传送多个HTTP协议,1.0能 .    1.1 及以上版本多个请求和响应可以重叠,1.0不能.    1.1 增加了很多的请求头和响应头.     一个请求行,若干小心头,以及实体内容,其中的一些消息头和实体内容是可选的,消息头和实体内容需要空行隔开.

Git基础

- Wolf - 潘魏增
上个月末在公司内部作了一次《Git基础》的主题分享. 这里把分享内容公布出来,希望对一些朋友有用. 如果之前没有接触过Git,wikipedia上面已经有非常好的介绍. pdf格式:http://panweizeng.com/download/git-basics-meituan.pdf. keynote格式:http://panweizeng.com/download/git-basics-meituan.key.

JavaScript 基础

- - CSDN博客推荐文章
JavaScript可以出现在HTML的任意地方,甚至在之前插入也不成问题,使用标签. 不过要在框架网页中插入的话,就一定要在之前插入,否则不会运行. JavaScript对数据类型要求不严格,一般来说,声明变量的时候不需要声明类型,而且就算声明了类型,在使用过程中也可以给变量赋予其他类型的值,声明变量使用var关键字.

CSS基础

- - CSDN博客Web前端推荐文章
1、引入CSS的四种方式. 行内样式、内嵌样式、链接样式、导入样式. 基本选择器:标签选择器,ID选择器,类选择器,通用选择器. 通用选择器:*{css代码}. 通用选择器作用:对整个网页中所有HTML标签进行样式定义. 常见用法:定义*{margin:0;padding:0}通用样式,并置于CSS文件最顶端,用于对HTML内所有的标签进行重置以保证页面能兼容多种浏览器.

友情的基础

- okici - 比特客栈的文艺复兴
央视对百度的炮轰持续数日后突然停歇,让人揣测百度公关是不是已经与央视签好了互不侵犯协议. 有网友把cntv.baidu.com与baidu.cntv.cn两个域名翻出来奉为定情信物,只可惜它们都是过时的信号. “百度台”与其域名已经存在很久,是Google没叫板之前两家公司的蜜月记忆,早就流失于骂战的口水中.

css基础入门

- - CSDN博客推荐文章
css是Cascading Style Sheets的缩写,是一种用于为Html文档定义布局的样式表语言. Css是一种样式表语言,用于为html定义布局. Css弥补了Html对标记属性控制的不足. Css将网页内容与样式实现分离,使得网页设计更加明了、简洁. Css可以精确控制网页布局,如行间距、字间距、段落缩进和图片定位等.

java基础知识

- - CSDN博客互联网推荐文章
JAVA相关基础知识. 1、面向对象的特征有哪些方面. 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面. 抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节. 抽象包括两个方面,一是过程抽象,二是数据抽象. 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.

CSS基础学习

- - CSDN博客推荐文章
1.    CSS基础介绍:. (1)      CSS的作用:兼容、实现了将页面内容与页面表现相分离. (2)      当文档中的某一元素被多处样式定义时,究竟会使用那个样式呢.                 内联样式--->内部样式表--->外部样式表--->浏览器缺省设置. 2.    CSS基础语法与高级语法:.