1, 初步接触Open GL:
http://www.cnblogs.com/TerryBlog/archive/2010/07/09/1774475.html
使用GLSurfaceView和Render实现一个简单的三角形和正方形.其中,GLSurfaceView用于显示视图,Render用于3D渲染。这个博客的代码,运行时会报:
java.lang.IllegalArgumentException: Must use a native order direct Buffer
是因为顶点Buffer需要使用以下的方式初始化:
private static final int FLOAT_SIZE_BYTES = 4; private FloatBuffer mTriangleVertices; private final float[] mTriangleVerticesData = { // X, Y, Z, U, V -1.0f, -1.0f, 0, 0.f, 0.f, 1.0f, -1.0f, 0, 1.f, 0.f, -1.0f, 1.0f, 0, 0.f, 1.f, 1.0f, 1.0f, 0, 1.f, 1.f, }; public void init() { mTriangleVertices = ByteBuffer.allocateDirect( mTriangleVerticesData.length * FLOAT_SIZE_BYTES) .order(ByteOrder.nativeOrder()).asFloatBuffer(); mTriangleVertices.put(mTriangleVerticesData).position(0); }
2,Android OpenGL ES教程
http://blog.csdn.net/column/details/apidemoopengl.html?&page=3
-- 主要包括了OpenGL ES 1.0和2.0的一些简单用法。
http://www.jayway.com/2009/12/03/opengl-es-tutorial-for-android-part-i/
-- 一个外国友人的Android OpenGL ES教程.
3, Android关于SurfaceView, GLSurfaceView, SurfaceTexture, Texture几个View的使用和区别(显示视频的界面)。
http://www.wfuyu.com/technology/22762.html
4, GLSL教程(Shading language)
http://blog.csdn.net/racehorse/article/details/6593719
5, 使用TextureView, SurfaceTexture,OpenGL ES来播放视频的教程:
http://www.jianshu.com/p/d3d3186eefcb
http://www.jianshu.com/p/b2d949ab1a1a
http://www.jianshu.com/p/291ff6ddc164