Metal 着色语言编程指南 十
来源:互联网 发布:邮箱管理软件 mac 编辑:程序博客网 时间:2024/06/04 19:21
纹理(Texture)
纹理数据类型是一个指向1, 2 或者3维纹理数据的句柄. 纹理数据则是一个纹理的某个等级(level)的mipmap的全部或者部分数据.
enum class access { sample, read, write };texture1d<T, access a = access::sample>texture1d_array<T, access a = access::sample>texture2d<T, access a = access::sample>texture2d_array<T, access a = access::sample>texture3d<T, access a = access::sample>texturecube<T, access a = access::sample>texturecube_array<T, access a = access::sample>texture2d_ms<T, access a = access::read>
带深度信息的纹理必须按照下面的例子来声明:
depth2d<T, access a = access::sample>depth2d_array<T, access a = access::sample>depthcube<T, access a = access::sample>depthcube_array<T, access a = access::sample>depth2d_ms<T, access a = access::read
注意:
texturecube_array
和 depthcube_array
纹理类型只在OS X上支持 . texturecube的读写操作旨在 OS X 上支持.这里的T 表示对纹理数据进行读写操作时的颜色类型, 不含深度信息的纹理数据类型可以为half, float, short, ushort, int 或者 uint, 带深度信息的纹理数据类型必须为float.
access 修饰符决定了纹理数据应该如何被访问:
sample: 支持采样器(sampler), 支持通过采样器访问纹理数据, 也可以不使用采样器访问数据
read: 不支持采样器, kernal 或者 graphics 函数可以读取纹理数据
write: kernal 或者graphics 函数可以将数据写入纹理
注意:对于多采样纹理, 只支持read 访问, 对于深度纹理, 只支持 sample和read 访问.
下面是一个使用access修饰符的纹理对象作为函数参数的例子:
void foo (texture2d<float> imgA [[ texture(0) ]], texture2d<float, access::read> imgB [[ texture(1) ]], texture2d<float, access::write> imgC [[ texture(2) ]]){ ...}
注意: 如果T是int或者short, 纹理数据类型是带符号整型, 如果T是uint或者ushort, 纹理数据类型必须是无符号整型, 如果T是half, 纹理数据类型可以是归一化(normalized)的整数或者半精度浮点类型. 如果T是float, 纹理数据类型可以使归一化的整数或者半精度或单精度浮点类型.
注: mipmap 是一种纹理映射方式, 请参见: http://baike.baidu.com/link?url=Bp2S4kep-e_KeUR0_o8XgTgn9pFNJymBPjyhN3ymt3G4NieXo-pe8cD_u36muzZgCkS251nG2Z-jKKUNG9Y_cq
2 0
- Metal 着色语言编程指南 十
- Metal 着色语言编程指南 二十
- Metal 着色语言编程指南 一
- Metal 着色语言编程指南 二
- Metal 着色语言编程指南 三
- Metal 着色语言编程指南 四
- Metal 着色语言编程指南 五
- Metal 着色语言编程指南 六
- Metal 着色语言编程指南 七
- Metal 着色语言编程指南 八
- Metal 着色语言编程指南 九
- Metal 着色语言编程指南 十一
- Metal 着色语言编程指南 十二
- Metal 着色语言编程指南 十三
- Metal 着色语言编程指南 十四
- Metal 着色语言编程指南 十五
- Metal 着色语言编程指南 十六
- Metal 着色语言编程指南 十七
- 通讯软件秘密开发笔记
- 15.RDD 创建
- Velocity的基本语法
- ps 界面设置
- BestCoder Round #81 (div.2)
- Metal 着色语言编程指南 十
- sql server存储过程 以及几个常用案例
- 利用tomcat-redis-session-manager解决tomcat的分布式session问题
- Objective-C 类别(category)和扩展(Extension)
- java常量池技术
- 数据库文件的导入
- web 三层架构开发MVC
- Netmap分析(三)
- BestCoder Round #81 (div.1) C Robot