• 资料
    • 任务
      • 支持OpenGL ES 3.2的晓龙GPU型号?
      • 如何看待Vulken?
  • 正课
    • 基础概念
      • API是什么?
        • 定义
          • API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
        • API的作用:
          • 对于软件提供商来说,留出API,让别的应用程序来调用,形成生态,软件才能发挥最大的价值,才能更有生命力。(同时别人也看不见代码,不伤害商业机密。)
          • 对于应用开发者来说,有了开放的API,就可以直接调用多家公司做好的功能来做自己的应用,不需要所有的事情都自己操刀,节省精力。
      • 电脑的工作原理
        • 电脑是由各种不同的硬件组成,由驱动软件驱使硬件进行工作。所有的软件工程师都会直接或者间接的使用到驱动。
      • 应用端
        • 相对于 OpenGL,、OpenGL ES、DirectX来说,我们都是应用端
      • 图元
        • 要渲染的几何物体,或者形状。比如要渲染一个正方形的图片,就是一个图元,要渲染两条直线,这两条直线也是图元。(任何需要被渲染的的东西都可以被称为图元)
      • 纹理
        • 1.3 纹理
      • 纹素
        • 纹素是纹理的基础单位,但并不是像素,图像时由像素排列而成,纹理时由纹素排列表示的,两个具有本质上的区别。
      • 顶点数组
        • 顶点指的是组成图元的各个顶点的坐标数据(在3D低价埃尔坐标中即 x,y,z 坐标),这些坐标数据可以一起存到一个内存数组中,这个数据叫做顶点数组。
      • 顶点缓冲区
        • 在显存中专门分配一块显存来存储这个顶点数组,这个显存就称为顶点缓冲区
      • 顶点着色器 片元着色器
        • 1.1 渲染管线,后续还会继续学习
    • 图像API
      • 图像API是一个针对 GPU跨平台的应用程序编程接口,用于渲染 2D,3D 矢量图形的跨语言。
      •  
        • 定义与支持
    • OpenGL ES
      • 发展
      • 2.0与3.0
        • 2.0和3.0的相同点
        • 2.0和3.0的不同点
          • 渲染流程
            • 2.0

              • 首先是模型准备,然后由顶点着色器去编辑,然后把这些点面进行图元重组,然后进行光栅化,然后经过片元着色器的编写,最后通过三种测试,最后输出到 Frame Buffer 中
            • 3.1

              • 新拿到这些 Buffer 缓存,然后传到顶点池,然后传给顶点着色器,然后顶点着色器进行分布 Transform 的 Feedback,进行一个返回,让我们去了解一些数据给下一阶段是使用,下一阶段拿到这些数据使用,之后要去进行光栅化,光栅化之后就是片元着色器的计算,之后进行逐片元渲染,然后输入到 Frame Buffer 中
          • 兼容性
            • OpenGL ES 3.0 向后兼容 OpenGL ES 2.0
              • 2.0 编写的应用程序可以在 3.0 中继续使用
          • 新特性
            • 2.0 不具备
            • 3.0 引入的新功能
              • 同时继续适应嵌入系统的局限性
                • 采用阴影贴图
                • 体渲染(volume rendering)
                • 基于 GPU 的粒子动画
                • 几何形状实例化
                • 纹理压缩
                • 伽马校正
          • 渲染管线
            • OpenGL ES 2.0 和 OpenGL ES 1.x 具备
            • 3.0 移除的功能
              • Alpha 测试
                • 因为片元着色器可能抛弃片段,因此 Alpha 测试可以在片段着色器 中进行
              • 逻辑操作(LogincOp)
                • 很少被使用
          • 着色器脚本编写
      • 骁龙Adreno 对应的 OpenGL ES 版本
        • Adreno 302 开始,支持 OpenGL ES 3.0
          • Adreno 305、306、320、330、405、420 支持 OpenGL ES 3.0
        • Adreno 405 开始,支持 OpenGL ES 3.1
        • Adreno 420 开始,支持 OpenGL ES 3.2
    • Vulkan
      • Vulkan 被视作是 OpenGL 的后续产品。 它是一种多平台 API,可支持开发人员准备游戏、CAD 工具、性能基准测试等高性能图形应用。 它可在不同的操作系统(比如 Windows*、Linux* 或 Android*)上使用
      • 是新一代的 API ,但是相对 OpenGL 来说,在复杂度和维护难度上,Vulkan 的门槛很高,虽然有更高效的计算性能,作为新兴的具有生命力的 Vulkan ,相信在以后的运用中更加广泛
Logo

欢迎加入我们的广州开发者社区,与优秀的开发者共同成长!

更多推荐