OpenGL ES学习笔记一

2021-03-11  本文已影响0人  MxlZlh

一:着色语言

变量和数据类型

基本数据类型

注意:GLSL没有指针!字符,字符串。

bool bDone = false;
int iValue = 42;
uint uiValue = 32u;
float fValue = 3.14159f;
向量/分量类型
向量的使用
//声明4分量的float向量
vec4 v1;
//2.声明4分量并构建
vec4 v2 = vec4(1,2,3,4); 
vec4 v3 = vec4(0,0,0,0);

//3.向量运算
//向量相加
v1 = v2 + v3;
vec4 v4 = v1;
v1 += vec4(10,10,10,10);
v1 *= 5;

//获取向量中的元素,可以通过x,y,z,w来获取向量中的元素; 
v1.x = 3.0f;
v1.y = 4.0f;
v1.z = 5.0f;
v1.w = 1.0f;

v1.xy = vec2(1,2);
v1.xyz = vec3(1,2,3);
//获取向量中的元素,可以通过r,g,b,a来获取向量中的元素.
v2.r = 1.0f;
v2 = vec4(1.0f,1.0f,1.0f,1.0f);

//获取向量中的元素,可以通过s,t,p,q 来获取纹理坐标控制.
v1.st = vec2(1.0,2.0);
v1.st = v2.st;

//不可以如下,xt不允许混合
v1.st = v2.xt;

//向量数据类型还可swizzle(调换)操作 
//将颜色数据RGB顺序转化BGR顺序 
v1.bgra = v2.rgba;

//向量的一次性所有分量操作
v1.x = v2.x + 5.0f;
v1.xyz = v2.xyz + vec3(5.0f,4.0f,1.0f);
矩阵类型
mat4 m1;
vec4 v2;
vec4 vOutPos ;
//矩阵可以和向量相乘,应用顶点模型/投影矩阵变化时 
m1 = mat4(
            1.0,1.0,1.0,1.0,
            1.0,1.0,1.0,1.0,
            1.0,1.0,1.0,1.0,
            1.0,1.0,1.0,1.0,
        )
vOutPos = v2 * m1;
//单位矩阵
m1 = mat4(1.0f); 
存储限定符

fsh: 片元着色器
vsh: 顶点着色器 后缀名不是给Xcode,开发者.

OpenGL ES
UIKit --> UIView --> UIViewController
GLKit --> GLKView --> GLKViewController

上一篇下一篇

猜你喜欢

热点阅读