前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenGL ES _ 着色器_片断着色器详解

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

作者头像
酷走天涯
发布2018-09-14 14:35:25
1.3K0
发布2018-09-14 14:35:25
举报

学习是一件开心的额事情

本节学习目标
  • 输入值和输出值
  • 如何渲染多个输出缓冲区
输入值和输出值

片段着色器内置变量

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

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

|变量|类型|描述| |---| |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 的概念部分,我会陆续发布,请持续关注!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.08.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本节学习目标
  • 输入值和输出值
  • 如何渲染多个缓冲区
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档