如何使用MTLRenderPassDescriptor加载现有的Texture

时间:2019-01-27 05:13:40

标签: ios swift metal metalkit

我在资产中有一张图片。然后我将其更改为MTLTexture。我想将此纹理传递给着色器函数,并使用着色器函数将纹理附加到传递的纹理中并添加污点功能。

目前,我正在MTLRenderPassDescriptor中传递纹理,如下所示。

let renderPassWC = MTLRenderPassDescriptor()
renderPassWC.colorAttachments[0].texture = ssTexture
renderPassWC.colorAttachments[0].loadAction = .load
renderPassWC.colorAttachments[0].storeAction = .store

当我在Shader函数中编辑纹理时,例如将ssTexture的像素移动到相邻的Pixel。 enter image description here运动不会停止。因为我在着色器中执行的操作会在每个绘制循环中连续在附加的Textures中运行。

所以我认为,不是让loadAction带有load,而是让我感觉很清晰,但是我更改如下代码时传递的纹理变得清晰

renderPassWC.colorAttachments[0].texture = ssTexture
renderPassWC.colorAttachments[0].loadAction = .clear
renderPassWC.colorAttachments[0].clearColor = MTLClearColorMake(  0.0,  0.0,  0.0,  0.0)

。任何清晰地传递图像纹理的方法。

0 个答案:

没有答案