当前课程知识点:移动图形概论 >  第四章 OpenGL ES 着色器 >  4.1 着色器编程语言介绍 >  着色器编程语言特殊语法

返回《移动图形概论》慕课在线视频课程列表

着色器编程语言特殊语法在线视频

下一节:着色器编程实例

返回《移动图形概论》慕课在线视频列表

着色器编程语言特殊语法课程教案、知识点、字幕

各位同学大家好

今天的课程

继续介绍着色器的编程语言的语法

今天的主要内容

包括函数的用法

程序中的分支控制和循环控制

还有

着色器中比较特殊的数据精度控制

首先

介绍一下opengLES的自定义函数

自定义函数的声明和定义

与c语言的方式类似

因此

在使用自定义函数之前

如果没有被定义的话

必须对函数原型进行声明

openGLES

着色器程序与函数之间传递参数的方式

与在c语言中传递参数的方式完全不同

每个参数会有不同的限定符

当限定符为in的时候

表示给定参数是通过值传递的

不会被函数修改

可以将其理解为只读参数

如果未指定限定符的参数

默认就是in限令符

当限定符为inout时

表示给定的参数是通过引用传递的

可以被函数更改

当限定符为out时

表示给定的参数是返回参数

可以把信息传递到函数外

这里

是一个用户自定义函数的示例

它通过光的方向

与顶点法线方向的一致程度

来计算有多少光落在顶点上

它有两个参数

都是输入型的三维矢量

它的返回值是一个浮点数

首先

他用dot函数

计算两个矢量的点乘

然后用max函数

计算点乘结果和零之间的最大值

并把这个值返回

opengLES着色器程序中

语句的语法与c语言也很相似

存在if-else这样的分支判断

也有

for

while

do等循环语句

这个示例是一条分支判断语句

用于根据颜色的红色通道

是否高于0.5

来将颜色的红色分量设置为1

或者为0

它的语法结构

与c语言是完全相同的

这个示例是一条分支判断语句

用于计算四的阶乘

循环变量为I

循环的语法与c语言也完全一样

这两个程序片段

展示了用while循环和do-while循环

进行循环控制的实例

都是通过n作为循环控制变量

对count参数进行计数

其语法与c语言语法也是相同的

在着色器程序中

还支持精度限定符

允许着色器程序

指定对特定变量执行计算时

所需达到的精度

这个限定符可以是 lowp

表示低精度

或者mediump表示中等精度

或者是highp表示高精度

精度较低的变量

将使用较少的空间来存储

因此

硬件通常能更高效的处理

但是精度较低的变量

可能会降低计算的准确性

因此

在指定变量的精度时要格外注意

因为用户往往

既想要高性能又想要高准确性

但这二者之间

是有一定的矛盾需要进行权衡

使用精度限定符

不光可以指定某个单独变量的精度

还可以指定特定类型的默认精度

在设置默认精度的时候

要使用precision关键字

用来指定特定变量类型的精度

比如这里

指定了一个2D采样器的精度为低精度

指定了整形数为中等精度

同时指定了浮点数为高精度

后续再使用这些类型的时候

就将使用这里设定的默认精度

接下来

几个使用精度限定符的变量定义示例

今天的课就到这里

谢谢大家

移动图形概论课程列表:

第一章 课程简介

-1.1 课程基本情况介绍

--课程基本情况介绍

-1.2 GPU 相关基础知识

--GPU 相关基础知识

-1.3 OpenGL ES 技术发展历史

--OpenGL ES 技术发展历史

-1.4 PowerVR SDK 安装和使用

--PowerVR SDK 安装和使用

-第一章测试

第二章 图形编程入门

-2.1 OpenGL ES 基本概念

--OpenGL ES 基本概念

-2.2 编写第一个图形程序

--编写第一个图形程序

-2.3 主要 API 介绍

--主要 API 介绍

-第二章测试

第三章 OpenGL ES 变换

-3.1 矢量和矩阵知识基础

--矢量和矩阵知识基础

-3.2 旋转与位移变换

--旋转与位移变换

-3.3 OpenGL ES 变换基础

--OpenGL ES 变换基础

-第三章测试

第四章 OpenGL ES 着色器

-4.1 着色器编程语言介绍

--着色器编程语言语法

--着色器编程语言特殊语法

-4.2 着色器编程实例

--着色器编程实例

-第四章测试

第五章 颜色与纹理

-5.1 颜色的基本概念

--颜色的基本概念

-5.2 纹理素材的使用

--纹理素材的使用

-5.3 立方体纹理

--立方体纹理

-第五章测试

第六章 光源与光照

-6.1 光照的基本概念

--光照的基本概念

-6.2 光源模型

--光源模型

-6.3 使用着色器渲染颜色

--使用着色器渲染颜色

-6.4 反射与折射

--反射与折射

-第六章测试

第七章 基于物理的渲染

-7.1 基于物理渲染的基本概念

--基于物理渲染的基本概念

-7.2 基于图像的照明

--基于图像的照明

-7.3 PBR 的实现

--PBR 的实现

-第七章测试

第八章 PowerVR 工具简介

-8.1 Vulkan 介绍

--Vulkan 介绍

-8.2 SDK 中的实用工具介绍

--SDK 中的实用工具介绍

-综合测试

着色器编程语言特殊语法笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。