Metal 着色语言编程指南 五
来源:互联网 发布:mac视网膜高清壁纸 编辑:程序博客网 时间:2024/05/16 03:10
(.) 操作符访问矢量成员
Metal 也支持(.) 操作符来访问矢量成员, (.) 操作符后面跟随字符来表示坐标或者颜色: <Vector_data_type>.xyzw 或者 <Vector_data_type>.rgba。
示例代码如下
int4 test = int4(0, 1, 2, 3);int a = test.x; // a = 0int b = test.y; // b = 1int c = test.z; // c = 2int d = test.w; // d = 3int e = test.r; // e = 0int f = test.g; // f = 1int g = test.b; // g = 2int h = test.a; // h = 3
(.) 操作符也可以同时选择多个成员:
float4 c;c.xyzw = float4(1.0f, 2.0f, 3.0f, 4.0f);c.z = 1.0f;c.xy = float2(3.0f, 4.0f);c.xyz = float3(3.0f, 4.0f, 5.0f);
应用(.)操作符来复制或者交换矢量成员:
float4 pos = float4(1.0f, 2.0f, 3.0f, 4.0f);float4 swiz = pos.wzyx; // swiz = (4.0f, 3.0f, 2.0f, 1.0f)float4 dup = pos.xxyy; // dup = (1.0f, 1.0f, 2.0f, 2.0f)
应用(.)操作符给矢量成员复制, 当矢量成员成为左值(lvalue)的时候, 用来标示其成员索引的字母(xyzw或者rgba)是不可重复的:
float4 pos = float4(1.0f, 2.0f, 3.0f, 4.0f);// pos = (5.0, 2.0, 3.0, 6.0)pos.xw = float2(5.0f, 6.0f);// pos = (8.0, 2.0, 3.0, 7.0)pos.wx = float2(7.0f, 8.0f);// pos = (3.0, 5.0, 9.0, 7.0)pos.xyz = float3(3.0f, 5.0f, 9.0f);
2 0
- Metal 着色语言编程指南 五
- Metal着色语言编程指南 二五
- Metal 着色语言编程指南 一
- Metal 着色语言编程指南 二
- Metal 着色语言编程指南 三
- Metal 着色语言编程指南 四
- Metal 着色语言编程指南 六
- Metal 着色语言编程指南 七
- Metal 着色语言编程指南 八
- Metal 着色语言编程指南 九
- Metal 着色语言编程指南 十
- Metal 着色语言编程指南 十一
- Metal 着色语言编程指南 十二
- Metal 着色语言编程指南 十三
- Metal 着色语言编程指南 十四
- Metal 着色语言编程指南 十五
- Metal 着色语言编程指南 十六
- Metal 着色语言编程指南 十七
- JAVA——普通代码块、构造代码块、静态代码块
- QT程序打包成EXE
- 排序算法---3
- Qt学习记录--02 Qt的信号槽机制介绍(含Qt5与Qt4的差异对比)
- 12.--基本异常处理
- Metal 着色语言编程指南 五
- 13.——常用API
- Android API Guides---Input Controls
- 机器学习笔记02:多元线性回归、梯度下降和Normal equation
- 工程项目前出现红色感叹号原因
- 【matlab】:利用matlab实现QQ的一个图片显示变色功能
- SGU 141 Jumping Joe(扩展欧几里得)
- Linux 目录结构
- 周日任务:了解bootstrap和后台管理系统