其实在前面的例子中我们已经使用了索引法,索引法是通过调用方法gl.glDrawElements()来绘制各种基本几何图形的。在OpenGLES中,使用方法glDrawElements()的语法格式如下。
■ 参数mode:定义什么样的图元被画出来。
■ 参数count:定义一共有多少个索引值。
■ 参数type:定义索引数组使用的类型。
■ 参数indices:表示绘制顶点使用的索引缓存。
接下来将通过一个具体实例的实现流程,详细讲解用索引法绘制三角形的方法。
本实例的实现流程如下。
(1)编写文件MyActivity.java,先引入相关包并声明MySurfaceView对象,然后为布局文件中的按钮添加监听器类,分别用于监听3个不同的按钮,最后重写方法onPause()来继承父类的方法,并同时挂起或恢复MySurfaceView视图。文件MyActivity.java的主要代码如下
(2)编写文件MySurfaceView.java,功能是在创建MySurfaceView对象的同时设置渲染器及之渲染模式。具体实现流程如下。
■ 设置背面剪裁、平滑着色、自定义卷绕标志位的方法。
■ 定义了触摸回调方法以实现屏幕触控,并在屏幕上滑动而使场景物体旋转的功能。
■ 定义渲染器内部类以实现图像的渲染、屏幕横竖发生变化时的措施。
■ 重写onDrawFrame()方法,分别实现背面剪裁、平滑着色功能,并在屏幕横竖空间位(www.xing528.com)
置发生变化时自动调用。当创建MySurfaceView时调用onDrawFrame()方法,实现初
始化屏幕背景颜色、绘制模式和是否深度检测等功能。
文件MySurfaceView.java的主要代码如下。
3)编写文件suoyinCH.java,具体实现流程如下。
■ 定义suoyinCH类的构造器来初始化相关数据,这些数据包括初始化三角形的顶点数据缓冲、颜色数据缓冲、索引数据缓冲。
■ 定义应用程序中具体实现场景物体的绘制方法,主要包括启用相应数组、旋转场景中物体、指定画笔的顶点坐标数据和顶点颜色数据,并用画笔实现绘图功能。
文件suoyinCH.java的主要代码如下。
到此为止,整个实例介绍完毕,执行后的效果如图5-3所示
图5-3 执行效果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。