OpenGL ES 2.0——片段着色器Fragment Shader

OpenGL ES2.0 专栏收录该内容
4 篇文章 0 订阅

一、片段着色器的定义:

    它计算每个像素的颜色和其它属性,实现了一种作用于片段的通用可编程方法,对光栅化阶段产生的每个片段进行操作。

输入:

1.Varying变量——顶点着色器阶段输出的 varying 变量在光栅化阶段被线性插值计算之后输出到片元着色器中作为它的输入,即图中的 gl_FragCoordgl_FrontFacing 和 gl_PointCoord。OpenGL ES 2.0 也规定了所有实现应该支持的最大 varying 变量个数不能少于 8 个。

2.Uniforms——用于片元着色器的常量,OpenGL ES 2.0 也规定了所有实现应该支持的最大的片元着色器 uniform 变量个数不能少于 16 个。

3.Samples——一种特殊的 Uniforms,用于呈现纹理。

4.Shader Program——片段着色器编程源码或可执行的部分


输出:

在顶点着色器阶段只有唯一的 varying 输出变量-即内建变量:gl_FragColor

        


二、例子:

        片段着色器也能丢弃片段或者产生一些颜色值像 gl_FragColor,光栅化阶段产生的颜色、深度、模板、屏幕坐标(Xw,Yw)变成 OpenGL ES 2.0 管线输入。

 precision mediump float;

 varying vec4 v_color; // input vertex color from vertex shader

 void
 main(void)
{
 gl_FragColor = v_color;
}
        上例中首先设置了显示质量,然后声明片段着色器输入,由于片段着色器不需要定义输出,因为其输出仅仅只有gl_FragColor。

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值