OpenGL ES 3. 绘制方式 详解

大家好,接下来将为大家介绍OpenGL ES 3. 绘制方式。

OpenGL ES 3. 的绘制方式有两种:顶点法与索引法。

1、顶点法

调用glDrawArrays方法来进行物体的绘制,此方法是按照传入渲染管线顶点本身的顺序及选用的绘制方式将顶点组织成图元进行绘制的,称为顶点法。

其api接口如下:

public static native void glDrawArrays(
    //绘制图元的形式,就是我们上面一节讲的GL_GL_TRIANGLES、GL_LINE、GL_POINTS等
    int mode,
    //第一个顶点索引从多少开始,一般都是从0开始
    int first,
    //要绘制的顶点个数
    int count
)
public void drawSelf(){
    GLES30.glUseProgram(mProgram); 
    ……
    GLES30.glEnableVertexAttribArray(maPositionHandle); 
    GLES30.glEnableVertexAttribArray(maColorHandle);
    GLES30.glDrawArrays(GLES30.GL_TRIANGLE_FAN, 0 , vCount);//采用三角形扇面方式绘制
}


2、索引法

调用glDrawElements 方法在绘制时不但要将顶点序列传入渲染管线,还需要将索引序列传入管线。绘制时管线根据索引值序列中的索引一一从顶点序列中取出对应的顶点,并根据当前选用的绘制方式组织成图元进行绘制。

其api接口如下:

public static native void glDrawElements(
        //绘制图元的形式
        int mode,
        //绘制的顶点个数
        int count,
        //顶点参数类型,GL_FLOAT、GL_INT、GL_UNSIGNED_SHORT等
        int type,
        //保存顶点索引数组的缓存数据
        java.nio.Buffer indices
    )
public void drawSelf()
{ 
    GLES30.glUseProgram(mProgram);   
    ……   
    GLES30.glEnableVertexAttribArray(maColorHandle);
    GLES30.glDrawElements(GLES30. GL_TRIANGLES,iCount,
    GLES30.GL_UNSIGNED_BYTE,mIndexBuffer); //用索引法绘制图形
}

3、顶点法 索引法的比较

绘制方式适用场景可读性内存计算方法
顶点法顶点复用少的情况一般顶点数 * 顶点属性数 * 顶点数据格式类型
索引法顶点复用多的情况顶点数 * 顶点属性数 * 顶点数据格式类型 + 索引数 * 索引数据格式类型

 

最后,欢迎大家一起交流学习:微信:liaosy666 ; QQ:2209115372 。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值