Metal 着色语言编程指南 八
2016-04-18 22:01
246 查看
构造矩阵对象
同矢量对象的构造相似, 矩阵对象也可以从标量或者矢量集合来构造, 当矩阵初始化时,其构造器参数决定了它是如何被创建的。 例如, 如果构造器参数仅仅是一个标量, 那么这个矩阵的对角线上的成员被初始化为这个标量,其他成员被初始化为0.0。
下面的这个调用
矩阵也可以从另一个相同维数的矩阵来构建:
一个nxm的矩阵可以从n个m维的矢量来构造,例如:
Metal 着色语言的原子类型有: atomic_int 和 atomic_uint。
译自:
https://developer.apple.com/library/ios/documentation/Metal/Reference/MetalShadingLanguageGuide/data-types/data-types.html#//apple_ref/doc/uid/TP40014364-CH2-SW1
同矢量对象的构造相似, 矩阵对象也可以从标量或者矢量集合来构造, 当矩阵初始化时,其构造器参数决定了它是如何被创建的。 例如, 如果构造器参数仅仅是一个标量, 那么这个矩阵的对角线上的成员被初始化为这个标量,其他成员被初始化为0.0。
下面的这个调用
float4x4(fval);构造的矩阵为:
fval 0.0 0.0 0.0 0.0 fval 0.0 0.0 0.0 0.0 fval 0.0 0.0 0.0 0.0 fval
矩阵也可以从另一个相同维数的矩阵来构建:
float3x4(float3x4); float3x4(half3x4);这种构造方式,矩阵的成员是以列为顺序来初始化的, 参数矩阵的维数必须与目标矩阵相同, 否则(过多或者过少)都会引发编译错误。
一个nxm的矩阵可以从n个m维的矢量来构造,例如:
float2x2(float2, float2); float3x3(float3, float3, float3); float3x2(float2, float2, float2);矩阵不能从多个标量或者标量与矢量的组合来构造, 下面是一些非法的构造:
// both cases below are not supported float2x2(float a00, float a01, float a10, float a11); float2x3(float2 a, float b, float2 c, float d);
原子数据类型(Atomic Data Type)
原子类型只能在原子函数(Atomic Function)中使用, 关于原子函数会在下文讲述。 Metal 着色语言的原子函数就是C++11中的原子与同步函数的子集。 原子函数必须操作原子数据。Metal 着色语言的原子类型有: atomic_int 和 atomic_uint。
译自:
https://developer.apple.com/library/ios/documentation/Metal/Reference/MetalShadingLanguageGuide/data-types/data-types.html#//apple_ref/doc/uid/TP40014364-CH2-SW1
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用中UISearchDisplayController搜索效果的用法
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- iOS推送的那些事
- IOS 改变键盘颜色代码