OpenGL ES _ 着色器_片断着色器详解

OpenGL ES _ 入门_01
OpenGL ES _ 入门_02
OpenGL ES _ 入门_03
OpenGL ES _ 入门_04
OpenGL ES _ 入门_05
OpenGL ES _ 入门练习_01
OpenGL ES _ 入门练习_02
OpenGL ES _ 入门练习_03
OpenGL ES _ 入门练习_04
OpenGL ES _ 入门练习_05
OpenGL ES _ 入门练习_06
OpenGL ES _ 着色器 _ 介绍
OpenGL ES _ 着色器 _ 程序
OpenGL ES _ 着色器 _ 语法
OpenGL ES_着色器_纹理图像
OpenGL ES_着色器_预处理
OpenGL ES_着色器_顶点着色器详解
OpenGL ES_着色器_片断着色器详解
OpenGL ES_着色器_实战01
OpenGL ES_着色器_实战02
OpenGL ES_着色器_实战03

1594482-b48c01309fc13518.PNG
学习是一件开心的额事情
本节学习目标
  • 输入值和输出值
  • 如何渲染多个输出缓冲区
输入值和输出值
片段着色器内置变量

输入值:片段着色器接受顶点管线最终输出的迭代值,这些值包括片段的位置,已解析的主颜色和辅助颜色,一系列的纹理坐标以及片段的雾坐标距离。

下面这个表格,将是对这些变量的详细介绍

|变量|类型|描述|
|---|
|gl_FragCoord|vec4|片断的位置,包含z成分,它表示固定功能所计算的深度值,只读|
|glFrontFacing|bool|只读,指定这个片段是否属于一个正面图元|
|gl_Color|vec4|片段着色器的主色|
|gl_SecondColor|vec4|片段的辅助颜色|
|gl_TexCoord[n]|vec4|片段的第n纹理坐标|
|gl_FogFragCoord|float|片段的雾坐标|要么指定为视觉空间中的图元的z坐标,或者差值雾坐标|
|gl_PointCoord|vec2|一个点块纹理的片断位置在[0.0,0.1]|范围中,如果当前图元并不是点块纹理或者点块纹理被禁用|

特殊的输出值
在片段着色器中,特殊的输入值经过组合,产生片断的最终值.
gl_FragColor 是片断的最终颜色。
gl_FragDepth 片断的深度值
gl_FragData 允许把数据写入到额外的缓冲区中

如何渲染多个缓冲区

片段着色器可以使用gl_FragData 数组,把值同时输出到多个缓冲区,在数组元素gl_FragData[n] 中写入一个值将导致这个颜色被写入到缓冲区中一个适当的片段中,这个片段位于传递给glDrawBuffers()函数的数组的第n个元素中,片断着色器把值写入到gl_FragColor 或者gl_FragData 中,但是不能同时写入到两者中.

总结

基本的GLSL 内容,就这些了,接下来,就真正开始实践这些内容了,OpenGL 的概念部分,我会陆续发布,请持续关注!加群讨论:578734141

你可能感兴趣的:(OpenGL ES _ 着色器_片断着色器详解)