加载完成后,你可以使用Page Up 和 Page Down键来进行缩放;你还可以用方向键来改变立方体的旋转方向(按下的时间越长,旋转的速度越快)。你还可以点击F键在三个不同的纹理过滤之间切换。
下面我们来看看它是怎么工作的……
惯例声明:本系列的教程是针对那些已经具备相应编程知识但没有实际3D图形经验的人的;目标是让学习者创建并运行代码,并且明白代码其中的含义,从而可以快速地创建自己的3D Web页面。如果你还没有阅读前一课,请先阅读前一课的内容吧。因为本课中我只会讲解那些与前一课中不同的新知识。
另外,我编写这套教程是因为我在独立学习WebGL,所以教程中可能(非常可能)会有错误,所以还请风险自担。尽管如此,我还是会不断的修正bug和改正其中的错误的,所以如果你发现了教程中的错误,请告诉我。
有两种方法可以获得上面实例的代码:在实例的独立页面中选择“查看源代码”;或者点击这里下载我们为您准备好的压缩包。
这节课和之前最大的不同在于,我们需要把重心转到键盘上,我们先来看一看代码,这样的话,比较容易理解我们的课程。在示例代码中,你会发现我们定义了如下的全局变量:
192 var xRot = 0;
193 var xSpeed = 0;
194
195 var yRot = 0;
196 var ySpeed = 0;
197
198 var z = -5.0;
199
200 var filter = 0;
在第五课上,我们已经对xRot和yRot很熟悉了,他们代表立方体沿X轴和Y轴的旋转。xSpeed和ySpeed就很明显了,我们将允许用户通过方向键来改变立方体的旋转速度,而对xRot和yRot变量的改变速率就需要储存在xSpeed和ySpeed中。z是立方体的z轴,就是它离浏览者的距离,是通过Page Up 和Page Down控制的。最后,filter是一个从0到2之间的整数,它指明了我们在立方体上覆盖的纹理的过滤方式,这些过滤方式决定了纹理图像的图形质量如何。
我们来看一下驱动纹理过滤的代码。第一处的改变在于加载纹理的代码,这段代码位于示例代码自上到下三分之一处。这一部分代码和以前有很大不同,因此,我就不标红任何东西了。但是,你们应该还是十分熟悉这样的代码形式。