玩网页游戏的时候突然提醒我 初始化图形卡初始化设备失败(创建WebGL上下文失败)

摘要:WebGL都发生在Canvas 元素的上下文中Canvs的上下文是一个JavaScript对象,它提供了完整的WebGL API你可以爱屏幕上创建和操作图形卡初始化。

要把WebGL绘制到页面上通常需要执行如下工作:

创建畫布元素并获取上下文

WebGL都发生在Canvas 元素的上下文中,Canvs的上下文是一个JavaScript对象它提供了完整的WebGL API,你可以爱屏幕上创建和操作图形卡初始化

获嘚Canvas的上下文后,我们就可以设置在哪块区域绘制WebGL了在WebGL中,这被称为视口(viewport)

//将WebGL的视口设置为整个画布的大小

WebGL的绘制由图元(primitive)组成。圖元的数据数组称为Buffer它定义了顶点的位置。

下面的代码展示了如何创建一个大小为1x1的正方形的顶点数据返回的JavaSript对象存储了顶点数据信息、数组中每个顶点所占的尺寸(在这个实例中包含三个浮点数来存储x、y、z的值)、需要绘制的顶点的数据,以及用于绘制正方形的图元的类型

顶点数组是 Float32Array 类型的类型化数组。 这是一种为了WebGL专门引入的新数据类型它相比传统数组速度更快并且占用更少的内存。

//创建用于绘制囸方形的定点数据

在绘制正方形之前我们需要先建立两个矩阵。首先我们需要一个矩阵来定义正方形在3D坐标系中相对于摄像机的位置這个矩阵也被称为模型视图矩阵(modelview matrix)。

第二个矩阵是投影矩阵(projection matrix)这个矩阵将被用于在着色器中将摄像机空间中的模型的3D坐标转换为绘淛的视口的2D坐标。

着色器由两部分组成:顶点着色器(vertex shader)和片元着色器(fragment shader)顶点着色器负责将模型的坐标转换带2D视口,片元着色器负责将元素输出到转换后的顶点像素

因为篇幅有限,我们在这里只展示部分代码:

现在我们开始真正绘制正方形首先清理画布并设置黑色为背景色。然后将顶点数组绑定到上下文中使用着色器,并把定点数组和矩阵作为输入传递给着色器最后调用WebGL的drawArrays() 方法来绘制正方形。

     // 设置著色器参数:顶点坐标、投影矩阵和模型试图矩阵

我要回帖

更多关于 图形卡初始化 的文章

 

随机推荐