OpenGL 笔记

OpenGL笔记十:OpenGL ES初探

2019-06-03  本文已影响21人  御雪飞斐

前言

期待您移步上篇:OpenGL笔记九:3D数学小记

OpenGL ES

OpenGL ES允许应⽤程序利⽤底层图形处理器的强⼤功能。iOS设备上的GPU可以执⾏复杂的2D和3D绘图,以及最终图像中每个像素的复杂着⾊计算。


图-1.png

OpenGL ES 3.0

顶点着色器

顶点着⾊器 输⼊:

顶点着色器业务:

它可以⽤于执⾏⾃定义计算,实施新的变换,照明或者传统的固定功能所不允许的基于顶点的效果。
最终为了给 gl_Position 和 gl_PointSize 这两个载体赋值

图元装配

顶点着⾊器之后,下⼀个阶段就是图元装配!
图元(Primitive):点,线,三⻆角形等
图元装配: 将顶点数据计算成⼀个个图元。在这个阶段会执⾏裁剪、透视分割和
Viewport变换操作。

光栅化

⽚元着⾊器

⽚元着⾊器 输入:

它可以⽤于图⽚/视频/图形中每个像素的颜⾊填充(⽐如给视频添加滤镜,实际 上就是将视频中每个图⽚的像素点颜⾊填充进⾏修改。)
最终 gl_FragColor 载体赋值

逐⽚段操作

图-5.png
  • 像素归属测试:确定帧缓存区中位置(Xw,Yw)的像素⽬前是不是归属于OpenGL ES所有。例:如果⼀个显示OpenGL ES帧缓存区View被另外⼀个View 所遮蔽。则窗⼝系统可以确定被遮蔽的像素不属于OpenGL ES 上下⽂。从⽽不全显示这些像素。⽽像素归属测试是OpenGL ES 的⼀部分,它不由开发者开⼈为控制,⽽是由OpenGL ES 内部进⾏。
  • 裁剪测试:裁剪测试确定(Xw,Yw)是否位于作为OpenGL ES状态的⼀部分裁剪矩形范围内。如果该⽚段位于裁剪区域之外,则被抛弃。

EGL (Embedded Graphics Library )

由于OpenGL ES是基于C的API,因此它⾮常便携且受到⼴泛⽀持。作为CAPI,它与Objective-C Cocoa Touch应⽤程序⽆缝集成。OpenGL ES规范没有定义窗⼝层;相反,托管操作系统必须提供函数来创建⼀个接受命令的OpenGL ES 渲染上下⽂和⼀个帧缓冲区,其中写⼊任何绘图命令的结果。在iOS上使⽤OpenGL ES需要使⽤iOS类来设置和呈现绘图表⾯,并使⽤平台中⽴的API来呈现其内容。

OpenGL ES 显示器执⾏动画的应⽤程序流程

图-6.jpg

期待您移步下篇:OpenGL笔记十一:GLKit初探

上一篇下一篇

猜你喜欢

热点阅读