在 Metal Shading Language 中重复平移手势的纹理

Repitition of texture on pan gesture in Metal Shading Language

我是金属着色的新手language.So您的指导会很有帮助。 我只是使用金属重复纹理,如下图所示 (Image sequence). 但似乎 smoothy.How 我不能让它看起来像下面 link 金属点那样平滑的线条。(overlapping Metal Point primitives and blending)

目前我所做的是在手势中的每个触摸点为顶点缓冲区 (MTLBuffer) 分配内存。

代码:

func allocateMemoryForVetexBuffer(vertices: Array<Vertex>){
        var vertexData = Array<Float>()
        for vertex in vertices{
            vertexData += vertex.floatBuffer()
        }

        let dataSize = vertexData.count * MemoryLayout.size(ofValue: vertexData[0])
        print("dataSize:\(dataSize)")
        vertexBuffer = device.makeBuffer(bytes: vertexData, length: dataSize, options: [])

        vertexCount = vertices.count

    }

我在平移手势中调用此方法 recognizer.But 它会导致掉落 FPS.So 我的问题是不知道金属层上的单个平移会添加多少纹理,我该如何分配内存对于帧缓冲区。

您没有必要使用实例化。

改变这个:

renderEncoder.drawPrimitives(type: .triangle, vertexStart: 0, vertexCount: vertexCount, 
                             instanceCount: vertexCount / 3)

对此:

renderEncoder.drawPrimitives(type: .triangle, vertexStart: 0, vertexCount: vertexCount)