3D开发学习-着色语言 Shading Language基础(二) 特殊内建变量
2017-02-15 17:11
381 查看
着色器代码的开发中会用到很多的变量,其中大部分可能是由开发人员根据需求自定义的,但是,着色器语言也提供了一些用来满足特定需求的内建变量.内建变量不需要声明就可以直接使用,一般用来实现渲染管线固定功能部分和自定义顶点或片元着色器之间的信息交互.
内建变量根据信息传递方向可以分为两类:
1.输入变量:负责将渲染管线中固定功能部分产生的信息传递进着色器.
2.输出变量:负责将着色器产生的信息传递给渲染管线中固定功能.
第一:顶点着色器中的内建变量.
顶点着色器中的内建变量主要是输出变量,包括gl_Position , gl_PointSize等.在顶点着色器中应该根据需要对这些内建变量赋值,以便由渲染管线中的片元与光栅化等后续固定功能阶段进行进一步处理.
gl_Position : 顶点着色器从应用程序中获得原始的顶点位置数据,这些原始的顶点数据在顶点着色器中的经过平移,旋转,缩放等数学变换后,生成新的顶点位置.新的顶点位置通过在顶点着色器中写入gl_Position 传递到渲染管线的后继阶段继续处理.gl_Position 的类型是vec4,输入的请保持类型一致.
gl_PointSize : 顶点着色器中可以计算一个点的大小,单位是像素,并将其赋值给gl_PointSize , 标量是float类型,传递给渲染管线.默认值1. gl_PointSize的值只有采用了点绘制方式才有意义.
第二:片元着色器内建变量.
片元着色器内建变量分为输入变量以及输出变量两种.
1.内建输入变量:
片元着色器中的内建输入变量主要有gl_FragCoord以及gl_FrontFacing.这两个变量都是只读的.
gl_FragCoord是vec4类型,含有当前片元相对于窗口位置的坐标x,y,z和1/w .
gl_FrontFacing是一个布尔型的内建变量,通过读取该内建变量可以判断正在处理的片元是否属于在光栅化阶段生成此片元的对应图元的正面.正面为true.生成的图元中,默认值为true.
2.内建输出变量:
片元着色器中的内建输出变量主要有gl_fragColor和gl_FragData ,
gl_fragColor是vec4类型,用来由片元着色器写入计算完成的片元颜色值,此颜色值将锄地给渲染管线的后继阶段处理.
gl_FragData 内建变量也是vec4类型,写入时要给出下标.
内建变量根据信息传递方向可以分为两类:
1.输入变量:负责将渲染管线中固定功能部分产生的信息传递进着色器.
2.输出变量:负责将着色器产生的信息传递给渲染管线中固定功能.
第一:顶点着色器中的内建变量.
顶点着色器中的内建变量主要是输出变量,包括gl_Position , gl_PointSize等.在顶点着色器中应该根据需要对这些内建变量赋值,以便由渲染管线中的片元与光栅化等后续固定功能阶段进行进一步处理.
gl_Position : 顶点着色器从应用程序中获得原始的顶点位置数据,这些原始的顶点数据在顶点着色器中的经过平移,旋转,缩放等数学变换后,生成新的顶点位置.新的顶点位置通过在顶点着色器中写入gl_Position 传递到渲染管线的后继阶段继续处理.gl_Position 的类型是vec4,输入的请保持类型一致.
gl_PointSize : 顶点着色器中可以计算一个点的大小,单位是像素,并将其赋值给gl_PointSize , 标量是float类型,传递给渲染管线.默认值1. gl_PointSize的值只有采用了点绘制方式才有意义.
第二:片元着色器内建变量.
片元着色器内建变量分为输入变量以及输出变量两种.
1.内建输入变量:
片元着色器中的内建输入变量主要有gl_FragCoord以及gl_FrontFacing.这两个变量都是只读的.
gl_FragCoord是vec4类型,含有当前片元相对于窗口位置的坐标x,y,z和1/w .
gl_FrontFacing是一个布尔型的内建变量,通过读取该内建变量可以判断正在处理的片元是否属于在光栅化阶段生成此片元的对应图元的正面.正面为true.生成的图元中,默认值为true.
2.内建输出变量:
片元着色器中的内建输出变量主要有gl_fragColor和gl_FragData ,
gl_fragColor是vec4类型,用来由片元着色器写入计算完成的片元颜色值,此颜色值将锄地给渲染管线的后继阶段处理.
gl_FragData 内建变量也是vec4类型,写入时要给出下标.
相关文章推荐
- 3D开发学习-着色语言 Shading Language基础(一)
- 3D开发学习-着色语言 Shading Language基础(二) 使用
- 黑马程序员——零基础学习iOS开发——03 c语言基础语法:关键字、标示符、注释、数据结构、变量、变量内存分析、scanf函数
- DirectX 3D_基础之HLSL(高级着色语言) HLSL着色器程序的编制 HSLS变量 HLSL入口函数 HLSL程序编译 变量常量类型 设置方法 前缀 关键字 类型 语句 类型转换
- 【J2me3D系列学习文章之一】J2me3D开发技术和基础知识
- 【零基础学习iOS开发】【02-C语言】04-常量、变量
- ios开发学习笔记001-C语言基础知识
- c语言学习之基础知识点介绍(九):预处理指令和多文件开发
- 3D数学基础 图形与游戏开发的学习 (六)[多坐标系]
- shell脚本学习:特殊变量和C语言格式循环
- IOS App入门开发进阶 第一课 OC语言基础学习
- 3D数学基础及图形与游戏开发的学习 (一)
- iOS开发之c语言基础-变量
- 黑马程序员学习日记——java语言基础,dos命令,环境变量搭建
- 3D数学基础及图形与游戏开发的学习 (二)
- 【J2me3D系列学习文章之一】J2me3D开发技术和基础知识
- Direct 3D和XNA游戏开发基础(C#语言版)(奋斗的小鸟)_PDF 电子书
- quick-cocos2d-x从零开始游戏开发笔记(二):Lua语言基础学习
- 【IOS 开发学习总结-OC-7.2】C 语言特性——局部变量与全局变量
- 对于初学者学习Java语言的建议-Java基础-Java-编程开发