OpenGL ES 绘制矩形

作者: osbornZ | 来源:发表于2018-09-14 14:10 被阅读3次

    系统梳理,重新出发。

    坐标系

    众所周知,iOS屏幕坐标系是左手坐标系:左上角为(0,0),向右向下为xy正方向;
    而openGL的坐标系则是右手坐标系,并且区间是 [-1,1];
    所以绘制的坐标可以自行定义,由于openGL是3D坐标的,我们开始的平面 z = 0.f;

    绘制方式

    glDrawArraysglDrawElements 区别:

    glDrawArrays传输或指定的数据是最终的真实数据,在绘制时效能更好;

    而glDrawElements指定的是真实数据的调用索引,在内存/显存占用上更节省;
    (即 VBO+IBO 方式)

    从渲染管道流程来看, 顶点着色器 处理完顶点坐标/法线 之后, 会进行到下一阶段 图元装配(Primitive Assembly)

    经过着色器处理之后的顶点在图片装配阶段被装配为基本图元。OpenGL ES支持三种基本图元:点,线和三角形,它们是可被 OpenGL ES 渲染的。接着对装配好的图元进行裁剪(clip):保留完全在视锥体中的图元,丢弃完全不在视锥体中的图元,对一半在一半不在的图元进行裁剪;接着再对在视锥体中的图元进行剔除处理(cull):这个过程可编码来决定是剔除正面,背面还是全部剔除。

    绘制图元. < 点 线 三角形 > 
    
    GL_POINTS
    GL_LINES
    GL_TRIANGLES
    GL_TRIANGLE_FAN
    ......
    

    绘制方式区别

    下一阶段是: 光栅化 光栅化是顶点着色器到片元着色器的过渡即脚本中的 输出和输入.

    之后就是 到了 片元着色器 进行像素颜色处理...

    shader

    脚本开发使用GLSL 语言:

    • 顶点着色器 gl_Position
    • 片元着色器 gl_FragColor

    书写方式和C差不多,有很多内置函数和变量,我们可以参考
    GLSL指南

    Demo- Git地址

    相关文章

      网友评论

        本文标题:OpenGL ES 绘制矩形

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