前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Metal Shadeing Language

Metal Shadeing Language

作者头像
CC老师
发布2023-03-23 19:20:44
2830
发布2023-03-23 19:20:44
举报
文章被收录于专栏:HelloCode开发者学习平台

三.Metal的数据类型

Metal的数据类型包含表示向量和矩阵的类型,原子数据类型,缓存,纹理,采样器,数组,自定义结构体,还会描述类型对齐和类型转换.

3.1 标量数据类型

Metal 支持如下表格的类型,但是它不支持double,long,unsigned long ,long long,unsigned long long,long double

Metal 数据类型

  • 注意
    • f或者F,表示单精度浮点类型字面量,(例如,0.5f 或 0.5F);
    • h或者H,表示半单精度浮点类型字面量,(例如,0.5h 或 0.5H);
    • u或者U,表示无符号整形字面量.

3.2 向量和矩阵数据类型

Metal着色语言通过系统向量数学库支持一系列的向量和矩阵数据类型.

  • 向量支持如下类型
    • booln
    • charn
    • shortn
    • intn
    • ucharn
    • ushortn
    • uintn
    • halfn
    • floatn
  • 向量中的n,指的是维度.假设2,表示二维
  • 矩阵支持如下类型
    • halfnxm
    • floatnxm
  • nxm分别指的是矩阵的行数和列数.

3.3 访问向量的分量

向量的分量可以使用数组下标进行访问存取.

Metal 支持(,)作为选择向量分量进行访问操作符.可以使用坐标分量或者是颜色分量的字母来存取向量.向量名.xyzw,或是向量名.rgba;

  • 分量语法也能允许多个分量同时被选择访问.
  • 分量选择语法允许多个分量乱序或是重复出现

注意:

  • 用如下的向量分量访问方法是不被允许的会导致编译错误
    • 访问分量时,如果超过了向量声明的维度数会产生错误.一个2维向量可以通过xy,或者rg范围访问其分量.一个3维向量可以通过.xyz或者.rgb 访问其分量.
  • 作为一个左值,同一个分量出现多余一次是错误.
  • .rgba.xyzw 不能在同一次访问中使用.
  • 指向向量分量的指针或者引用也是不合法的.
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 逻辑iOS技术号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 三.Metal的数据类型
    • 3.1 标量数据类型
      • 3.2 向量和矩阵数据类型
        • 3.3 访问向量的分量
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档