#rendering #metal #metalkit
#визуализация #Металлические #металлический набор
Вопрос:
При рендеринге фигур в MetalView. Я получаю красный фон даже после изменения rpd.colorAttachments[0].clearColor = MTLClearColorMake(0,0,0, 0,0) на черный прозрачный цвет. Я визуализирую несколько объектов и вызываю метод визуализации в функции рисования. Вот пример кода переопределения функции draw(_ rect: CGRect) { super.draw(прямая)
// circleDrawable(in: self) update(uniformBuffer: safetyRegionUniformBuffer) update(uniformBuffer: sideScreenOneUniformBuffer) update(uniformBuffer: sideScreenTwoUniformBuffer) update(uniformBuffer: SensorsUniformBuffer) update(uniformBuffer: ConeUniformBuffer) renderPassDescriperWithBuffers(vertexBuffer: safetyRegionVertexBuffer, indexBuffer: safetyRegionIndexBuffer, uniformBuffer: safetyRegionUniformBuffer) renderPassDescriperWithBuffers(vertexBuffer: sideScreenOneVertexBuffer, indexBuffer: sideScreenOneIndexBuffer, uniformBuffer: sideScreenOneUniformBuffer) renderPassDescriperWithBuffers(vertexBuffer: sideScreenTwoVertexBuffer, indexBuffer: sideScreenTwoIndexBuffer, uniformBuffer: sideScreenTwoUniformBuffer) renderPassDescriperWithBuffers(vertexBuffer: SensorsVertexBuffer, indexBuffer: SensorsIndexBuffer, uniformBuffer: SensorsUniformBuffer) renderPassDescriperWithBuffers(vertexBuffer: ConeVertexBuffer, indexBuffer: ConeIndexBuffer, uniformBuffer: ConeUniformBuffer) circleBuffer(vertexBuffer: circleVertexBuffer) } func renderPassDescriperWithBuffers(vertexBuffer: MTLBuffer, indexBuffer: MTLBuffer, uniformBuffer: MTLBuffer){ if let rpd = currentRenderPassDescriptor, let drawable = currentDrawable { rpd.colorAttachments[0].loadAction = .load rpd.colorAttachments[0].storeAction = .store rpd.colorAttachments[0].clearColor = MTLClearColorMake(0,0,0, 0.0) let commandBuffer = queue!.makeCommandBuffer() let commandEncoder = commandBuffer?.makeRenderCommandEncoder(descriptor: rpd) commandEncoder?.setRenderPipelineState(rps) commandEncoder?.setFrontFacing(.counterClockwise) commandEncoder?.setCullMode(.back) commandEncoder?.setVertexBuffer(vertexBuffer, offset: 0, index: 0) commandEncoder?.setVertexBuffer(uniformBuffer, offset: 0, index: 1) commandEncoder?.drawIndexedPrimitives(type: .triangle, indexCount: indexBuffer.length / MemoryLayoutlt;UInt16gt;.size, indexType: MTLIndexType.uint16, indexBuffer: indexBuffer, indexBufferOffset: 0) commandEncoder?.endEncoding() commandBuffer?.present(drawable) commandBuffer?.commit() commandBuffer?.waitUntilCompleted() } }
Пожалуйста, вылейте свое предложение, чтобы избавиться от этого красного цвета.