OPenGL ES 3.0 简介

栏目: 编程工具 · 发布时间: 5年前

内容简介:新买的《OpenGL ES 3.0》 编程指南的书到了,以后学习OpenGL ES 会跟着这本书走本章节主要讲这张上的各个概念顶点着色器实现了顶点操作的通用可编程方法,主要包括:

新买的《OpenGL ES 3.0》 编程指南的书到了,以后学习OpenGL ES 会跟着这本书走

OPenGL ES 3.0简介

OpenGL 3.0实现了具有可编程着色功能的图形管线,由两个规范组成:OpenGL ES 3.0 API规范和OpenGL ES 着色语言3.0规范,下图展示了OpenGL ES 3.0图形管线

OPenGL ES 3.0 简介

本章节主要讲这张上的各个概念

顶点着色起

顶点着色器实现了顶点操作的通用可编程方法,主要包括:

* 着色器程序——描述定点上执行操作的顶点着色程序源代码或者可执行文件

* 顶点着色器输入(或者属性)——用顶点数组提供的每个顶点的数据

* 同意变量(iniform)——顶点(或者片段)着色器使用的不变数据

* 采样器——代表顶点着色器使用纹理的特殊统一变量类型

* 采样器——代表着顶点着色器使用纹理的特殊统一变量类型

注意

1、顶点着色器的输入在OPenGL ES 2.0中称作可变(varying)变量,在3.0版本中改名为顶点着色器输出变量。

2、OpenGL ES 3.0增加了一个新的功能:变量反馈,是定点着色器输出可以选择性地写入一个输出缓冲区(除了传递给片段着色器之外,也可能代替这种传递)

顶点着色器的输入和输出如图1-2所示:

OPenGL ES 3.0 简介

顶点着色器可以用于通过矩阵变换位置,计算照明公式来生成逐顶点颜色以及生成或者变换纹理坐标等基于顶点的传统操作。此外由于顶点着色器由应用程序规定,所以它可以用于执行自定义计算,实施新的变换照明或者比较传统的固定功能管线所不允许的基于定点的效果。

### 图元装配

顶点着色器后,OpenGL ES 3.0的图形管线的下一阶段就是图元装配。图元(Primitive)是三角形、直线或者点灯几何对象。

对于每个图元,必须确定图元是否位于视锥体(屏幕上可见的3D区域空间)内。如果图元没完全在视锥体内,可能需要进行裁剪。如果完全在视锥体外,则就会放弃。裁剪之后,顶点位置转换成屏幕坐标。也可以执行一次淘汰操作,根据图元向前放或者向后放抛弃它们。裁剪和淘汰之后,图元便进入管线的下一个操作——光栅化。

### 光栅化

光栅化会将图元转换成一组二位片段的过程,然后,这些片段有片段着色器处理。这些二位换的片段代表着可在屏幕上绘制的像素。

OPenGL ES 3.0 简介

### 片段着色器

片段着色器韦片段上的操作实现了通用的可编程的方法。如下图所示,对光栅化阶段生成的每个片段执行这个着色器,采用如下输入:

OPenGL ES 3.0 简介
  • 着色器程序——描述片段上所执行操作的片段着色器程序源代码或者可执行文件
  • 输入变量——光栅化单元用插值韦每个片段生成的顶点着色器输出
  • 统一变量——片段(或者顶点)着色器使用的不变数据
  • 采样器——待变片段着色器所用纹理的特殊统一变量类型

片段着色器可以抛弃片段,也可以生成一个或者多个颜色值作为输入。一般来说,除了渲染到剁成渲染目标之外,片段着色器只输出一个颜色值;在多重渲染目标的情况下,唯美个渲染目标输出一个颜色值。光栅化阶段生成的颜色、深度、模板和屏幕坐标位置编程OpenGL ES 3.0管线逐片段操作阶段的输入。

片段着色器的输入在图元之间进行线性插值,然后传递给片段着色器。

逐片段操作

片段着色器之后,下一个简短是逐片段操作。光栅化生成的屏幕坐标为(X,Y)的片段只能修改帧缓冲区中位置为(X,Y)的像素,下图描述了OpenGL ES 3.0 逐片段操作阶段

OPenGL ES 3.0 简介

* 像素归属测试——这个测试确定帧缓冲区中心位置(x,y)的像素目前是不是归OpenGL ES 3.0所有。这个测试窗口系统能够控制帧缓冲区中的那些像素属于当前的OpenGL ES 上下文。例如:如果一个显示OpenGL ES帧缓冲区窗口的窗口被另一个窗口所遮蔽,泽这个窗口系统可以确定被遮蔽的像素不属于OpenGL ES 上下文,从而完全不显示这些像素。* 裁剪测测试——裁剪测试确定(x,y)是否作为OpenGL ES状态的一部分的剪裁矩形范围内。如果钙片短位于裁剪区域的范围外,则被被抛弃* 模板和深度测试——这些测试在输入片段的模板和胜读值上进行,已确定片段是否该被拒绝。* 混合——混合讲新生的片段颜色值与保存在帧缓冲区(x,y)位置的颜色组合起来。

* 抖动——可用于最小化因为使用有限精度在帧缓冲区中保存颜色值而产生的伪像。


以上所述就是小编给大家介绍的《OPenGL ES 3.0 简介》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Ajax Design Patterns

Ajax Design Patterns

Michael Mahemoff / O'Reilly Media / 2006-06-29 / USD 44.99

Ajax, or Asynchronous JavaScript and XML, exploded onto the scene in the spring of 2005 and remains the hottest story among web developers. With its rich combination of technologies, Ajax provides a s......一起来看看 《Ajax Design Patterns》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具