繁体   English   中英

原位处理金属质感

[英]in-place processing of a Metal texture

是否有可能来处理MTLTexture原地不osx_ReadWriteTextureTier2

看来我可以将两个纹理参数设置为相同的纹理。 这是受支持的行为吗?

具体来说,我不介意写后不更新纹理缓存。 我只想就地(稀疏地)修改3d纹理。 具有两个纹理是内存禁止的。 复制整个纹理在计算上是昂贵的,尤其是当我可能只更新它的一小部分时。

根据文档,无论功能是否可用,在函数签名中声明两个单独的纹理参数(一次读,一次写),然后为两者设置相同的纹理是无效的。

任何支持osx_GPUFamily1_v2 Mac osx_GPUFamily1_v2支持函数纹理读写(通过使用access::read_write osx_GPUFamily1_v2声明纹理)。

“第1层”(没有显式常量)与osx_ReadWriteTextureTier2之间的区别在于,后者支持用于读写纹理的其他像素格式。

如果确定目标Mac不支持所需的纹理读写(因为您需要部署到OS X 10.11,或者因为您要部署到的计算机层使用了不兼容的像素格式, ),您可以一次在一个平面上对纹理进行操作,从3D纹理读取,写入2D纹理,然后将结果回写到3D纹理中的相应区域。 这需要更多的工作,但是所使用的内存将少于两倍。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM