着色器_片断着色器详解

本节学习目标

  • 输入值和输出值
  • 如何渲染多个输出缓冲区

输入值和输出值

 

片段着色器内置变量

 

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

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

|变量|类型|描述|
|---|
|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 中,但是不能同时写入到两者中.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值