看完了Opengl ES 2.0,我们再来看一下3.0的内容,PDF下载地址:OPENGL ES 3.0编程指南 原书第2版(中文版),3.0原书中的作者应该是搞C++开发的,所有的实现都是基于C++,当然也有Java语言的,原书所有代码下载地址:OpenGL ES 3.0中文版所有示例代码,我自己只是将Java语言整理了一下。我们还是对着书,一节一节的分析所有的内容。本节要看的就是该书中第2章的内容,非常简单,就是画了一个纯色的三角形,效果如下:
相信大家如果对前面所有学习能够掌握的话,要实现这样的一个三角形应该来说已经非常简单了。它对应的Activity是Gl3Activity,代码很简单,我们就不分析了,来看一下HelloTriangleRenderer渲染类,源码如上:
public class HelloTriangleRenderer implements GLSurfaceView.Renderer {
private Context mContext;
///
// Constructor
//
public HelloTriangleRenderer(Context context) {
mContext = context;
mVertices = ByteBuffer.allocateDirect(mVerticesData.length * 4)
.order(ByteOrder.nativeOrder()).asFloatBuffer();
mVertices.put(mVerticesData).position(0);
}
///
// Create a shader object, load the shader source, and
// compile the shader.
//
private int LoadShader(int type, String shaderSrc) {
int shader;
int[] compiled = new int[1];
// Create the shader object
shader = GLES30.glCreateShader(type);