Android 3D 笔记(入门二)-小知识点回味
2017-06-01 12:08
218 查看
清楚了的
GL10:意味着可以使用OpenGL ES 1.0标准中定义的所有函数。需要再次学习的
问题一
public class TriangleRenderer implements GLSurfaceView.Renderer { private GLSurfaceView glSurfaceView; public TriangleRenderer(GLSurfaceView glSurfaceView) { this.glSurfaceView = glSurfaceView; } @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { // this.firstTriangle(gl); // this.secondTriangle(gl); //当前存在的问题就是画出来的内容一直闪烁是什么鬼,就先这样吧,先看看纹理。 LogUtil.i("onSurfaceCreated"); } @Override public void onSurfaceChanged(GL10 gl, int width, int height) { LogUtil.i("onSurfaceChanged"); } @Override public void onDrawFrame(GL10 gl) { this.secondTriangle(gl); //后来我试了一下放到这个方法里就不会闪烁啦,所以我们是没有搞清楚,复写的这三个方法的细节咯。 } private void secondTriangle(GL10 gl) { final int vertexSize = (2 + 4) * 4; gl.glClearColor(0, 0, 0, 1);//设置背景的缓冲区颜色。 gl.glClear(GL10.GL_COLOR_BUFFER_BIT);//用缓冲区中的颜色来清理试图内容。 gl.glViewport(0, 0, this.glSurfaceView.getWidth(), this.glSurfaceView.getHeight());//定义视口 gl.glMatrixMode(GL10.GL_PROJECTION);//设置据怎类型为投影矩阵。 gl.glLoadIdentity();//重置当前指定的矩阵为单位矩阵. //gl.glOrthof(0,320,1,0,480,-1); gl.glOrthof(0, 320, 0, 480, 1, -1); ByteBuffer byteBuffer = ByteBuffer.allocateDirect(3 * vertexSize);//三个定点,每个由xy组成,每个浮点数占4个字节(只能使用XY表示定点坐标z轴默认为0) byteBuffer.order(ByteOrder.nativeOrder()); FloatBuffer floatBuffer = byteBuffer.asFloatBuffer(); float[] array = { /*坐标*/10f, 30f,/*颜色*/1, 0, 0, 1, /*坐标*/310f, 30f,/*颜色*/0, 1, 0, 1, /*坐标*/150f, 450f,/*颜色*/0, 0, 1, 1 }; floatBuffer.put(array); floatBuffer.flip(); gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); gl.glEnableClientState(GL10.GL_COLOR_ARRAY); floatBuffer.position(0); gl.glVertexPointer(2, GL10.GL_FLOAT, vertexSize, floatBuffer); floatBuffer.position(2); gl.glColorPointer(4, GL10.GL_FLOAT, vertexSize, floatBuffer); gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3); } }
现象:
在
public void onSurfaceCreated(GL10 gl, EGLConfig config)调用
secondTriangle执行的结果就会持续闪烁
在
public void onDrawFrame(GL10 gl)调用
secondTriangle执行的结果就没问题
相关文章推荐
- Android 3D 笔记(入门一)-概念粗识
- Google.Android开发入门与实践-学习笔记2
- Google.Android开发入门与实践-学习笔记4
- android 入门学习笔记 取得文件架构、打开文件、判断文件MimeType 的方法
- android 入门学习笔记 BIG5 与 UTF-8互转
- android 入门学习笔记 检查网络连接是否正常 判断是否为横屏
- Android OpenGL 3D游戏开发入门必看文章
- Android入门学习笔记(二):Android开发环境的搭建
- android 入门学习笔记 NotificationManager与Notification对象的应用
- android 入门学习笔记 手机震动的节奏---vibrate对象及周期运用 和ToggleButton
- Android: NDK编程入门笔记
- APIDemo学习笔记——Android上几种简单的Animation使用方法(三)——3D Transition
- Android 开发笔记——环境入门
- Android: NDK编程入门笔记
- android 入门学习笔记 电话簿查询
- Google.Android开发入门与实践-学习笔记3
- Android入门学习笔记之人机用户界面
- Android 开发笔记——环境入门
- android 入门学习笔记 利用bundle实现android,activity间消息的传递
- Android入门学习笔记(一):Android初认识