美文网首页
Android OpenGl 学习笔记四,绘制3D图形

Android OpenGl 学习笔记四,绘制3D图形

作者: 无灬痕 | 来源:发表于2017-05-25 17:38 被阅读109次

    很奇怪,按照学习路线 这篇应该是给绘制的图形着色才对的,为什么跳到直接绘制3D图形了呢,
    因为我觉得着色这快相对简单,只要在绘制图形前调用
    gl.glEnableClientState(GL10.GL_COLOR_ARRAY);(注,这个方法指的是启动颜色缓冲区,跟绘制顶点坐标的时候启动顶点缓冲区是一样的,此方法与gl.glDisableClientState()一同出现,相当于一个open,一个close)
    接下来就能调用gl.glColorPointer()了,当然也可以调用gl.glColor4f();这个方法;

    以上结束了添加颜色的过程~

    ===================================================================================
    绘制3D图形
    ==

    1. 按照步骤首先写一个基类Mesh,在这里写几个方法方便调用,定义几种类型的缓冲区(再次注释,绘图时都是通过缓冲区传过来数据来绘图的,所以每次绘图前记得启动缓冲区(open))
    2. 禁接着写一个Cube类继承自Mesh,定义一个顶点坐标数组和一个顶点顺序数组接着调用Mesh的set方法。
    3. 绘图这块搞完了,最后肯定是在渲染器里初始化跟调用啦~~利用上一章节的渲染器


      image.png
    4. 最后在onDrawFrame()方法里调用


      image.png

    基本就搞完啦~~最后,发现一个问题


    image.png

    点线点线 链接起来,怎么看都是一个方体怎么到了最后显示的是一个六方形???
    (PS:这里修改了原CAD图改成上色后的图)

    image.png image.png

    想象下OpenGl只能画点 线 三角形,然后这个立体几何是由多个三角形组成的~~然后沿着较明显的线想象这个立体几何
    注释掉这个~那么久不旋转了 看到的就是正方形(建议去掉着色查看~~就这颜色无法直视~~堆一起了)

    相关文章

      网友评论

          本文标题:Android OpenGl 学习笔记四,绘制3D图形

          本文链接:https://www.haomeiwen.com/subject/sqlzxxtx.html