WebGL编程起步

WebGL编程

上篇文章简单介绍了WebGL的一些相关概念、现状以及工作原理,没有涉及到具体编码,本文将使用WebGL的相关技术来实现一个简单的效果示例,从而让大家了解WebGL编程的基本流程和关键操作。最后,还介绍了一些WebGL的库和框架,恰当的使用这些第三方框架,可以大大提高我们的工作效率。

初识WebGL

HTML5和WebGL

先来看看WebGL的官方介绍:

WebGL - OpenGL ES 2.0 for the Web

WebGL — Web上的OpenGL ES 2.0

WebGL is a cross-platform, royalty-free web standard for a low-level 3D graphics API based on OpenGL ES 2.0, exposed through the HTML5 Canvas element as Document Object Model interfaces. Developers familiar with OpenGL ES 2.0 will recognize WebGL as a Shader-based API using GLSL, with constructs that are semantically similar to those of the underlying OpenGL ES 2.0 API. It stays very close to the OpenGL ES 2.0 specification, with some concessions made for what developers expect out of memory-managed languages such as JavaScript.

WebGL是一种跨平台并且可以自由使用的3D图形API,它基于OpenGL ES 2.0,并且通过HTML5 Canvas来将自己暴露为DOM接口。因为WebGL在语义上同OpenGL ES 2.0的基础接口非常类似,所以熟悉OpenGL ES 2.0的开发者会把WebGL当做使用GLSL(OpenGL Shading Language,OpenGL着色语言)的一套API。它同OpenGL ES 2.0的标准非常类似,只是在某些地方为顺应开发者需求做了妥协。

WebGL brings plugin-free 3D to the web, implemented right into the browser. Major browser vendors Apple (Safari), Google (Chrome), Mozilla (Firefox), and Opera (Opera) are members of the WebGL Working Group.

WebGL为web带来了无插件化的3D技术,这种实现非常适合浏览器。目前,主要的浏览器生产商Apple (Safari), Google (Chrome), Mozilla (Firefox), and Opera (Opera)都成为了WebGL工作组的成员。

补充:2014年微软也加入了WebGL工作组(IE11已经支持WebGL)。

初玩Visual Studio Code

Visual Studio Code

微软在今年的Build大会上发布了一款新型的代码编辑器Visual Studio Code,它一出现就吸引了大多数开发者的关注,尤其是前端开发人员。

Build and debug modern web and cloud applications. Code is free and available on your favorite platform - Linux, Mac OSX, and Windows.

如官网介绍,Code的特点是免费、跨平台,它专注于代码开发过程,提供调试工具,定位轻量级的代码编辑器,将竞争的矛头直接指向Sublime TextAtom

笔者今天使用了一天Code的预览版,下面来简单介绍下这款工具的一些优缺点。

来,我们谈谈React Native

React Native

Facebook在今年的React.js Conf 2015上推出了React Native,而这已经成为目前最热门的讨论话题。

我们知道,传统的原生开发是需要一定门槛的,要转行为原生开发其实是比较困难的。这就导致了市场需求大,而相关开发人员不能满足的问题。相比较而言,web开发的入门就比较容易,相关的开发者也就比较多。如果能让一部分web开发者直接开发原生应用,这将是多么美好的一件事情啊,而这也是不少框架出现的直接原因。

如果你本身是就是各个平台原生应用的开发者,那么React Native貌似不会给你带来更大的兴趣。但是,作为使用javascript的web开发人员,它的出现无疑是影响巨大的。React Native让web开发人员通过习惯的开发方式(使用React)来开发原生应用成为了可能,更重要的是它提出了一种新的开发理念,而这也是它目前火爆的主要原因。

既然是React Native,那么它必然与Native有着或多或少的关系。没错,React是React Native的强有力支撑,在React Native的实现中占有非常重要的作用,但是这基本属于另一个话题,本文不会着重介绍React、Flux等相关概念。