片段着色器流程图

片段着色器(fragment shader)实现了一个通用的可编程操作片段的方法.片段着色器执行由

光栅化生成的每个片段。

• Shader program(着色器程序)—片段着色器程序源码或描述将在该片段上可以执行的操作。

• Input variables(输入变量)—光栅化阶段使用插补技术为片段着色器产生顶点着色器的输出

• Uniforms—片段着色器的常量数据

• Samplers—Uniforms使用的具体类型,在纹理(Texture)中被片段着色器使用

片段着色可以丢弃片段或生成一个或多个颜色值作为输出。通常情况下,片段着色输出一个

单一的颜色值,除了渲染到多个渲染目标。在后一种情况下,每一个颜色值是每个渲染目标

的输出。光栅化所产生的颜色、深度、模板和屏幕坐标位置(XW,YW),成为对每个片段的

操作阶段的OpenGL ES 3输入。

 #version  es

 precision mediump float;
in vec4 v_color; out vec4 fragColor;
void main()
{
fragColor = v_color;
}

precision mediump float

设置默认精度

in vec4 v_color

输入颜色属性。

out vec4 fragColor

输出颜色属性

fragColor = v_color

片段着色器的输入是被传递到片段着色前通过图元线性插值。

    每个片段执行的操作流程

•• Pixel ownership test—这个测试决定在帧缓冲区中某点(Xw,Yw)的像素当前是否被 OpenGL ES 所有,这个测试准许视窗操作系统去控制帧缓冲区中的像素是否属于OpenGL ES context,例如视窗检测到OpenGL ES 的帧缓冲区被另一个窗口遮挡,视窗系统可以决定遮 挡OpenGL ES 的内容,不显示。

•• Scissor test——测试(Xw,Yw)是否在剪切矩阵内,如果在矩阵外,片段被丢弃。 模板深度测试—决定输入的片段是否应该被丢弃

•• Stencil and depth tests—测试在模板上执行输入片段的深度值,决定输入的片段是否

应该被丢弃

•• Blending—混合新产生的片段颜色和存储在颜色缓冲区中的颜色

•• Dithering—被使用在用几种颜色的组合模拟出大范围内的多种色彩模式 per-fragment 阶段最后,片段颜色、深度值、模板值是否被写入帧缓冲区还要依靠各自的

掩 码位是否被使用,例如,颜色缓冲区能设定红色是否能被写入颜色缓冲区。

在最后,被丢弃片段的颜色、深度和模板值被写入到帧缓冲区。OpenGL ES提供了一个接口来读取帧的像素。

OpenGL ES 3.0片段着色器(四)的更多相关文章

  1. OpenGL ES 3.0顶点着色器(一)

    OpenGL ES 3.0流程图 1.Vertex Shader(顶点着色器) 顶点着色实现了一种通用的可编程方法操作顶点. 顶点着色器的输入包括以下几个: • Shader program.程序的顶 ...

  2. OpenGL ES 3.0顶点着色器(二)

    #version es uniform mat4 u_mvpMatrix; in vec4 a_position; in vec4 a_color;out vec4 v_color;void main ...

  3. OpenGL ES 2.0 顶点着色器的妙用

    1.飘扬的旗帜(水面起伏) 基本原理 绘制一帧画面时由顶点着色器根据一定的规则变换各个顶点的位置,即可得到旗帜迎风飘扬的效果. 为了使旗帜的飘动过程比较平滑,采用基于正弦曲线的顶点位置变换规则.

  4. OpenGL ES 3.0之Shading Language(八)

    每个OpenGL ES 3.0程序要求一个顶点着色器和一个片段着色器去渲染一个图形.着色器概念是API 的中心,本篇将介绍着色器语言部分包含下面几项 1.变量和变量类型 2.矢量和矩阵创建及选择 3. ...

  5. (Python OpenGL)【3】着色器 PyOpenGL

    (Python OpenGL)现在开始我们使用着色器来进行渲染.着色器是目前做3D图形最流行的方式. OpenGL的渲染管线流程: 数据传输到OpenGL—>顶点处理器—>细分着色—> ...

  6. 【Android 应用开发】OpenGL ES 2.0 -- 制作 3D 彩色旋转三角形 - 顶点着色器 片元着色器 使用详解

    最近开始关注OpenGL ES 2.0 这是真正意义上的理解的第一个3D程序 , 从零开始学习 . 案例下载地址 : http://download.csdn.net/detail/han120201 ...

  7. OpenGL ES 2.0 -- 制作 3D 彩色旋转三角形 - 顶点着色器 片元着色器 使用详解

    最近开始关注OpenGL ES 2.0 这是真正意义上的理解的第一个3D程序 , 从零开始学习 . 案例下载地址 : http://download.csdn.net/detail/han120201 ...

  8. 在 OpenGL ES 2.0 上实现视差贴图(Parallax Mapping)

    在 OpenGL ES 2.0 上实现视差贴图(Parallax Mapping) 视差贴图 最近一直在研究如何在我的 iPad 2(只支持 OpenGL ES 2.0, 不支持 3.0) 上实现 视 ...

  9. OpenGL ES 3.0 基础知识

    首先要了解OpenGL的图形管线有哪些内容,再分别去了解其中的相关的关系: 管线分别包括了顶点缓冲区/数组对象,定点着色器,纹理,片段着色器,变换反馈,图元装配,光栅化,逐片段操作,帧缓冲区.其中顶点 ...

随机推荐

  1. IAR EWARM __iar_program_start, __iar_data_init3, __iar_copy_init3, __iar_zero_init3

    #include <stdint.h> // The type of a pointer into the init table. typedef void const * table_p ...

  2. 谨慎注意WebBrowser控件的DocumentCompleted事件

    引言 WebBrowser控件的DocumentCompleted事件一般就被认定为是在页面完全加载完毕后产生,而注释中也是这么写的: 但事实却并非如此. 首先它不一定会在完全加载完毕时才触发,有时就 ...

  3. AngularJS报错:[$injector:unpr] Unknown provider: $templateRequestProvider

    在页面中由上到下引用了: angular.js angular-route.js 创建model的时候也写明了依赖: var someApp = angular.module('someApp',[' ...

  4. 电子书下载:Delphi XE 5 移动开发入门手册(完整版)

    更多电子书请到: http://maxwoods.400gb.com 下载:Delphi XE5移动开发入门手册(完整版)

  5. 线程池框架executor

    Eexecutor作为灵活且强大的异步执行框架,其支持多种不同类型的任务执行策略,提供了一种标准的方法将任务的提交过程和执行过程解耦开发,基于生产者-消费者模式,其提交任务的线程相当于生产者,执行任务 ...

  6. 实用ExtJS教程100例-007:ExtJS中Window组件最小化

    在上一节中我们演示了如何使用ExtJS的Window组件,这篇内容中我们来演示一下如何将窗口最小化. 要让ExtJS标题栏中显示最小化按钮并不麻烦,只需要设置 minimizable: true 即可 ...

  7. Material Designer的低版本兼容实现(三)——Color

    在Material Designer中,色彩再一次被摆到了重要的位置上.官方文档中竟然给出了500种配色方案进行选择.就是为了给不同的手机.电视.手表上带来一直的用户体验. 更多用于控制色彩的属性,可 ...

  8. [Ubuntu] fg、bg让你的进程在前后台之间切换

    refer to  : http://man.linuxde.net/jobs Linux下的fg和bg命令是进程的前后台调度命令,即将指定号码(非进程号)的命令进程放到前台或后台运行.比如一个需要长 ...

  9. Orchard模块开发全接触5:深度改造前台第二部分

    在这一部分,我们继续完善我们的购物车,我们要做以下一些事情: 1:完成 shoppingcart.cshtml: 2:让用户可以更新数量及从购物车删除商品: 3:创建一个 widget,在上面可以看到 ...

  10. ImportError: No module named model_libs

    在运行ssd时遇到这个问题 实际是python接口的路径不对,使用echo $$PYTHONPATH  弹出当前python路径,发现是caffe自己的python接口,采用 export PYTHO ...