setVertexBytes:length:atIndex:这接口的长度限制是4k(4096bytes),对于超过的场景应该使用MTLBuffer。...MTLBuffer是GPU能够直接读取的内存,用来存储大量的数据;(常用于顶点数据) newBufferWithLength:options:方法用来创建MTLBuffer,参数是大小和访问方式;MTLResourceStorageModeShared...MTLBuffer用于存储顶点数据,MTLTexture则用于存储纹理数据;MTLTexture在创建之后,需要调用replaceRegion:mipmapLevel:withBytes:bytesPerRow
let colorBuffer = device.makeBuffer(bytes: vertexColorData, length: colorLength, options: []) 提示: MTLBuffer
@property (nonatomic, strong) id vertices; // 顶点缓存对象。...@property (nonatomic, strong) id yuvMatrix; // YUV 数据矩阵对象。
(这里实际上只处理一次也行,但是debug过程中需要通过Xcode的GPU Capture Frame工具进行查看,而这个工具需要多次渲染) 我们知道MTLBuffer是cpu、gpu都可以操作的buffer
[renderEncoder setRenderPipelineState:_pipelineState]; 复制代码 将参数数据发送到顶点函数 通常使用缓冲区 (MTLBuffer) 将数据传递给着色器
领取专属 10元无门槛券
手把手带您无忧上云