Android的OpenGL学习笔记(2)
上篇主要目的是介绍OpenGL的基本框架,这里就用基本的框架绘画出一个三角形,绘制三角形在OpenGL中比较重要,因为在OpenGL(Android)中的图形都是用三角形拼凑起来的!
画三角形有两种,主要是调用的方法不同而已:
第一种,调用glDrawElements()方法绘画:
看代码,主要看继承GLSurfaceView的代码部分,其他的和上篇基本一样:
VortexRenderer.java
- package com.droidnova.android.games.vortex;
- import java.nio.ByteBuffer;
- import java.nio.ByteOrder;
- import java.nio.FloatBuffer;
- import java.nio.ShortBuffer;
- import javax.microedition.khronos.egl.EGLConfig;
- import javax.microedition.khronos.opengles.GL10;
- import android.opengl.GLSurfaceView;
- public class VortexRenderer implements GLSurfaceView.Renderer {
- //private static final String LOG_TAG = VortexRenderer.class.getSimpleName();
- private float _red = 0f;
- private float _green = 0f;
- private float _blue = 0f;
- // a raw buffer to hold indices allowing a reuse of points.
- private ShortBuffer _indexBuffer;
- // a raw buffer to hold the vertices
- private FloatBuffer _vertexBuffer;
- private short[] _indicesArray = { 0, 1, 2};//关于索引的理解:即三角形三个顶点的索引,这里暂时画了一个平面二维的三角形,
- //看不出它的作用,当画三维的时候,就会清楚了,这里大概提一下,索引组合可以构成一个面!相当于三个点可以构成一个面,这里用索引代替了三个点而已!
- private int _nrOfVertices = 3;
- private float _angle;
- @Override
- public void onSurfaceCreated(GL10 gl, EGLConfig config) {
- // pre