美文网首页ios 开发
OpenGL ES 几何图形渲染

OpenGL ES 几何图形渲染

作者: iOS小洁 | 来源:发表于2023-01-03 21:04 被阅读0次

基本图形硬件流⽔线设计

应⽤程序层(3D应用程序或游戏) -> 硬件抽象层(OpenGL / Direct3D) -> 硬件层(GPU)

应⽤层

游戏和应⽤软件的开发人员为主体,通过调⽤API进⾏上层开发,不需要考虑移植性问题。

应⽤程序层主要与内存,CPU打交道,诸如碰撞检测,场景图监理,视锥裁剪等经典算法在此阶段执⾏。在阶段的末端,⼏何体的数据(顶点坐标,法向量量,纹理理坐标,纹理理)等通过数据总线传送到图形硬件

硬件抽象层

抽象出硬件的加速功能,进⾏有利于应⽤层开发的封装, 并向应⽤层开发提供API

我们⽬前使⽤的是DirectX与OpenGL。对于这⼀部分,主要是⼀些API等的调⽤

硬件层

将硬件驱动提供给抽象层,以实现抽象层加速功能的有效性。

硬件层在渲染流水线中最为复杂,也最为重要。可编程渲染流水线与固定渲染流水线的区别在于是否对着⾊器进行编程。

固定渲染流⽔线主要分为以下⼏个阶段:

顶点变换->图元转配与光栅化->⽚段纹理映射和着⾊->光栅化操作

渲染流程图

固定渲染管线流程图

img

可编程渲染流⽔线流程图

img

GPU 图形渲染管线

img

应⽤程序阶段

主要是高级编程语言开发,C,OC,C++

输出: 通过数据总线,把几何体的数据(顶点坐标\法线\纹理理坐标\纹理理)等传送到GPU上。

几何阶段

输入: 应用程序末端的内容

负责任务: 顶点着色、坐标变换,生成图元,裁剪,投影,屏幕映射

输出: 经过变换和投影之后的屏幕坐标,颜色,纹理坐标

三维坐标转为二维屏幕坐标过程:

img

MC是建模坐标系,WC是世界坐标系,VC是观察坐标系,PC是投影坐标系,NPC是规格化投影坐标系,DC是设备坐标系

光栅化阶段

光栅化(Rasterization):将顶点数据转换为⽚元的过程! 将具体的图转化为一个栅格组成图像的作用。

片元中每个一个元素对于帧缓存区的一个像素;

光栅化其实是一个将几何图元变成一个二维图像的过程!!

光栅化的过程就是为了产出片元。

相关文章

  • OpenGL ES 几何图形渲染

    基本图形硬件流⽔线设计 应⽤程序层(3D应用程序或游戏) -> 硬件抽象层(OpenGL / Direct3D...

  • OpenGLES 入门(一)着色器简介

    与OpenGL ES1.x渲染管线相比,OpenGL ES 2.0渲染管线中“顶点着色器”取代了OpenGL ES...

  • 2020-06-06GLSurfaceView+openGL播放

    OpenGL ES/SDL渲染,FFmpeg ;VR分屏之OpenGL-OpenGL ES来播放视频.MediaP...

  • OpenGl ES 3.0基础(kotlin)

    OpenGL ES 3.0 基础 OpenGL ES 对于Android来说是渲染在GLSurfaceView上 ...

  • OpenGL ES 多目标渲染(MRT)

    该原创文章首发于微信公众号:字节流动 OpenGL ES 多目标渲染 OpenGL ES 多目标渲染(MRT),即...

  • OpenGL ES渲染流程

    OpenGL ES作为一个底层渲染的接口,通过硬件加速,可以更好的处理图像绘制功能。 OpenGL ES渲染的过程...

  • OpenGL ES for iOS - 2

    配置OpenGL ES上下文 OpenGL ES的每个实现都提供了一种创建渲染上下文以管理OpenGL ES规范所...

  • OpenGL ES GLKit初探

    配置OpenGL ES上下文 OpenGL ES的每种实现都提供一种创建渲染上下文的方法,以管理OpenGL ES...

  • iOS开发OpenGL ES - 纹理

    概述:纹理是一个用来保存图像的颜色元素值的OpenGL ES缓存。当把纹理应用到几何图形中后,会使渲染的场景显得更...

  • Opengl ES 3.0 on iOS -- EAGLCont

    概述 EAGLContext对象是管理OpenGL ES渲染上下文,若想使用OpenGL ES 进行绘制工作,则必...

网友评论

    本文标题:OpenGL ES 几何图形渲染

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