OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)

本文详细介绍了OpenGL ES着色器语言中的变量和数据类型,包括void、booleans、integers、floats、vectors、matrices、samplers、structures、arrays及其相关概念,如存储修饰符、作用域和参数修饰符。着重讲解了各类型的基本用法和限制,如向量和矩阵的初始化、常量修饰符、attribute、uniform和varying变量的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       所有变量和函数在使用前必须声明。变量和函数名是标识符。

       没有默认类型,所有变量和函数声明必须包含一个声明类型以及可选的修饰符。变量在声明的时候首先要标明类型,后边可以跟多个变量,之间用逗号隔开。很多情况下,变量在声明的时候可以使用等号“=”进行初始化。

       用户定义类型可以使用struct,在结构体中所有变量类型都必须是OpenGL ES着色器语言定义的关键字。OpenGL ES着色语言是类型安全的,因此不支持隐式类型转换。

4.1 基本数据类型

4.1.1  void

        函数没有返回值必须声明为void,没有默认的函数返回值。关键字void不能用于其他声明,除了空形参列表外。

4.1.2  Booleans

       布尔值,只有两个取值true或false。

           bool success, done = false;

4.1.3  Integers

       整型主要作为编程的援助角色。在硬件级别上,真正地整数帮助有效的实现循环和数组索引,纹理单元索引。然而,着色语言没必要将整型数映射到硬件级别的整数。我们并不赞成底层硬件充分支持范围广泛的整数操作。OpenGL ES着色语言会把整数转化成浮点数进行操作。整型数可以使用十进制(非0开头数字),八进制(0开头数组)和十六进制表示(0x开头数字)。

            int i, j = 42;

4.1.4  Floats

       浮点型用于广泛的标量计算。可以如下定义一个浮点数:

           float a, b = 1.5;

4.1.5  Vectors

       OpenGL ES着色语言包含像2-,3-, 4-浮点数、整数、booleans型向量的泛型表示法。浮点型向量可以保存各种有用的图形数据,如颜色,位置,纹理坐标。

           vec2 texCoord1, texCoord2;

           vec3 position;

           vec4 rgba;

           ivec2 textureLookup;

           bvec3 lessThan;

        向量的初始化工作可以放在构造函数中完成。

4.1.6  Matrices

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值