zoukankan      html  css  js  c++  java
  • openGL的使用步骤

    使用openGL步骤:
    1.创建GLSurfaceView对象
    2.创建GLSurfaceView.renderer实现类.
    3.设置activity的contentView,以及设置view的render对象.
    4.实现render类的过程.
     a.onSurfaceCreate()方法
      1.设置清屏的颜色和启用顶点缓冲区
      //设置清屏色
      gl.glClearColor(0, 0, 0, 1);
      //启用顶点缓冲区.
      gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
     b.onSurfaceChanged()方法
      1.设置viewport(视口)
       gl.glViewport(0, 0, width, height);
      2.操纵投影矩阵,设置平截头体(比例通常和视口比例相同,否则输出画面会走样)
       //矩阵模式,投影矩阵,openGL基于状态机
       gl.glMatrixMode(GL10.GL_PROJECTION);
       //加载单位矩阵
       gl.glLoadIdentity();
       //平截头体
       gl.glFrustumf(-1f, 1f, -ratio, ratio, 3, 7);
     c.onDrawFrame()方法
      1.清除颜色缓冲区
       gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
      2.操纵模型视图矩阵,设置眼球的参数
       gl.glMatrixMode(GL10.GL_MODELVIEW);
       gl.glLoadIdentity();//加载单位矩阵
       GLU.gluLookAt(gl, 0, 0, 5, 0, 0, 0, 0, 1, 0);
      3.定义图形顶点坐标值数组
       float[] coords = {
        0f,0.5f,0f,
        -0.5f,-0.5f,0f,
        0.5f,-0.5f,0f
       };
      4.将顶点坐标转换成缓冲区数据
       //分配字节缓存区空间,存放顶点坐标数据
       ByteBuffer ibb = ByteBuffer.allocateDirect(coords.length * 4);
       //设置的顺序(本地顺序)
       ibb.order(ByteOrder.nativeOrder());
       //放置顶点坐标数组
       FloatBuffer fbb = ibb.asFloatBuffer();
       fbb.put(coords);
       //定位指针的位置,从该位置开始读取顶点数据
       ibb.position(0);
      5.设置绘图颜色
       gl.glColor4f(1f, 0f, 0f, 1f);
      6.指定顶点缓冲区指针
       //3:3维点,使用三个坐标值表示一个点
       //type:每个点的数据类型
       //stride:0,跨度.
       //ibb:指定顶点缓冲区
       gl.glVertexPointer(3, GL10.GL_FLOAT, 0, ibb);
      7.绘图
       //0:起始点:
       //3:绘制点的数量
       gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3);

  • 相关阅读:
    TortoiseGit 文件比对工具使用 Beyond Compare 和 DiffMerge
    IE8/9 本地预览上传图片
    IT人经济思维之投资
    4、界面前端设计师指南
    IT软件人员的技术学习内容(写给技术迷茫中的你)
    IT从业者的职业道路(从程序员到部门经理)
    jQuery插件库代码分享
    Magical平台类库代码分享
    软件外包的启示
    2、员工的激励与自我激励
  • 原文地址:https://www.cnblogs.com/danmao/p/3817295.html
Copyright © 2011-2022 走看看