5.2.2 使用索引法绘制三角形

更新于 2026年10月10日 版权声明
5.2.2 使用索引法绘制三角形

其实在前面的例子中我们已经使用了索引法,索引法是通过调用方法gl.glDrawElements()来绘制各种基本几何图形的。在OpenGLES中,使用方法glDrawElements()的语法格式如下。

图示

■ 参数mode:定义什么样的图元被画出来。

■ 参数count:定义一共有多少个索引值。

■ 参数type:定义索引数组使用的类型。

■ 参数indices:表示绘制顶点使用的索引缓存。

接下来将通过一个具体实例的实现流程,详细讲解用索引法绘制三角形的方法。

图示

本实例的实现流程如下。

(1)编写文件MyActivity.java,先引入相关包并声明MySurfaceView对象,然后为布局文件中的按钮添加监听器类,分别用于监听3个不同的按钮,最后重写方法onPause()来继承父类的方法,并同时挂起或恢复MySurfaceView视图。文件MyActivity.java的主要代码如下

图示

图示

(2)编写文件MySurfaceView.java,功能是在创建MySurfaceView对象的同时设置渲染器及之渲染模式。具体实现流程如下。

■ 设置背面剪裁、平滑着色、自定义卷绕标志位的方法。

■ 定义了触摸回调方法以实现屏幕触控,并在屏幕上滑动而使场景物体旋转的功能。

■ 定义渲染器内部类以实现图像的渲染、屏幕横竖发生变化时的措施。(https://www.daowen.com)

■ 重写onDrawFrame()方法,分别实现背面剪裁、平滑着色功能,并在屏幕横竖空间位

置发生变化时自动调用。当创建MySurfaceView时调用onDrawFrame()方法,实现初

始化屏幕背景颜色、绘制模式和是否深度检测等功能。

文件MySurfaceView.java的主要代码如下。

图示

图示

图示

3)编写文件suoyinCH.java,具体实现流程如下。

■ 定义suoyinCH类的构造器来初始化相关数据,这些数据包括初始化三角形的顶点数据缓冲、颜色数据缓冲、索引数据缓冲。

■ 定义应用程序中具体实现场景物体的绘制方法,主要包括启用相应数组、旋转场景中物体、指定画笔的顶点坐标数据和顶点颜色数据,并用画笔实现绘图功能。

文件suoyinCH.java的主要代码如下。

图示

图示

图示

到此为止,整个实例介绍完毕,执行后的效果如图5-3所示

图示

图5-3 执行效果

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)