linear,swizzle,tile

linear,swizzle,tile是有些类似的三个属性,其中linear和swizzle是关于贴图的,tile是关于内存的。

linear一般是默认的,也就是贴图的texel从左上到右下一行行的存储。

swizzle是指贴图的一种属性,一般采用2x2的小quad 按照Z字型顺序来存储4个象素,类似:

    1    |    4     5
2     3    |    6     7

 这样,这样的优势就是相邻的几个texel在内存中也是比较相邻的,当然是很有局限性的,但是相比linear已经有很大提高。

tile: 最常用于对于render target的内存设置,宗旨是让相邻的象素在内存中也是相邻的,以便提高读写效率。

它的做法有:

在一个规定大小的block中linear存放,可以看作是一种“超级”swizzle。

在有硬件支持的情况下,把block可以分成多个bank,相邻的bank放到不同的memory partition中,这样就可以让内存访问并行化。

另外就是可以进行错位设置,让depth和color不在相同bank中,也可以提高memory access 并行化。

必要情况下还需要地址转换。

速度上,tile比非tile快很多,swizzle的sample texture比linear快。


原文链接: http://blog.csdn.net/ccanan/article/details/1654379

转载于:https://my.oschina.net/dtec/blog/44731

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值