要编写一个WebGL的应用程序,第一步是让WebGL渲染上下文 - Context 对象。这个对象与 WebGL 绘制缓冲区进行交互,可以调用所有WebGL的方法。执行以下操作来获取WebGL的上下文-
创建HTML5 canvas
获取画布 canvas 的 ID
获取WebGL
创建HTML5 canvas元素
我们知道,建立一个HTML5 canvas 元素 -
在HTML5主体内写入canvas语句声明
给定 canvas 一个ID
使用高度和宽度(height & width)属性(可选)更改画布尺寸
示例
下面的例子说明如何创建一个 canvas 元素。创建了一个边框使用 CSS 可视性画布的尺寸(500×500)。复制并粘贴到下面的代码到 my_canvas.html 文件。
<!DOCTYPE HTML>
<html>
<head>
<title>Canvas示例 -www.yiibai.com</title
<style>
#mycanvas{border:1px solid blue;}
</style>
</head>
<body>
<canvas id = "mycanvas" width = "300" height = "300"></canvas>
</body>
</html>
获取WebGL的绘图上下文
为了得到 WebGLRenderingContext 对象(或图形的WebGL上下文对象或只在WebGL的情况下),调用当前 HTMLCanvasElement 的getContext()方法。getContext()的语法如下 -
canvas.getContext(contextType, contextAttributes);
通过 WebGL字符串或experimental-webgl 作为 contentType。contextAttributes参数是可选的。 (虽然在进行这一步,请确保您的浏览器实现了WebGL 1.0版本(OpenGL ES 2.0))。
下面的代码片段展示了如何获取WebGL的渲染上下文。在这里,gl是参考变量所获得的上下文对象。
var canvas = document.getElementById('my_Canvas');
var gl = canvas.getContext('experimental-webgl');
WebGLContextAttributes
下面的代码片段展示了如何创建一个WebGL的上下文模板缓存,这将不执行抗锯齿
var canvas = document.getElementById('canvas1');
var context = canvas.getContext('webgl', { antialias: false, stencil: true });
在创建 WebGLRenderingContext 的时候,一个绘图缓冲器被创建。上下文对象管理OpenGL 状态,并呈现到图形缓冲区。
WebGLRenderingContext
它是 WebGL 的主要接口。它表示 WebGL 绘图上下文。该接口包含了所有用于在绘图缓冲执行各种任务的方法。此接口的属性给出在下表中。