OpenGL ES学习(3)——着色语言入门

本文介绍了Android环境下OpenGL ES 2.x的着色语言(Shading Language),涵盖数据类型如标量、向量、矩阵,内建变量、函数以及流程控制等基础知识,是图形化编程的重要组成部分。
摘要由CSDN通过智能技术生成

本篇文章是Android下OpenGL ES 2.x相关着色语言(Shading Language)介绍,它是OpenGL着色语言的子集。

1.着色语言简介

OpenGL ES着色语言属于高级图形编程语言,源于C语言。提供有丰富的原生数据类型,如向量、矩阵等。

2.着色语言语法基础

2.1 数据类型

着色器语言中数据类型可以分为:标量、向量、矩阵、采样器、结构体和数组等。

2.1.1 标量

只有大小,没有方向的量,遵循简单的代数运算。OpenGL ES中支持的标量包括:

  • bool:true 或 false
  • int:值为正数、负数及0
  • float:浮点值
bool b;//声明布尔型变量
int a = 10;声明整型变量并赋值
float g = 2.0;//声明float变量并赋值

2.1.2 向量

每个向量由2个、3个或4个相同类型的标量组成,可以存储颜色、位置、纹理坐标等。使用“向量名”.“分量名”方式访问向量分量。

向量类型 说明 向量类型 说明
vec2 包含两个浮点数的向量 ivec4 包含四个整数的向量
vec3 包含三个浮点数的向量 bvec2 包含两个布尔数向量
vec4 包含四个浮点数的向量 bvec3 包含三个布尔数向量
ivec2 包含两个整数的向量 bvec4 包含四个布尔数向量
ivec3 包含三个整数的向量

代码示例

vec2 v2;//声明一个vec2类型的向量


//访问向量中某个分量
//向量看作颜色,分量可以是:r,g,b,a4
aColor.r = 0.6;
//向量看作位置,分量可以是:x,y,z,w
aPosition.x = 16.2;
//向量看作纹理坐标,分量可以是:s,t,p,q
aTexColor.s = 0.65;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值