OpenGlES,终于能把这东西画出来
其实两种方法都是画12个三角形画出来的,在OpenGL ES中,只支持三角形,所以任何复杂多边形都是由三角形画出来的。
第一种:顶点法
:
把一个四边形当成一个面,而一个面由两个三角形组成。一个三角形是不是有3个顶点?,所以一个面就有了3+3个顶点,一个立方体有6个面,6*6个顶点
此立方体的颜色也是根据顶点所渲染,正如定义这个立方体的顶点一样,不过它的参数可不是和定义顶点的一样哦,它的参数类型是:R,G,B,A,代表的是颜色值
public class OpenGlEsDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GLSurfaceView glview = new GLSurfaceView(this);
glview.setRenderer(new OpenGlRender());
setContentView(glview);
}
}
public class OpenGlRender implements GLSurfaceView.Renderer{
//每一个面画两个三角形,立方体有6个面
private float[] vertices={
-1.0f,1.0f,1f, // top left
-1.0f,-1.0f,1f, // bottom left
1.0f,-1.0f,1f, //top right
-1.0f,1.0f,1f, //bottom left
1.0f,-1.0f,1f, //bottom right
1.0f,1.0f,1f, //top right //前面
1.0f,1.0f,1f,
1.0f,-1.0f,1f,
1.0f,-1.0f,-1f,
1.0f,1.0f,1f,
1.0f,-1.0f,-1.0f,
1.0f,1.0f,-1f, //右面
-1.0f,1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f,1.0f,1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f,-1.0f,1.0f,
-1.0f,1.0f,1.0f, //左面
1.0f,1.0f,-1.0f,
1.0f,-1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
1.0f,1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f,1.0f,-1.0f, //后面
-1.0f,1.0f,-1.0f, // top left
-1.0f,1.0f,1.0f, //bottom left
1.0f,1.0f,-1.0f, //top right
-1.0f,1.0f,1.0f, //bottom left
1.0f,1.0f,1.0f, //top