当前位置:  开发笔记 > 编程语言 > 正文

如何使用金属清除GPU纹理?

如何解决《如何使用金属清除GPU纹理?》经验,为你挑选了1个好方法。

我有一个3D纹理,只有GPU可以访问它,我正在尝试在帧开始时清除它。我曾尝试使用计算机着色器将每个元素设置为零,但是对于64x64x64纹理,这花费了将近3毫秒,我想使用比这更大的东西。

如果我可以对颜色附件执行类似“加载时清除”操作的功能,那将是很好的选择,但我认为在这种情况下这是不可能的。

清除纹理的最快方法是什么?



1> 小智..:

最简单的方法是使用renderPassDesciptor的loadActions,如下所示:

MTLRenderPassDescriptor *rpdesc = [MTLRenderPassDescriptor renderPassDescriptor];
rpdesc.colorAttachments[0].clearColor = MTLClearColorMake(0,0,0,0);
rpdesc.colorAttachments[0].loadAction = MTLLoadActionClear;

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有